打印

ARM7 CM3上新移植的ucosii好像有问题

[复制链接]
2269|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
e08610318|  楼主 | 2013-6-2 20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.nxp lpc1765,启动代码自己写的
2.ucosii网上下的,然后自己写汇编的,调好了
3.之后自己做了个uart0-3的驱动,进行调试,问题来了:
1)板子上有个GPS模块,每秒都会发数据,但是,一般都会跑了几分钟,就Hard Fault了,查了好久,最后锁定到移植代码上
2)板子异常后,
UFSR 的INVSTATE位是置1的,相关说明如下:
INVSTATE Invalid state usage fault:
0 = no invalid state usage fault
1 = the processor has attempted to execute an instruction that makes
illegal use of the EPSR.
When this bit is set to 1, the PC value stacked for the exception return
points to the instruction that attempted the illegal use of the EPSR.
This bit is not set to 1 if an undefined instruction uses the EPSR.

3)测试发现,建了4个任务,一直跑应该是没有问题的,但是只要开了UART2口中断(UART2口每秒都会进入中断,该中断处理程序已经把应用层代码屏蔽掉了),过一段时间就挂了

目前这个问题还在研究解决中,特此贴上,希望前辈指点!


相关帖子

沙发
e08610318|  楼主 | 2013-6-3 09:31 | 只看该作者
今天继续看资料,发现好像是因为代码使用了非THUMB指令集而导致这个异常出现

使用特权

评论回复
板凳
_L_D_H_| | 2013-6-4 17:37 | 只看该作者
如果是使用外设出现Hard Fault,检查下外设的初始化,一般如果没用使能时钟LPC_SC->PCONP对应的位就使用外设,就会出现Hard Fault错误....

使用特权

评论回复
地板
e08610318|  楼主 | 2013-6-5 15:36 | 只看该作者
这个问题已经解决了,之前严格按照ucos说明书去移植,但是用到这款芯片上就会出问题,我推测可能是异常抢占导致返回地址错误而引发的Hard Fault,具体可能是UART2的中断被System Tick中断抢占了,然后又在定时中断里面执行任务调度,最后可能导致硬件中断。后来把中断里的任务调度改为Pend SV,并且把优先级设置为最低就没事了。

使用特权

评论回复
5
xnwei| | 2014-5-5 17:46 | 只看该作者
能把你的移植的code发给我学习一下吗?谢谢 qq 396153193

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:你可能不知道今天所做的事情会对未来有多大的干预能力!

67

主题

310

帖子

12

粉丝