论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
⑤ 处理器有将堆栈指针和其它寄存器读出和存储到堆栈或内存中的指令。
μC/OS-II的移植包括以下几个部分。
(1)设置与编译器有关的代码[OS_CPU.H]
在不同的处理器中有不同的字长,所以必须定义一系列数据类型以确保移植的正确性。另外,在μC/OS-II中,不使用C的short、int和long等数据类型,这些都是和编译器相关的。下面就是μC/OS-II定义的一部分数据类型。
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U; /*无符号8位整数 */
typedef signed char INT8S; /*有符号8位整数 */
typedef unsigned int INT16U; /*无符号16位整数 */
typedef signed int INT16S; /*有符号16位整数 */
typedef unsigned long INT32U; /*无符号32位整数 */
typedef signed long INT32S; /*有符号32位整数 */
typedef float FP32; /*单精度浮点数 */
typedef double FP64; /*双精度浮点数 */
μC/OS-II需要先禁止中断访问代码的临界区,并且在访问完毕后重新允许中断。μC/OS-II定义了两个宏来禁止和允许中断:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。
#define OS_ENTER_CRITICAL() IRQFIQDE
#define IRQFIQDE __asm
{
mrs r0, CPSR;
stmfd sp!, {r0};
orr r0, r0, #NOINT;
msr CPSR_c, r0;
}
#define OS_EXIT_CRITICAL() IRQF