记录我的UCOS学习应用之路

[复制链接]
5861|26
 楼主| qianlihu 发表于 2013-4-22 21:14 | 显示全部楼层 |阅读模式
毕业后一直想搞操作系统,但奈何能力够,没能进入嵌入式相关的公司,但心中总是不平衡,买了本UCOS的源码介绍的书本,没事看看,一年多了,终于有机会能写代码了,一个msp430 5418的片子,本来是一个前后台带有液晶,ad,串口,和几个小算法的系统,哦,忘了说了,该系统已有前人做好,本来接手也只是等待完善,可是~管他娘的,终于有机会为何不移植一下看看,而UCOS官网上有 5438的移植源程序,下载下来就能用,上个周完成了移植,点亮了LED心中窃喜不已。

评论

恩.这思想是对的.如果你仅仅是维护,就麻烦死了  发表于 2013-4-23 16:21
 楼主| qianlihu 发表于 2013-4-22 21:21 | 显示全部楼层
移植成功以后,准备入手编写键盘部分代码,在这里向大家推荐一本书《嵌入式系统构件》,利用了书中的键盘构件,书本是pdf的无法复制,可照抄也不多么费事,敲了一上午的代码,同时也大概了解了该键盘任务的工作过程。下午试着用键盘点了个灯,还好,能亮。这是回想上个周的事情,现在想来上个周真是顺风顺水。

评论

这是个图片格式的pdf,不是加密的问题  发表于 2013-7-30 08:39
PDF能复制啊,加密了? 有解密的工具哦  发表于 2013-4-23 18:47
 楼主| qianlihu 发表于 2013-4-22 21:26 | 显示全部楼层
对了 《嵌入式系统构件》一书是UCOS的作者写的,可是文件太大传不上来。
qfggg 发表于 2013-4-22 21:31 | 显示全部楼层
对ucos一直有兴趣,断续的学了些,顶你!!
 楼主| qianlihu 发表于 2013-4-22 21:36 | 显示全部楼层
准备处理键盘和液晶接口的时候,着实苦恼了一阵,可最后还是写通了,但其实只是把前后台的菜单原样搬了过去,大致是这样写的,一个全局变量MENU—NUM,标识菜单页码,KEY_DEAL()根据当前键值调用处理函数如 KEY_UP();而KEY_UP()则switch(menu—num)做处理,简直就是前后台一模一样,同样的液晶驱动代码也写在了这个任务里,这和没有操作系统有什么区别!完全有些想不明白。
这里注意的是 键盘任务的优先级要高于显示任务,否则响应可能会有问题。
希望以后有机会移植UCGUI,看看怎么用,可是键盘液晶的结合大神们都是怎样处理的呢?真心希望有人解惑。
rgh111 发表于 2013-4-22 21:37 | 显示全部楼层
哈哈,有些事情就像"灯笼是张低,捅破就那么回事", 有想法, 敢动手去尝试,去做,一定能有所收获.

希望楼主以后有更多的心得体会跟大家分享.:lol
smxzyfjb 发表于 2013-4-22 21:53 | 显示全部楼层
呵呵,顶了,本人也正在学习uCOS,用的是STM32芯片。努力!!
dushuaihu 发表于 2013-4-23 13:48 | 显示全部楼层
pass by here! ding :)
frlop 发表于 2013-4-23 13:51 | 显示全部楼层
zhyscout 发表于 2013-4-23 13:56 | 显示全部楼层
一直想学这个呢,就是**不下来
liusensen 发表于 2013-4-23 14:03 | 显示全部楼层
操作系统太枯燥了
mochou 发表于 2013-4-23 16:02 | 显示全部楼层
kuangnan 发表于 2013-4-23 16:23 | 显示全部楼层
呵呵 学了一段时间 停下来了  有机会手又痒了。
dong_abc 发表于 2013-4-23 18:56 | 显示全部楼层
要搞清楚用OS和不用OS的本质区别。

周航慈还有两本书《嵌入式系统常用数据结构》《嵌入式系统常用算法》,可以看看,很薄的。
jiangfuquan999 发表于 2013-4-23 18:56 | 显示全部楼层
呵呵。恭喜楼主,翻过一座大山
dong_abc 发表于 2013-4-23 18:59 | 显示全部楼层
rgh111 发表于 2013-4-22 21:37
哈哈,有些事情就像"灯笼是张低,捅破就那么回事", 有想法, 敢动手去尝试,去做,一定能有所收获.

希望楼主以 ...

借你的话一用!
 楼主| qianlihu 发表于 2013-4-23 20:18 | 显示全部楼层
多谢楼上大神的推荐 一定会去看的
 楼主| qianlihu 发表于 2013-4-23 20:20 | 显示全部楼层
突然想起来在另一个帖子里dong_abc 大侠也曾推荐了一本书,再次表示一下感谢
 楼主| qianlihu 发表于 2013-4-23 20:42 | 显示全部楼层
其实现在还没搞清楚有OS和没有OS的本质区别,可是管他的,先弄好这个东西再说。
在这里先介绍一下这个项目的任务,一个1s反转一次LED的任务TaskLed1,一个按键检测任务TaskKey,一个显示任务TaskDis,因为原来的项目用到了串口,但是用OS不知道怎样编写带有中断处理的任务,所以准备先写一个定时器中断函数,看看发出的脉冲波形,做到心中大概能有一个概念。
中断部分这样写的 OS_ENTER_CRITICAL(); OSSemPost(LEDpPtr);OS_EXIT_CRITICAL();1ms进一次中断,添加了一个任务TaskLed2,将其优先级设到最高,发现能够各个任务分别能够正常运行,可是后来发现明明中断写错了啊应该先调用OSEnterInt()t和OSExitInt()才对啊,可是明明一切都在正常运行。是不是程序在OSSemPost(LEDpPtr)后直接在中断里面就完成了任务切换?然后退出中断后又返回到了中断前的任务中?可是明明周航慈老师那本书里也是没有调用OSEnterInt()t和OSExitInt();不知这是为何?
sanguoshaaq1 发表于 2013-4-23 20:59 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

34

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部