【asp精品源码栏目提醒】:以下是网学会员为您推荐的asp精品源码-【精品】一步步建立 STM32 UCOS 模板 - 网络与通信,希望本篇文章对您学习有所帮助。
uCOS 学习随笔 StepbyStep‐1 Project:fira‐mirosot‐robot uCOS 学习随笔 StepbyStep‐1 ——构建模板(基于 STM32 控制的第四代圆梦小车)一、 序 基于第四代圆梦小车 —— FIRA 设计了一个使用 STM32 的控制板(详细介绍见项目中的说明: IntroductionB‐HardwareoftheSmartCar.pdf )。
既然硬件从 51 升级到 ARM,软件也应该相应升级,似乎不能再编写那种简单的轮询调度程序,也应该相应升级到基于操作系统编程。
按 STM32 的规模和性能,以及小车的控制需求,实时多任务操作系统 uCOSII 应该是不二的选择,不论从其性能和功能考虑,还是从学习角度考虑,uCOSII 都很适合。
首先,它是开源的,有丰富的资源。
其次,它是可靠的,符合正式的工业控制、产品设计需求。
小车所面对的是那些学习相关专业的大学生,作为他们学习的辅助工具,趣味性只是为了降低学习的枯燥性,不是目的。
他们借助这个平台是为了积攒应付未来工作的能力,所以,学习内容的实用性是必须考虑的。
本人从未基于操作系统编写嵌入式程序。
开始使用 MCU 的时候,MCU 的内存太小,256 字节 RAM ,2K 字节 ROM,能勉强把程序装入就不错了,连 C 语言都不敢选择。
而且,那时好像也没有 RTOS(RealTimeOperationSystem),或者是由于信息交流渠道匮乏,不知道有 RTOS。
既然我提供了这个平台,也借此机会尝试一下,和大家一起学习使用 uCOSII。
(从单片机应用升级为嵌入式应用 _) 第 1 页 共 19 页 uCOS 学习随笔 StepbyStep‐1 Project:fira‐mirosot‐robot二、Step1 想要得到什么?(需求分析) 第一步我想得到的是: 1 如何建立一个基于 uCOSII 的编程环境(目录、文件组织); 2 如何基于 IDE(IAR 或 RvMDK)建立一个工程,能够产生可以运行的程序; 3 得到一个“干净的”、可以作为模板的 uCOSII 程序组(Project); 4 通过上述过程初步理解在 uCOSII 下如何编写应用程序。
之所以要把“如何建立……”作为需求,而不是找一个现成的模板或示例程序修改、添 !因为程序中有太多的东西不知加自己的功能,是因为看了许多这种程序,感觉“极不可靠”道为何而存在?不知道为何而被注释掉?似乎这些东西都像“定时炸弹”,早晚会给你的程序带来麻烦。
同时,也给自己理解程序的构成和运行机制带来困扰,既然是学习,就应该知其然、知其所以然,否则也谈不上“掌握”,更不敢在日后的工作中应用(如果是打工,也许还敢试试,如果是用自己的钱做产品、项目,我想你一定不敢用),如此则和做此事的初衷相悖了。
三、如何入手? uCOS 的书有很多,也看了许多,但多数都是解析操作系统本身的,或者是如何移植,鲜有书籍、资料教你如何在操作系统下编程。
实际上,对于学习者,特别是初学者,更多需要的是学会如何在一个移植好的系统下编程,等到能基于操作系统实现自己的功能后,才会有心思去探究操作系统是如何在自己的MCU 上运行的 , (移植) 以及那些神秘的系统功能是如何实现的 。
(了解系统函数及运行机制) 而且这种探究也是有选择性的,首先是自己用到的功能才有兴趣去研究,否则如坠云雾。
其次,取决于自己所扮演的角色,如果只是学习一下,那只需泛泛了解,有个定性的认识即 第 2 页 共 19 页 uCOS 学习随笔 StepbyStep‐1 Project:fira‐mirosot‐robot可。
如果要用于产品,那可能要深究,吃透其源代码,以保证产品的可靠和高效。
所以,要想学习有效,学习的方式首先要“正确”。
在编程理念上,人们已经接受了“面向对象”的思维方式,并且承认了其优越之处。
可在学习方式上似乎并未接受,至少大多数书籍还是基于“过程”的,目前所倡导的“任务驱动”(或者称之为“项目驱动”)模式似乎未被响应,而所谓“任务驱动”我觉得从实质上讲类似于编程中的“面向对象”概念。
“面向对象”核心是将编程的关注点放在要实现的功能上,而非实现功能的方式。
“任务驱动”核心是将学习的关注点放在要