完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
小弟刚上手arm+uC/OS-ii,现在有个2410的开发板,上面有个wince的系统。 目前还没有移植其他系统,是直接在SDRAM上跑uc和一些简单的任务。 但是ADS在编译和make之后,debug后,打开了AXD和JTAG,向板中下载程序 main中第一个创建的一个mainTask可以运行,串口也有反应,这个mainTask中再创建任务就出错了 错误提示:“Processor ARM79_0 raised an exception.Cause:Data abort” 求大神解决~ |
|
相关推荐
3个回答
|
|
是不是堆栈溢出了?或者任务优先级设置不正确,不要设成0或63
|
|
|
|
优先级是没错的,只有两个task,一个19,一个20,堆栈这个东西不懂:
OSStartHighRdy LDR r4, addr_OSTCBCur ; Get TCB address LDR r5, addr_OSTCBHighRdy LDR r5, [r5] ; get stack pointer LDR sp, [r5] ; switch to the new stack STR r5, [r4] ; set new current task TCB address LDMFD sp!, {r4} MSR SPSR_cxsf, r4 ;//程序停在这// LDMFD sp!, {r4} MSR CPSR_cxsf, r4 LDMFD sp!, {r0-r12, lr, pc } |
|
|
|
栈都不懂是没法移植的,arm不同模式有不同的堆栈空间,定时器中断后栈指针就变到irq模式的栈区,中断返回后栈指针又回到用户模式或管理模式或系统模式,回到那种模式得看你创建的任务工作在哪种模式,所以编写任务切换那部分代码是很麻烦的,要不停地切换栈指针和处理器工作模式
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
654 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2242 浏览 1 评论
771 浏览 0 评论
1530 浏览 1 评论
2276 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 08:08 , Processed in 0.813152 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号