打印
[ZLG-ARM]

关于使用LPC2468从boot跳版本时出现的一个问题

[复制链接]
1841|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
denniswuu|  楼主 | 2009-9-27 14:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
boot是单线程,是自己实现的一个引导程序,起始地址为0x0
版本里面跑了个freertos,该版本放在0x10000的地址。
boot跑完之后会强制跳到版本的地址(0x10000),会重新设置各个模式的堆栈空间以及ram空间初始化,拷贝中断向量和remap。
进入版本的main之后,需要进行任务切换,比如通过软中断来实现taskswitch,但是之后问题就很奇怪,整个cpu进入了一种“假死”状态,不知道在干吗,但是经过1分舵钟后,又全部恢复正常,很不明白
而且同样的版本代码,如果直接放到0地址的话,一切正常

被这个问题折磨的有段时间了,不知道大家能不能给一些建议,谢谢了

相关帖子

沙发
mohanwei| | 2009-9-27 16:03 | 只看该作者
让程序在你的头脑里跑一遍,看看那些地址转换是否都没问题了

使用特权

评论回复
板凳
denniswuu|  楼主 | 2009-9-27 18:23 | 只看该作者
呵呵,如果可能,我还真想把文件下到自己头脑里去跑一遍
地址映射应该是没问题,swi和irq中断都能正确寻址,毕竟经过“假死”时间,程序又能正常跑起来,各个任务调度都正常
只是想问问大家有没有遇到过这种情况,或者帮忙分析下可能是什么原因

使用特权

评论回复
地板
denniswuu|  楼主 | 2009-9-29 12:12 | 只看该作者
问题已解决,boot和版本会对timer0做两次设置,其中matchvalue不一致,导致跳入版本时timer0在一段时间内无法工作,进而操作系统也无法调度

使用特权

评论回复
5
busyboy| | 2009-11-6 15:24 | 只看该作者
顶起来收藏。

使用特权

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

本版积分规则

1

主题

4

帖子

1

粉丝