|
|||||||||||
Technical Support On-Line Manuals RL-ARM User's Guide (MDK v4) RL-RTX Overview Product Description Product Specification Technical Data Timing Specifications Advantages Your First RTX Application Theory of Operation Timer Tick Interrupt System Task Manager Task Management Idle Task System Resources Scheduling Options Pre-emptive Scheduling Round-Robin Scheduling Cooperative Multitasking Priority Inversion Stack Management User Timers Interrupt Functions Configuring RL-RTX Configuration Options Tasks Stack Size Stack Checking Run in Privileged Mode Hardware Timer Round-Robin Multitasking User Timers FIFO Queue Buffer Idle Task Error Function Create New RTX_Config.c Configuration Macros Alternate Tick Timer Low Power RTX Library Files Using RL-RTX Writing Programs Include Files Defining Tasks Multiple Instances External References Using a Mailbox SWI Functions SVC Functions Debugging System Info Task Info Event Viewer Usage Hints ARM7/ARM9 Version Cortex-M Version Create New RTX Application Function Reference Event Flag Management Routines Mailbox Management Routines Memory Allocation Routines Mutex Management Routines Semaphore Management Routines System Functions Task Management Routines Time Management Routines User Timer Management Routines RL-FlashFS RL-TCPnet RL-CAN RL-USB Example Programs Library Reference Appendix |
Cortex-M VersionHere are a few hints specific for Cortex™-M library version. Using IRQ interruptsYou can use IRQ interrupts with no limitation. RTX kernel uses only one timer interrupt to generate periodic timer ticks and activate the task scheduler. Interrupt priority grouping can be used with some restrictions specified below.
System StartupRTX kernel uses a separate stack for each task it creates. The stack size is configured in the configuration file. However, before the kernel is started by the os_sys_init() function, the stack that is configured in the startup file STARTUP.S for the Main Stack is used. Stack size used by RTX kernel is configured in STARTUP.S. Minimum size is 128 bytes, however 256 bytes is recommended when interrupts are used. Main stack is also used when SVC functions are called. If you are using your own complex __svc functions, you might also need to increase the size of this stack. You can initialize simple IO, like configure the port pins and enable AD converter, enable interrupts, before the os_sys_init() function is called. The init_IO() function is executed in privileged mode. It is recommended to configure peripherals in this function and use unprivileged mode for the tasks. void main (void) { /* Here a simple IO may be initialized. */ init_IO (); os_sys_init (task1); /* The code execution should never reach this point. */ for (;;); } | ||||||||||
|
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.