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

时间:2022-09-12 20:07:49
第一次移植,我移植的目的是熟悉整个流程,主要是看实验室有相应的资源(硬件和师兄^_^),学学呗。 前后花了两天,实际就单是移植来说,根本不需要这么长时间,因为就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