This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

CMSIS threads - which software objects / libraries are required?

I am looking at the feasibility of using CMSIS threads in our C++ Cortex M4 application, compiled with armclang.  Scheduling would be fairly simple – each thread would have a different priority and would wait on a semaphore set by an associated interrupt service routine. 

I can see no requirement to have a system tick, which is just as well as it would not be supported in our hardware. Would CMSIS support the thread mechanism I have described without having a system tick? (I think it should be ok because I expect scheduling will happen on leaving the ISR and on semaphore operations). 

I have written some simple test code based on the example here:

Thread Management

I haven’t linked in any CMSIS objects and so am getting a linker error:

Error: L6218E: Undefined symbol osThreadCreate (referred from TestFunctions2.o).

Can you please either suggest which objects/libraries are required or point me to an Arm Dev Studio example that uses CMSIS threads?

Parents
  • The RTOS2 specification includes a function osThreadNew.  RTX5 is the reference impl of the RTOS2 api.  You can find it in the CMSIS_5 repo from ARM on github.

    I am a bit confused by your assertion that your hardware has no 'system tick'.  The Systick feature is intrinsic to a Cortex M4 chip, it needs no extra peripheral in the MCU.

Reply
  • The RTOS2 specification includes a function osThreadNew.  RTX5 is the reference impl of the RTOS2 api.  You can find it in the CMSIS_5 repo from ARM on github.

    I am a bit confused by your assertion that your hardware has no 'system tick'.  The Systick feature is intrinsic to a Cortex M4 chip, it needs no extra peripheral in the MCU.

Children