自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 移植uCOS-II到C51 - 7

总算弄明白为什么在时钟节拍的中断函数里没有保存寄存器了,原来Keil自动生成了将寄存器入栈的代码,具体见C51.pdf第126页的说明。这也决定了OSTaskStkInit()函数中寄存器入栈的顺序。最后一篇吧,稍微总结一下。做这个移植,到现在差不多是两周时间。最后整理代码的时候,发现要修改的地方其实并不多。主要的时间是在分析别人写的移植代码,把它们看懂。 首先是要理解uCOS的多任务是怎

2007-10-26 21:02:00 1529

原创 移植uCOS-II到C51 - 6

今天,我把杨屹的移植版本修改到自己的平台上,也算是检验一下自己对移植uCOS的理解和掌握程度。虽然其间繁琐的指针操作让我很头大,但最后还是比较顺利的调试通过了。发现自己的板子都能做反面教材使了,基本上参考现成的板子画的,修改也不多。用的时候才发现问题好多啊,如果程序里有访问片外存储的代码,两个按键,部分数码管都不能正常工作。这些都是因为P2、P3除了用作IO口还具有其他功能,往往二者只能得其一

2007-10-22 20:11:00 2038

原创 移植uCOS-II到C51 - 5

这两天又测试了几个不同的移植版本,包括最先看到的SW和杨屹的版本,总算能在我的系统上跑起来了。虽然还有些问题没搞明白,但心里还是挺高兴的。毕竟,自己的努力看到了些许成果。做到现在才真的感觉到,其实在C51上跑uCOS,能做的东西也很有限。对我来说,只不过是个体验而已,而我也不希望这是失败的、让人受挫的体验。我也发现自己的硬件电路也有很多局限性,比如我把P3.6和P3.7用作了按键输入。这在不使

2007-10-18 21:23:00 2051

原创 移植uCOS-II到C51 - 4

现在在分析任务级的任务切换,即当前任务主动放弃对CPU的控制权,通过系统任务调度转而运行其它已就绪的任务。调用顺序如下:OSTimeDly()    |    OSSched()        |更新OSTCBHighRdy,使其指向新任务的任务控制块        OS_TASK_SW()->OSCtxSW()            |保存现场到当前任务模拟栈            C_OSCt

2007-10-16 20:11:00 1416

原创 移植uCOS-II到C51 - 3

昨天,修改SW的移植版本到自己平台的企图以失败告终。今天,看了一个稍微简单些的版本,来自John X.Liu。之所以说简单,是因为我至少看到了熟悉的reg52.h,还有,连SW也说他的移植是在Liu的基础上做的。搞了一天,对这个咚咚又了解了多一些。吸取昨天匆忙上阵急于求成的教训,今天决定从简单的情况入手,看看调用OSStart()以后,第一个用户任务是如何开始执行的。可以看到这样的调用顺序:O

2007-10-15 21:23:00 1744 1

原创 移植uCOS-II到C51 - 2

现在再来回顾一下要今天要弄清楚的几个问题:1)任务堆栈如何设计,如何初始化(保存那些内容,放在什么地方)2)任务切换何时发生,如何发生(现场保护和恢复)先来看看uCOS-II移植到80x86PC的版本。No.1 堆栈的分配每个任务都分配了一块的RAM空间,这个没啥好说的。分配时数据类型为OS_STK,与编译器相关No.2 堆栈的初始化由OSTaskStkInit()函数完成,这一点从函数的

2007-10-13 20:40:00 2904

原创 移植uCOS-II到C51 - 1

昨天,终于把 C51的电路板焊好了。虽然很简单没啥新意,但是看着这块自制的"Hello, World!",我还是很高兴。毕竟,从原理图到PCB布局、布线,还有那些让我头疼的元件封装,都是我亲历过的,并且发现焊东西是一件很有意思的事情。当然这其中同事们也给我很多帮助,谢谢他们了。更让我欣慰的是,几个基本的测试都没发现什么问题,LED/数码管/串口/按键一切工作正常,真是谢天谢地: )接下来的工作

2007-10-12 23:17:00 2361

原创 Ubuntu体验 - 1

  最近真是闲得慌,老婆又出差了,一个人更容易胡思乱想。找点啥事来做呢?在学校重装系统是我无聊是经常干的事情,仿佛每重装一次,又是一个新的开始。发现CD包里有两张Ubuntu7.04的安装盘,那次心血来潮的在网上申请这免费的咚咚,一个多月还真给我寄来了。这是我生来头一回收到从外国寄来的邮件,着实激动了一把。想起来好像Ubuntu的桌面做的挺不错的,还有一次看到的三个屁股的LOGO让我印象深刻。

2007-10-12 22:04:00 811

转载 关于 Big endian 和 Little endian

由来:big-endian和little-endian这两个术语来自Jonathan Swift在十八世纪的嘲讽作品Gulliver’s Travels。 Blefuscu帝国的国民被根据吃鸡蛋的方式划分为两个部分:一部分在吃鸡蛋的时候从鸡蛋的大端(big end)开始,而另一部分则从鸡蛋的小端(little end)开始。x86的CPU使用的是LE(Windows中称为“主机字节

2007-01-21 15:40:00 648

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除