一个uCOS-II的GCCAVR移植版本
本人刚刚移植通过,基于atmega128的,时钟节拍采用的是8位定时器Timer0的比较匹配输出中断,频率200Hz。基于最新的uCOS-II v2.85,较新的GCCAVR 4.1.1(WinAVR20070122)。我在网上看了很多,但是关于一个真正能够跑起来的基于GCCAVR最新版本的uCOS-II几乎没有./emotion/em040.gif,但是自己自小酷爱GCCAVR,于是独自捣鼓很久,终于搞出来了,用的移植方法也是作者Jean J. Labrosse在书籍《MicroC/OS-II》Second Edition里面推荐的最新的方法进行移植的。
点击此处下载armok01171130.zip
有不明白的可以联系我。
QQ: 20057607
Email: xiawei0311#gmail.com 下了! 我向你学习! 我用MEGA162最多, 我想移植到M62!
用 WinAVR20070525! 下来看看,谢谢 请版主删除这个帖子吧,我发重复了。回帖请参看该贴
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=804804&bbs_page_no=1&bbs_id=9999 下载来看看,非常感谢! 楼主这个移植有个地方做得不好
全局中断是在初始化时打开的
但ucos建议在任务运行时打开
也就是初始化堆栈时SREG寄存器存于0x80
这样运行第一个任务时POP SREG就开了全局中断
楼主实际上在初始化堆栈中已经设置了0x80
所以在定时器初始化时无需SEI()
void init_timer0(void)
{
TCNT0 = 0x00; /*清零Timer0计数器*/
OCR0 = 0x05; /*每逢5产生一次匹配中断*/
TCCR0 = 0x0F; /*工作于输出比较匹配模式,不连接OC0端口,时钟1024预分频*/
TIFR |= 0x02; /*清除输出比较匹配中断标志位*/
TIMSK|= 0x02; /*使能输出比较匹配中断*/
sei(); /*使能全局中断*/
TCCR0|= 0x80; /*启动输出比较匹配*/
} 深圳巍讯数码是一家集电子产品、通讯器材、计算机及周边设备的销售、计算机软硬件的技术开发及销售为一体的民营高科技公司。
巍讯数码嵌入式工作室作为巍讯数码嵌入式研究、开发中心,为公司的产品提供设计服务,此外还对外承接各类产品设计与开发、各类嵌入式学习套件的设计推广等业务,工作室具备各类MCU、ARM平台等嵌入式软硬件开发能力,具备从产品ID设计到最终量产出货的各个环节提供服务的能力。
欢迎和我们联系!联系方式如下:
深圳:0755-26062817,26072437 Ext:319 业务销售:DK-Sales@weistech.com.cn
东莞:0769-83033706,83033707 Ext:8083 技术支持:DK-Support@weistech.com.cn
网址:http://www.weislink.com
淘宝:http://shop57139966.taobao.com
QQ群:58179564 WES-ADV
楼上广告................ 下来试着编译了一把,虽然可以运行,但是感觉有点不对头,源码部分是否被改过?
os_core.c中的几个钩子函数的调用怎么都没有条件编译呢?这样一来,os_cfg.h中的相关配置还有什么用?
怀疑中... mark mark 移植范例 顶一个~~~~~~~~~ 谢谢了 mark..............
页:
[1]