原创 NXP2200+uCOSII

2009-6-26 12:57 3124 8 8 分类: MCU/ 嵌入式

很轻松的在44b0的平台上完成了uCOSII+LwIP的移植,回过头来有了在LPC2200上实现的想法。可是这里并不顺利。。。


说实话,我对ZLG并不反感,对NXP的片子印象还算好,之前也当单片机的用过,也跑过ZLG的uCOS(完全是ZLG封好的那个)。也看了看两个任务来回的跑。但是总觉得缺点什么,毕竟不是自己弄上去的。很多底层的东西都是ZLG封起来的,而且看着也费劲。


uCOSII的学习总不能就是拿着ZLG的板子直接写应用吧?


说实话,NXP把中断机制封装的很好,但是这也给应用带来了很多不便,很多通用的接口到了这里都需要改进。周公的代码把各个中断的入口都单独作为汇编写了一堆,我觉得没有必要,所以就开始了自己移植的过程。


花了大约4天的时间吧,终于把我的uCOSII跑了起来,总算拜托了ZLG的那个模板了!心情真是不错,哈哈!


说实话,这几天主要是绕在了中断的处理上,最后我才用了与44B0统一的方法处理中断入口:


IsrIRQ
    SUB  SP, SP, #4
    STMFD SP!,{R0}
    LDR  R0, VicAddr
    LDR  R0, [R0]
    STR  R0, [SP, #4]     ; 将对应的中断函数首地址入栈保护
    LDMFD SP!,{R0, PC}     ; 将中断函数的首地址放入PC中
VicAddr
    DCD  VICVectAddr
IsrIRQEnd
这样程序直接跳转到中断服务程序,中断服务程序必须用__irq声明!


这样的好处是在OS中那个系统时钟可以直接设置到中断中来,不必要重新再写代码处理了,一个入口管理全部中断了!


最后,我的中断全部是向量的,我不清楚向量中断与非向量中断有什么区别,不过NXP的好像用向量中断方便一些,便于统一管理了。


https://static.assets-stash.eet-china.com/album/old-resources/2009/6/26/b176119d-fcf9-43ea-87e8-c803f7fa0d09.rar


【2008-05-28 】

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条