终于可以让ucos跑起来了,但还有个问题就是只要跑进空闲任务,其他任务就无法运行了。
移植过程中有几个关键点记录下来:
1、堆栈设计,参照ARM原理看中断发生时有哪些寄存器需要保存,以及堆栈增长方向;ucos任务切换本质上就是让系统人为产生中断,所以我们需要熟悉ARM芯片进行一次中断,系统做了哪些事情,我们把这些实际中断发生时系统做的事情在我们需要进行任务切换的时候用程序实现就OK了
2、定时器中断(提供系统tick)
3、设置中断向量,开关中断
4、硬件初始化,这个是直接用的周立功的,所以没怎么去看,只是理解了GPIO和UART部分,其他的没仔细看,其实调试的时候就用这两个来看现象,呵呵
5、编译时,会提示重复定义,把ucos_ii.h删掉编译就可以了
6、现在存在的那个问题,在网上搜了一下,可能是硬件初始化程序的问题,现在ARM汇编还不是很了解,暂时还不知道从哪里查起,只有先放放了
文章评论(0条评论)
登录后参与讨论