【麒麟座开发板试用体验】UCOSIII学习札记(一)

  • 开发
  • 麒麟
  • 支持中文
  • LV2工程师
  • |      2016-11-05 21:48:56
  • 浏览量 979
  • 回复:4
本帖最后由 支持中文 于 2016-11-5 22:36 编辑 初探ucosiii 上周末收到论坛寄来的开发板,心里那个激动啊.本想发个开箱贴分享一下喜悦,一看有那么多人都写过了,写的很好,有详细介绍开发板的,有分享资源的,我也写不出花样了,就不发开箱贴了. 我之所以申请这块板子,主要目的是想学习ucos.嵌入式开发嘛,不跑跑系统总感觉少了点什么.关于ucos,很多人在纠结,ucosii和ucosiii该学哪一个.相比之下,ucosii容易学一些,ucosiii显得复杂; ucosii的存在时间比较长,有很多学习资源容易找到,而关于ucosiii的书确实是少的可怜,无疑又增加了学习难度. 上表可以看出,ucosiii比ucosii性能优越不少,主要是增加了一个非常实用的功能,时间片轮转调度!这样我们就可以将两个任务设置同一优先级,这一点,ucosii是做不到的.还有一点 ucosiii最大任务数无限制,不过嘛,嵌入式设备中,谁也不会有那么多任务可以执行,所以这个优点没什么用了.我是决定学ucosiii的,不仅是因为它比ucosii强大,而是我觉得吧,高版本 会取代低版本,这也是它诞生的目的吧.只是时间问题.毕竟ucosii存在了那么长时间,取代它总需要一个过渡时间. 由于学习比较紧,我每天学习ucosiii的时间也比较少.都收到开发板五天了,才把ucosiii移植好.如果你也想学的话,我推荐你看本书:<<嵌入式实时操作系统uc/os-iii>>,这本书的作者就是ucos的 创始人,这本书并没有讲程序,主要讲解的是ucosIII工作原理和一些函数的用法.对于深入学习ucosiii很有帮助.由于市面上关于ucosiii的例程比较少,我再推荐看原子的视频,讲的挺不错,就是太粗浅, 配合拿本书看会比较好. 不说废话了,建工程!!! 新建一个文件夹,添加这几个文件夹.Prj是工程文件夹HARDWARE是编写的底层硬件驱动,APP是用户编写的应用层软件 FWLIB是stm32 固件库,CMSIS是启动文件.UCOSIII是关于ucosiii的文件,也是我们主要移植的文件. ucos的运行依赖于stm32的滴答定时器,我看了原子大哥移植后的工程,发现配置系统的函数在delay.c文件里,写的有些复杂,他首先配置了滴答定时器的时钟频率,又开启滴答时钟的中断,其中用了很多宏定义, 让人很懵逼.再加上他的函数命名,我刚开始学时,实在是搞不懂他想干什么. 还好,我发现了另一个函数,和这段代码有相同的作用,使用起来很方便. 我写了这个SysTickInit()函数来初始化系统运行时钟,其中只调用了st官方给的函数SysTick_Config().这个函数的具体用法我就不啰嗦了,图片上写的有. 刚接触ucosiii,我不知道ucosiii文件是什么作用,不过早晚会知道的,现在要做的就是移植过去.我是仿照原子的工程移植的,做了一定的修改,更能让初学者接受吧.因为一直不了解他为什么这么 移植,查阅了很多资料,但还是不清楚,这对初学者来说太难了,我不能在钻牛角尖了.要继续学.或许学的多了,有一天就知道了. (ps:第一次发帖,都不知道该说什么了,别笑话我语无伦次啊.)
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:3
lilei 2016-11-08
谢谢分享
0   回复
举报
发布
雪狼 2016-11-08
谢谢分享
0   回复
举报
发布
wengqiang 2016-11-07
学习。谢谢
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子