您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 步步清晰之uCOSII在STM32上的移植
weishao 步步清晰 1 步步清晰之uCOSII在STM32上的移植-图文并茂版开发环境:KeiluVision4–MDK(Windows Xp)目标芯片:互联型STM32F107(酷牛开发板)OS版本:uC/OS-IIV2.86外设库版本:STM32F10x_StdPeriph_Lib_V3.5.0作者:weishao~邮箱:weishao2401@163.comQQ:115393395建立日期:2012-03-16文档版本:CSD‐C‐20120316‐uCOSII‐V1.0更新日期:文档版本:在我兴匆匆的看完北航任哲版的《嵌入式实时操作系统uC/OS-II原理及应用(第2版)》,并下载了一堆移植教程,找来板子想自己动手移植时,才发现移植uC/OS-II还是不容易。网上下载的教程中有的时间太老,用的还是uC/OS-IIV2.55版;有的又缺乏全局观,只窥流程;有的又过于全面,特别是micrium官方的,一大堆文件加上各种重定义,让我看得云里雾里。直到看到一位网友写的《UCos-ii在STM32上的移植详解》后我才算是真正移植成功。在感激之余,我才发现他没留下高姓大名,真是云淡风轻,那我将他称为牛A同学吧,因为后文还要引用他的文章。在做总结时,我感到如果牛A同学这个文章能写得更详实,并且图文并茂的话,将更具参考性。还感到网络上各位工程师无私奉献的精神应得到学习发扬,遂在牛A同学的基础上,参考我自己的移植过程和体会,写了下面的文章,供大家参考。同时,谨以此文献给我尊敬的晓丹同志(LeeDan)。O(∩_∩)O~============================Ucosii在stm32上的移植-准备工作============================STM32标准外设库添加:stm32标准外设库是stm32全系列芯片的外设驱动,有了它可大大加速我们开发stm32,同时使我们的代码标准更统一,更易移植。1.下载代码:首先从st公司的网站下载昀新的stm32标准外设库,写本文时昀新的版本是V3.5.0(2012-3-13)。直接下载V3.5.0版本 若觉得官网下载速度太慢,也可去这下载: 附:读者也可进入stm32资料下载页面,看看有没有昀近更新的外设库我用的是stm32F107,具体的芯片资料和相关应用案例如下: 解压该树形目录其中Li是使用st公◆我们主2.建立工程文既然准备的目录结构◆假设建Librar zip文件,得录如下:ibraries包含公司评估板的主要关心Li文件夹结构:备使用32位。建立了一个名ies,OS-uC 得到如下文件图含库的源代码的例子,stm3braries和P:位单片机,应名为Stm32-uCOSII,Pro 件夹和文件,图1.1ST官图1.2ST官码,Project包32f10x_stdpProject文件应该是个不小ucosII-demooject,Rea图2.1 如下图:官方版标准外官方版标准外包含stm32各eriph_lib_u件夹,等会我项目,因此工o-weishao的adme。推荐工程文 外设库总目录外设库树形目各个外设的使um.chm教我我们要从中拷工程目录也应的文件夹,该件夹总图 录录使用范例和一我们怎么用标准拷取资料。应做个规划。该目录下有6 步步清晰一个工程模板准外设库。这里推荐一个文件夹Ap晰 2板,Utilities一下我所使用pp,Bsp,weishao2 s用 App用来件,OS-uCOS或说明文件◆Proje◆OS-uC3.整理库代码由于Li利于工程维护◆1.把件夹直接拷◆2.在STMcore_cmSTMstm32f掉这3个◆3.在Lst◆4.把stm32f所有文件 来存放应用程SII用来存放。ect下再建立COSII下再建码:ibraries下护,实际上一把刚解压的S贝到新文件夹在新文件夹SM32F10x_Stdm3.h;和M32F10x_Std10x.h,syst个文件的只读在新文件夹Libraries\CMtartup文件把\STM32F10x10x_it.c,st件的树形目录 程序文件,B放uCOS文件立两个子文件建立两个子文的CMSIS文一个项目往往TM32F10x_St夹Stm32-ucotm32-ucosIdPeriph_LibdPeriph_Libtem_stm32f1读属性。Libraries\CMMSIS\CM3\De件夹中。这里我x_StdPeriphtm32f10x_it录图如下: sp用来存放件,Project用件夹Output和文件夹core和文件夹中很多代往是用固定的tdPeriph_LiosII-demo-wI-demo-weisb_V3.5.0\Lib_V3.5.0\Li10x.c,systM3目录下建eviceSuppor我拷贝的是sh_Lib_V3.5.t.h,stm32f1图2.2推 放版级驱动文用来存放工程和List。和port。代码是和编译的编译器和芯ib_V3.5.0\Lweishao\Libshao\Librarbraries\CMSbraries\CMSem_stm32f10建立startup文t\ST\STM32Fstartup_stm0\Project\S10x_conf.h拷推荐工程文件 件,Librari程文件,Rea译器及芯片相芯片,因此有Libraries下braries中。ries目录下建SIS\CM3\CorSIS\CM3\Dev0x.h拷贝到文件夹,并根F10x\startum32f10x_cl.STM32F10x_S拷贝到新Stm件夹树形图 ies用来存放dme用来存放相关的,导致有必要对库进下的STM32F10建立CM3文件reSupport\viceSupport到新Librari根据你所选的up\arm\下对s(互联型stStdPeriph_Tm32-ucosII- 步步清晰放STM32的标放TXT格式的致文件夹多且进行整理。0x_StdPerip件夹,把下的cot\ST\STM32Fies\CM3文件的芯片类型,对应的启动文tm32芯片的Template下的-demo-weish晰 3标准外设库文的本项目自述且深度大,不ph_Driver文re_cm3.c,F10x\下的件夹中,并去将文件拷贝到启动文件)。的hao\App中。weishao3 文述不文去 下面对该LibrarmisLibrarStandard,是core_cm使用CM3内核stm32fDeviceSuppo其中stm32fsystem_stm32芯片,startupOK,ST4.建立kei使用ke文件夹下。该板子就是用这库里已经有启将UV4属性中调出接下来在◆2.把程里的STM3◆3.把到工程里的 该库文件做个ies\STM32F1sc.h和miscies\CMSIS是Cortex系m3.c,core_核的芯片也可10x.h,syort目录下,10x.h是标准_stm32f10x.配置PLL、p_stm32f10x官方库文件il开发工程eilMDK新建该过程中会要这个芯片),启动代码了。中projectManageCom在该工程中建把\Libraries32F10x_StdPLibraries\STM32F10x_ 个简单介绍10x_StdPeric.c是和CM3下是什么呢系列处理器硬_cm3.h它们可以用,不一ystem_stm32说明这几个准外设库的入c,system_系统时钟和x_hd.s是st夹STM32F10建名为Stm32要求选一个s接下来要注。window里的mponents菜单建立如下子目s\STM32F10xeriph_DriveCM3目录下所_CM3下。 iph_Driver\3内核有关的呢?CMSIS英硬件抽象层,们的目录名为一定是stm32。f10x.c,s个文件是和具入口,使用标_stm32f10x.和内置flashtm32芯片的启0x_StdPerip-ucosii-demstm32系列的意的是当弹的顶层目录T单即可设置)目录:图4.1推荐x_StdPeripher下。所有.c和. 下的内容很好的NVIC和Sy英文全称:C可以理解为CoreSuppor。这两个文件system_stm3具体的芯片有标准外设库的h是芯片级接口。启动文件,hph_Lib_V3.5.mo的工程,的芯片,哪一出是否拷贝启Target1改名,并将第一个荐keil树形h_Driver\srch文件和Lib 好理解就是sTick的驱动CortexMicrcortex内核rt,说明这两件用来获取设32f10x.h和有关的,也就的代码中必须级初始化库函hd表明是大容.0已经没用并保存到St一个都无所谓启动代码到工名为STM32-u个SourceG形工程目录图c目录下所有braries\CMS stm32的各个动代码。rocontrolle核的软件接口两个文件是C设置CM3内核和startu就是stm32芯片须包含该头文件函数文件,他容量型芯片。了,可以关tm32-ucosII谓(我选的是工程文件夹时uCOSII-DEMOGroup1删除图有(或部分必SIS\startup 步步清晰个外设模块驱erSoftware口。CM3内核支撑,配置一些内up_stm32f10片的支撑文件件。他们提供库函。闭了。I-demo-weisSTM32F107V时要选No,因O(右键单击除。必须的).c文p目录下相应晰 4驱动代码。eInterface撑文件,其他内核寄存器。0x_hd.s在件。函数来初始化hao\ProjectVC,因为我的因为标准外设击Target1,文件加载到工应.s文件加载weishao4 e他在化t的设工载 ◆4.把其5.初始配置事实上一节中已有说◆1.加◆2.1.行,根据所选己选用的芯片◆2.2.释,启用st App目录下的中stm32f10置STM32的标,stm32标准说明,下面我加载文件:加配置芯片类选芯片类型,片到底是属于是否启用标tm32标准外设 的所有文件加x_it.c是中标准外设库准外设库的使我把其中的步加载库文件和类型:(编译下,去掉相应注于低密度型、标准外设库:设库。 加载到工程里中断服务程序使用在stm32步骤罗列一下和相应启动代下工程,使头注释。这里我、中密度型、图5.2继续在stm3图5.2. 里的APP下文件,stm32f10x_stdper下:码到工程中头文件加载进我去掉STM32高密度型还2.1配置芯片32f10x.h文.2启用标准 。2f10x_conf.riph_lib_um,这一步在上进工程)打开2F10X_CL行的还是互联型,片类型
本文标题:步步清晰之uCOSII在STM32上的移植
链接地址:https://www.777doc.com/doc-1417341 .html