闲谈swi与ucos-终结
来源:互联网 发布:体育比赛直播软件 编辑:程序博客网 时间:2024/06/05 10:51
UCOSiii在cortex m4上的移植已经完成,现总结如下:
- MCU s32k144
- 编译器 GNU gcc
- 开发环境 DS32 / NXP Freescale
其中遇到很多细节的调试,然后one by one 克服,
1. OSCtxSw 上下文切换,和 OS_CPU_PendSVHandler 异常挂起中断服务函数,这里首先要把ARM cortex m4 technical reference manual 和 ARMv7-M Architecture Reference Manual 过一遍,两者都必须看,后者更详细一些。汇编部分其中重要的几个/多个指令必须理解,而每个编译器对相应能够支持的汇编指令集也要关注,比如IAR 和 GCC 就不同,thumb 和 arm 汇编指令的支持情况也不同, cortexm0, cortexm3, cortexm4 也有小的区别,具体情况必须谨慎排查。2. 关于gcc arm 汇编源文件的格式,/*-----------------------------------------------------------------------------------------------------*/头.text
.align 2
.thumb
.syntax unified函数头.thumb_func
OSStartHighRdy:这两个头在汇编源文件里必须好好放着,没有!后果consequence会怎么样呢?就是.c文件可以访问它需要调用的汇编,但是汇编却没有参与到整个工程的编译,比如你的中断服务函数在汇编文件里定义编写,尽管你写了,也build了,但是真正中断发生时你会发现飞了,为什么?因为你写的这个中断服务函数根本没有参与编译,以上就是后果consequence。/*---------------------------------------------------------------------------------------------------*/3. 关于初始化函数时遇到的问题,千!万!注!意!特!别!提!醒! OS_ERR 类型一定要构造一个实体变量而后取地址,而不是像这样:(OS_ERR*)(0),这样的结果程序直接飞掉,通过调试,你会发现每次都是对R3和R7寄存器操作的时候直接复位。4. 对应的内核相关的寄存器的访问和地址的确认不要搞错了
0 0
- 闲谈swi与ucos-终结
- 闲谈swi与ucos-续篇
- swi原理与应用
- swi原理与应用
- 闲谈JAVA与BEAN
- 技术与业务闲谈
- 闲谈工作与学习
- 闲谈
- 闲谈
- 闲谈
- 闲谈
- 闲谈
- 闲谈
- 闲谈
- 闲谈
- 闲谈
- 闲谈
- 闲谈
- Spring定时器的配置
- C语言中后置自增(减)运算符的使用
- JDBC 连接数据库
- [JQuery]随心所欲添加删除按钮Click事件
- linux下增加swap分区
- 闲谈swi与ucos-终结
- c++上机报告4(循环)
- 如何修改element.style内联样式;
- Java hessian基础教程
- 通话设置
- FFmpeg 模块组成
- maven的pom报plugins错误的解决方法.
- 4种单片机驱动继电器方案
- c#小技巧