-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARM cortex M0 design question #5
Comments
SST has been running on the M0/M0+ for a long time, so there was not much "porting" except compiling the core SST code. |
Hi @quantum-leaps , The other thing I would like your thoughts is about implementing the lock for task, since it is a Cortex M0, how do you rise the priority of the current task? The section is TBD in the sources. I will appreciate your response, |
Unfortunately, Cortex-M0/M0+ (ARMv6-M architecture) is the least appropriate CPU for the SST (the hardware RTOS). This is because the ARMv6-M hardware is so limited. There is no BASEPRI register to lock the hardware "scheduler" only up to a given priority ceiling. And also the ARMv6-M NVIC with just 2 bits of interrupt priority is very limited and just barely adequate to do any prioritization of tasks. Compare this to ARMv7-M or ARMv8-M architectures (all other Cortex-M) with the BASEPRI register and with 3 or 4 bits of NVIC priority. This is the proper hardware for a hardware RTOS. So, the bottom line is that with literally thousands of Cortex-M MCUs available on the market, there is no shortage of proper hardware choices for SST. Choosing the M0/M0+ is just missing the point. I wouldn't sweat the Cortex-M0. Finally, if you'd like to contribute your BSP to the SST repo, please make a pull request. --MMS |
Hi @quantum-leaps , Agree. Quick question about SST task handling, what are the options for a task to delay the processing of events until a previous event is completed? I will appreciate your guidance. |
Hi Manuel, |
Hi Miro, I am already familiar with it as I have used to migrate some of the existing code for the platoform I am working with. Basically I am triggering the event from another task such as In this case the event contains the message which is the clock time (from SNTP task). The first message trigger the scroll task but as soon as the second event is received I can either restart scrolling with new text or discard the message. Here is my source code in case you want to have a look. Thank you, |
Hi Manuel, Your way of posting an event (you call it "triggering an event") is potentially dangerous because your Proper handling of mutable events is not trivial. One example of an efficient and reasonably elegant solution is provided in the QP Framework. QP Framework is also event-driven and works well with non-blocking kernels. You might also take a look at the QK kernel, which works very much like the SST. --MMS |
Hi,
I was able to port the C code to an Arm Cortex M0. The device does not have a Memory Protection Unit, I was trying to understand the implications for the deferencing issue on NULL pointers but as I am new to it and since library is meant to be used with M0 devices as well I want to check with you.
Do you know how this will affect the scheuler and what issues I can expect?
Here is the section code I have commented.
I will appreciate your comments,
Thank you,
The text was updated successfully, but these errors were encountered: