您的位置: proteus仿真社区 >> 论坛 >> ARM仿真 >> 查看帖子
字体: 小 中 大 | 打印 发表于: 2008-10-06 09:43 作者: xyzasdad 来源: proteus仿真社区
RENG.rar(2008-10-06 09:43:09, Size: 1.58 MB, Downloads: 13)
最新回复
reinlee (2008-10-09 22:41:40)
今天晚上帮你看看。我的邮箱是rein.lee@gmail.com
有什么问题互相一起讨论下,祝你学习顺利!
reinlee (2008-10-10 01:00:29)
1.工程设置中,没有定义映像的入口,在image entry point中修改。我的工程设置了分散加载,也做得比较简单。如果你用simple模式的话,需要修改下stackusr等。我试了试,没有成功。我从开始学ARM,就一直用SCF加载,反倒不清楚simple下的startup该如何改。
2.你在OS_CPU.C把spsr修改成cpsr是不对的。因为发生异常后,处理器会把CPSR复制到SPSR中,待从异常返回后,需要恢复CPSR。
3.至于_c域的原因,在于异常发生时,只会改变这些控制域的位,即CPU设置模式和map寄存器的过程。而任务的返回,则需要恢复所有域。所以你在OSIntCtxSw_1中会看到,任务返回需要MSR SPSR_cxsf, R5。
在OS_ENTER_CRITICAL中,你把CPSR取出,然后又复制给CPSR_C,实际上模式没有恢复,且你还关闭了中断,而在这之后,你执行OS_EXIT_CRITICAL,本意是开中断,但是实际上中断并没有打开,OS永远不再运行TIMER中断,你又如何能切换任务?