原创 UCOS在ATMEGA上的移植源码

2011-8-1 19:48 5911 5 8 分类: MCU/ 嵌入式

  最初是为Atmega16移植的,但由于Atmega64/128等内核均相同,所以只需在AVR Studio下配置目标芯片而不必修改源码即可运行.定时器采用T0.


  软件工具:AVR Studio和WINAVR-2005**和VMLAB3.12.


  ucos的源码是从<<嵌入式实时操作系统ucos ii>>第二版的光盘中拷贝的.相应的移植源码是在作者为X86写的源码基础之上作了简单的更改.同时还参考了网上的源码.


  对ATMEGA的汇编语言,我不熟悉,所以部分汇编代码效率不高.


  总的来说,在阅读了前书中的任务管理章节后即可进行源码的移植.当然,首先需要对目标芯片和编译器的使用有所了解.然后再按书中的指导修改相应代码即可.先自己尝试移植,再参考别人的代码,理解更深入.


 


  移植过程中发现的小BUG:在调用OSTaskStkInit()初始化任务堆栈时,R1对应的单元 必需清零,否则在main.c中task0()调用LED_OFF()时并不将PORTB端口置0x0,而是置为  0x1.并且在系统运行时,操作系统会表现出一些莫名其妙的行为.后分析反汇编代码后发现,当 PORTB = 0x0时,实际将R1的值赋给PORTB.GCC默认R1的值在通常情况下为1,此后邮箱可以正常操作.可参考AVR-LIBC手册和调试时的反汇编代码. 


  附上完整的工程文件.https://static.assets-stash.eet-china.com/album/old-resources/2009/2/21/2957d2a7-d146-4f3a-90ca-3f3fa633fe58.zip .

文章评论3条评论)

登录后参与讨论

用户519035 2011-6-25 13:22

thanks!

用户102586 2011-1-5 20:48

先学习了……

用户77361 2009-12-6 22:41

我的邮箱 wupingping031@163.com 现在想做一个在atmega32上移植ucosii的系统 但是上面的附件不能下载啊 可以的话 方面发到我的邮箱吗 谢谢
相关推荐阅读
用户403611 2014-01-20 07:28
与TKScope仿真器同行(1) - 看门狗会让你无法调试
  前几日,中矿龙科的李工向我反映了一个有意思的问题: 在使用TKScope仿真器(型号AK100pro)调试STM32时,出现了一个非常奇怪的现像。在Keil环境中的源代码设置了一...
用户403611 2013-02-27 13:41
ARM指令仿真项目经历纪录一
这两天接了个新项目-ARM指令仿真项目,开发时间预期在两个月左右。这次将继承沿续自己以前做Cortex-A8、A9内核仿真项目时的方法,用日志纪录在开发过程中的各种问题解决方案和体会。限于某些原因...
用户403611 2013-02-27 13:39
电子工程师应尝试产品经理的角色
做技术两三年了,发现自己一直陷入到技术细节当中,而从来没有尝试跳出来去从整个产品的角度进行观察。这其中可能是因为需要了解的技术细节太多,没有闲暇去关注技术之外的东西。另一方面也与个人的视野不够开阔...
用户403611 2011-11-13 20:05
EDNChina的博客已经改得面目全面了
 之前有些日子没去ENDChina了。从08年起,断断续续地在这上面写一些技术类的Blog,到现在已经有快4年,虽然文章写的不多,但挺有感情的。   这两天回去看看,访问http://blog...
用户403611 2011-10-14 22:02
TKScope仿真器使用入门视频教程
  相对来说,看视频肯定要比看PDF文档要容易的多吧。部门之前仅在网上发布了TKScope仿真器使用的PDF文档。虽然文档写的很详细,但实际真正愿意去看的不多。前些日子自己录制了TKScope仿真AR...
用户403611 2011-09-18 23:00
尝试建立一个部门内部的知识库站点
前些天有事直接去找了下戚工反映TKScope仿真器方面的几个问题。问题解决之后闲聊了几句,其中就提及了建立一个共享的内部网络站点。当时我听了很兴奋,因为这个想法与我的不谋而合。早在刚进入这个部门不久,...
我要评论
3
5
关闭 站长推荐上一条 /3 下一条