The Experts below are selected from a list of 159 Experts worldwide ranked by ideXlab platform
Joseph Yiu - One of the best experts on this subject based on the ideXlab platform.
-
Operating System Support Features
The Definitive Guide to the ARM Cortex-M0, 2011Co-Authors: Joseph YiuAbstract:This chapter discusses various features of the Cortex-M0 Processor that target the embedded operating system (OS). A SysTick timer can be used to generate a SysTick exception at regular intervals. A second Stack Pointer called the Process Stack Pointer allows the Stack of the applications and the OS kernel to be separated. Some embedded OSs also define priority levels for each task so that a high-priority task is executed before lower-priority tasks. It is found that if the task has a higher priority than others, an OS might execute the task for a number of time slots continuously until the task reaches an idle state. It is found that besides supporting multitasking, embedded OSs can also provide the functions of resource management, memory management, power management, and an application programming interface for accessing peripherals, hardware, and communication channels. It is seen that for systems that do not required an OS, the SysTick timer can be used for other purposes like time keeping, timing measurement, or as a interrupt source for tasks that need to be executed regularly.
-
Chapter 3 – Cortex-M3 Basics
The Definitive Guide to the ARM Cortex-M3, 2007Co-Authors: Joseph YiuAbstract:Publisher Summary This chapter focuses on the registers used in the Cortex-M3 Processor and their functions. The Cortex-M3 has registers R0–R15 and a number of special registers. R0–R12 are general purpose, but some of the 16-bit Thumb instructions can only access R0–R7 (low registers), whereas 32-bit Thumb-2 instructions can access all these registers. Special registers have predefined functions and can only be accessed by special register access instructions. In the Cortex-M3 Processor, R13 is the Stack Pointer and it is of two types: main Stack Pointer (MSP) and Process Stack Pointer (PSP). The former is the default Stack Pointer, used by the OS kernel, exception handlers, and all application codes that require privileged access, and the latter is used by the base-level application code when not running an exception handler. It is not necessary to use both Stack Pointers. Simple applications can rely purely on the MSP. The Stack Pointers are used for accessing Stack memory Processes such as PUSH and POP. The Cortex-M3 uses a full-descending Stack arrangement. Therefore, the Stack Pointer decrements when new data is stored in the Stack. PUSH and POP are usually used to save register contents to Stack memory at the start of a subroutine and then restore the registers from Stack at the end of the subroutine.