使用Keil在stm32f103ZET6上移植ucos-ii并利用LED灯测试

第一次移植,我移植的目的是熟悉整个流程,主要是看实验室有相应的资源(硬件和师兄^_^),学学呗。
前后花了两天,实际就单是移植来说,根本不需要这么长时间,因为就stm32板子来说,代码、教程几乎齐备。
关键是理解整个过程和低级错误排查(因为不熟悉ucos程序的编写导致)。

总体感觉:
1)先说板子,目前官网上已经提供了相对完备的资源了,也可能是因为用的芯片本身就是比较通用的芯片吧
2)再说系统,对于ucos-ii,因为之前接触得少,所以在写检验程序的时候不知道怎么写(启动流程、任务调度时机等),所以感觉移植之前或者一致过程中看看相关内容,会事半功倍。
3)然后就是工具,我用的是Windows下的Keil uVersion4,连接线时ULINK2,感觉蛮好用的,省去了好多好多事,至少我目前感觉是这样的(对比的是之前FriendlyTiny4412,ODROID-PC和ODROID-XU3上跑Android),当然并没有太大的可比性。总之对工具熟悉能够大大提升效率,这在我后面调试找错中也发挥了很大作用。
4)最后想说的是:把握本质很重要,移植要做的就是将躯体(板子)和灵魂(操作系统)融合起来,而最关键的是大脑的神经(中断向量)和心跳(时钟中断)。
5)补充一点:细心很重要(写错代码花了半天调试后的心得,不过幸好是自己发现的^_^)

主要的过程看参考文献[1],先看一遍,不用急着上手,后面是分步来做:
各种必要资源的准备参照[4]前半部分
Keil新建STM32工程看参考文献[2],我个人觉得这个格式还是挺好的。但是ULINK2使用时的Keil配置按照[5]来。
测试用例,我用的是LED等的test,在我的网盘[3]中能下到,最好再加一个任务,看两个任务是否能够调度。使用OSTimeDly来主动放弃CPU
在初始化系统的时钟信号的时候,仅看[1]是不够的,可以参照[4]来完成

以上,基本不会有问题。

完整的工程: https://github.com/Aganlengzi/ucos-ii_fot_stm32f103ZET6

[1]  http://wenku.baidu.com/link?url=iqPjxXTECMW4DaUP8ZfzXAKvp1wShZQhtl3oD4M_yeU6Lqud9BhbGOd6I9h-6pIdK5eZixrPw7_U4TYb8Gzx-sH89FVW-ogvQJ8eCrEuyZS
[2]  http://jingyan.baidu.com/article/454316ab7ad711f7a7c03a1a.html
[3]  http://pan.baidu.com/s/1hrliVXi
[4]  http://pan.baidu.com/s/1pKmWxL5

你可能感兴趣的:(操作系统,移植,stm32,ucos-II)