打印

记录我的UCOS学习应用之路

[复制链接]
4917|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qianlihu|  楼主 | 2013-4-22 21:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
毕业后一直想搞操作系统,但奈何能力够,没能进入嵌入式相关的公司,但心中总是不平衡,买了本UCOS的源码介绍的书本,没事看看,一年多了,终于有机会能写代码了,一个msp430 5418的片子,本来是一个前后台带有液晶,ad,串口,和几个小算法的系统,哦,忘了说了,该系统已有前人做好,本来接手也只是等待完善,可是~管他娘的,终于有机会为何不移植一下看看,而UCOS官网上有 5438的移植源程序,下载下来就能用,上个周完成了移植,点亮了LED心中窃喜不已。
评论
icecut 2013-4-23 16:21 回复TA
恩.这思想是对的.如果你仅仅是维护,就麻烦死了 

相关帖子

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

使用特权

评论回复
评论
sunhq02 2013-7-30 08:39 回复TA
这是个图片格式的pdf,不是加密的问题 
dong_abc 2013-4-23 18:47 回复TA
PDF能复制啊,加密了? 有解密的工具哦 
板凳
qianlihu|  楼主 | 2013-4-22 21:26 | 只看该作者
对了 《嵌入式系统构件》一书是UCOS的作者写的,可是文件太大传不上来。

使用特权

评论回复
地板
qfggg| | 2013-4-22 21:31 | 只看该作者
对ucos一直有兴趣,断续的学了些,顶你!!

使用特权

评论回复
5
qianlihu|  楼主 | 2013-4-22 21:36 | 只看该作者
准备处理键盘和液晶接口的时候,着实苦恼了一阵,可最后还是写通了,但其实只是把前后台的菜单原样搬了过去,大致是这样写的,一个全局变量MENU—NUM,标识菜单页码,KEY_DEAL()根据当前键值调用处理函数如 KEY_UP();而KEY_UP()则switch(menu—num)做处理,简直就是前后台一模一样,同样的液晶驱动代码也写在了这个任务里,这和没有操作系统有什么区别!完全有些想不明白。
这里注意的是 键盘任务的优先级要高于显示任务,否则响应可能会有问题。
希望以后有机会移植UCGUI,看看怎么用,可是键盘液晶的结合大神们都是怎样处理的呢?真心希望有人解惑。

使用特权

评论回复
6
rgh111| | 2013-4-22 21:37 | 只看该作者
哈哈,有些事情就像"灯笼是张低,捅破就那么回事", 有想法, 敢动手去尝试,去做,一定能有所收获.

希望楼主以后有更多的心得体会跟大家分享.:lol

使用特权

评论回复
7
smxzyfjb| | 2013-4-22 21:53 | 只看该作者
呵呵,顶了,本人也正在学习uCOS,用的是STM32芯片。努力!!

使用特权

评论回复
8
dushuaihu| | 2013-4-23 13:48 | 只看该作者
pass by here! ding :)

使用特权

评论回复
9
frlop| | 2013-4-23 13:51 | 只看该作者

使用特权

评论回复
10
zhyscout| | 2013-4-23 13:56 | 只看该作者
一直想学这个呢,就是**不下来

使用特权

评论回复
11
liusensen| | 2013-4-23 14:03 | 只看该作者
操作系统太枯燥了

使用特权

评论回复
12
mochou| | 2013-4-23 16:02 | 只看该作者

使用特权

评论回复
13
kuangnan| | 2013-4-23 16:23 | 只看该作者
呵呵 学了一段时间 停下来了  有机会手又痒了。

使用特权

评论回复
14
dong_abc| | 2013-4-23 18:56 | 只看该作者
要搞清楚用OS和不用OS的本质区别。

周航慈还有两本书《嵌入式系统常用数据结构》《嵌入式系统常用算法》,可以看看,很薄的。

使用特权

评论回复
15
jiangfuquan999| | 2013-4-23 18:56 | 只看该作者
呵呵。恭喜楼主,翻过一座大山

使用特权

评论回复
16
dong_abc| | 2013-4-23 18:59 | 只看该作者
rgh111 发表于 2013-4-22 21:37
哈哈,有些事情就像"灯笼是张低,捅破就那么回事", 有想法, 敢动手去尝试,去做,一定能有所收获.

希望楼主以 ...

借你的话一用!

使用特权

评论回复
17
qianlihu|  楼主 | 2013-4-23 20:18 | 只看该作者
多谢楼上大神的推荐 一定会去看的

使用特权

评论回复
18
qianlihu|  楼主 | 2013-4-23 20:20 | 只看该作者
突然想起来在另一个帖子里dong_abc 大侠也曾推荐了一本书,再次表示一下感谢

使用特权

评论回复
19
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();不知这是为何?

使用特权

评论回复
20
sanguoshaaq1| | 2013-4-23 20:59 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

34

帖子

1

粉丝