理论教育 编写ARM嵌入式OS_CPU.H文件

编写ARM嵌入式OS_CPU.H文件

时间:2023-11-03 理论教育 版权反馈
【摘要】:软中断功能号分配如表6-2所列,未列出的为保留功能。表6-2 软中断功能3.设置堆栈的增长方向,堆栈由高地址向低地址增长μC/OS-II使用结构常量OS_STK_GROWTH中指定堆栈的生长方式:置OS_STK_GROWTH为0表示堆栈从下往上长。虽然ARM处理器核对于两种方式均支持,但ADS的C语言编译器仅支持一种方式,即从上往下长,并且必须是满递减堆栈,所以OS_STK_GROWTH的值通常设置为1:

编写ARM嵌入式OS_CPU.H文件

1.重新定义与编译器无关的数据类型

μC/OS-II不使用C语言中的short、int、long等数据类型的定义,因为它们与处理器类型有关,隐含着不可移植性,代之以移植性强的整数数据类型,这样,既直观又可移植,不过这就成了必须移植的代码。

978-7-111-44508-1-Chapter06-3.jpg

978-7-111-44508-1-Chapter06-4.jpg

2.使用软中断SWI作底层接口

移植中使用软中断指令SWI作为底层接口,使用不同的功能号区分不同的函数。软中断功能号分配如表6-2所列,未列出的为保留功能。用软中断作为操作系统的底层接口就需要在C语言中使用SWI指令。可以采用关键字__swi,用它声明一个不存在的函数,调用这个函数时,就在调用这个函数的地方插入一条SWI指令,并且可以指定功能号,同时,这个函数也可以有参数和返回值,其传递规则与一般函数一样。

表6-2 软中断功能

978-7-111-44508-1-Chapter06-5.jpg(www.daowen.com)

3.设置堆栈的增长方向,堆栈由高地址向低地址增长

μC/OS-II使用结构常量OS_STK_GROWTH中指定堆栈的生长方式:

置OS_STK_GROWTH为0表示堆栈从下往上长。

置OS_STK_GROWTH为1表示堆栈从上往下长。

虽然ARM处理器核对于两种方式均支持,但ADS的C语言编译器仅支持一种方式,即从上往下长,并且必须是满递减堆栈,所以OS_STK_GROWTH的值通常设置为1:

978-7-111-44508-1-Chapter06-6.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈