新闻中心

EEPW首页>嵌入式系统>设计应用> 在CodeWarrior编译环境下运行μC/OS―III

在CodeWarrior编译环境下运行μC/OS―III

作者: 时间:2012-12-16 来源:网络 收藏

3.3 修改文件
前面提到,u;和uC/CPU中需要移植的代码文件在不同的编译器下需要稍作修改。其中,C文件与编译器无关,而汇编文件从IAR转到CodeWarrior有几个地方需要修改,这涉及cpu_a.asm和os_cpu_a.asm两个文件,说明如下:
①在CodeWarrior的汇编文件中,默认标号都以“:”结尾,编译指令都以“.”开头。虽然也可以在工程设置里取消该限制,但还是建议按照该格式编写代码。因此,请检查汇编代码是否符合上述要求。
②在CodeWarrior的汇编文件中,声明全局函数用的是.global,而IAR中用的是PUBLIC,如IAR中的“PUB-LIC OSStartHighRdy”应改为“.global OSStartHighRdy”。
③在汇编文件中,代码前要进行代码段的声明,如IAR中的“RSEG CODE:CODE:NOROOT(2)”在CodeWarrior里应改为“.text,code”
3.4 添加头文件路径
右键点击工程名,选择“Properties”→“C/C++Build”→“Settings”,在“ARM Compile”→“Input”页面可以添加头文件搜索路径,把工程中用到的头文件所在的路径加上,添加时建议使用相对路径(相对工程目录),如图4所示。

本文引用地址://m.amcfsurvey.com/article/170659.htm

e.JPG


3.5 修改中断向量衰
CodeWarrior自动生成的kinetis_sysinit.c文件包含了startup代码和中断向量表,把;;Ⅲ用到的两个中断向量加入中断向量表,代码如下:
f.JPG
PendSV中断和SysTick定时器集成于Cortex—M3/4内核中,专门用于OS的任务切换和时钟节拍。因此,只要是使用Cortex—M3/4内核的单片机,这部分的移植代码都是通用的。
3.6 代码调试
在进行;;应用开发时,应先从最小系统开始调试。在配置文件里把不需要的功能先关掉,如消息队列、信号量、hook函数、统计任务等。在用户程序里执行完硬件相关的初始化后,先建立一个简单的任务(即起始任务),然后测试任务调度是否正常。注意,这时在运行的还有;C/OS—内部的空闲任务。
如果任务调度正常,可在起始任务里初始化并打开时钟节拍中断,然后可通过断点调试等手段测试时钟中断服务程序是否得到正确执行。确认后可在起始任务里调用延时相关的函数,如以一定的频率闪灯,或者向串口输出信息。如果上述测试通过,那么意味着μC/OS—III已经运行起来了,接下来用户就可以一步步按照应用需求进行开发了。

结语
使用CodeWarrior集成开发环境的读者,只要按照以上步骤,即可在Kinetis系列单片机上完成μC/OS—III的编译和运行。本文所讲述的步骤也可用于其他开发环境,遵循Micrium官方的文件组织结构,可使得工程目录结构清晰规范,方便代码的升级和共享。

51单片机相关文章:51单片机教程



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭