嵌入式系统μC/OS-II在LPC2119上的移植方法和技巧
[11-20 15:54:28] 来源:http://www.88dzw.com arm嵌入式 阅读:8723次
文章摘要:图2 系统基本初始化Tar get Peset1 ni t()流程图由于启动代码的编写很长,而本文只是想指出编写启动代码是移植前必须做的准备工作并对其进行简要说明,因此在这里就不具体列出所有代码(具体的启动代码见参考文献[1]),而给出一个很重要的目标板初始化程序中的函数TargetResetInit()的流程图,从中可以看出在进入main ()函数前对系统进行的基本初始化工作的具体步骤。移植有了上面的知识和编写启动代码这项准备工作完成后,就可以进入具体移植阶段了。主要完成以下工作:① 为了增强代码的可移植性,所有C文件添加头文件includes.h。② 用户程序添加config.h。③ 在
嵌入式系统μC/OS-II在LPC2119上的移植方法和技巧,标签:arm嵌入式系统,arm系统,http://www.88dzw.com图2 系统基本初始化Tar get Peset1 ni t()流程图
由于启动代码的编写很长,而本文只是想指出编写启动代码是移植前必须做的准备工作并对其进行简要说明,因此在这里就不具体列出所有代码(具体的启动代码见参考文献[1]),而给出一个很重要的目标板初始化程序中的函数TargetResetInit()的流程图,从中可以看出在进入main ()函数前对系统进行的基本初始化工作的具体步骤。
移植
有了上面的知识和编写启动代码这项准备工作完成后,就可以进入具体移植阶段了。主要完成以下工作:
① 为了增强代码的可移植性,所有C文件添加头文件includes.h。
② 用户程序添加config.h。
③ 在文件OS_CPU.H中需要添加或修改的主要代码有:
定义不依赖于编译器的数据类型:
typedef unsigned char INT8U;
typedef unsigned short INT16U;
typedef unsigned int INT32U;
typedef INT32U OS_STK;
使用软中断SWI作底层接口:
__swi(0x00) void OS_TASK_SW(void); /* 任务级任务切换函数 */
__swi(0x01) void _OSStartHighRdy(void); /* 运行优先级最高的任务 */
__swi(0x02) void OS_ENTER_CRITICAL(void); /*关中断 */
__swi(0x03) void OS_EXIT_CRITICAL(void); /* 开中断 */
__swi(0x80) void ChangeToSYSMode(void); /* 任务切换到系统模式 */
__swi(0x81) void ChangeToUSRMode(void); /* 任务切换到用户模式 */
#define OS_STK_GROWTH 1 /* 堆栈是从上往下长的*/
定义工作模式:
#define USR32Mode 0x10 /* 用户模式 */
#define SYS32Mode 0x1f /* 系统模式*/
#define NoInt 0x80
#ifndef USER_USING_MODE
#define USER_USING_MODE USR32Mode /* 任务缺省模式*/
#endif
定义开关信号量: extern OS_STK OsEnterSum
④ 在文件OS_CPU_C.C中需要添加或修改的代码:
OS_ENTER_CRITICAL()代码
__asm
{ MRS R0, SPSR
ORR R0, R0, #NoInt
MSR SPSR_c, R0
}
OsEnterSum++;
OS_EXIT_CRITICAL()代码
if (--OsEnterSum == 0)
{ __asm
{ MRS R0, SPSR
BIC R0, R0, #NoInt
MSR SPSR_c, R0
}
}
编写任务堆栈的初始化代码:
OS_STK *OSTaskStkInit (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt)
《嵌入式系统μC/OS-II在LPC2119上的移植方法和技巧》相关文章
- › 基于FPGA的片上系统和嵌入式系统的远程监控系统
- › 基于FPGA的嵌入式系统USB接口设计
- › C语言嵌入式系统编程修炼之软件架构篇
- › CPLD应用于嵌入式系统与CAN总线网络通信
- › 基于FPGA嵌入式系统的雷达信号模拟器设计
- › 推出自己的基于x86的定制嵌入式系统(二)
- 在百度中搜索相关文章:嵌入式系统μC/OS-II在LPC2119上的移植方法和技巧
- 在谷歌中搜索相关文章:嵌入式系统μC/OS-II在LPC2119上的移植方法和技巧
- 在soso中搜索相关文章:嵌入式系统μC/OS-II在LPC2119上的移植方法和技巧
- 在搜狗中搜索相关文章:嵌入式系统μC/OS-II在LPC2119上的移植方法和技巧