• UCOS2_STM32F1移植详细过程(一)


    推荐

     分享一个朋友的人工智能教程,零基础!通俗易懂!希望你也加入到人工智能的队伍中来!

    http://www.captainbed.net/strongerhuang

    Ⅰ、概述

    该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台:

    系统平台:µC/OS-II  (最新V2.92版)

    硬件平台:STM32F1   (适合F1所以系列)

    开发平台:Keil(MDK-ARM) V5 

    1.为什么是µC/OS-II?

    原因在于µC/OS-II是一个比较成熟、稳定的系统,与µC/OS-III比较有些机制相对简单很多。当你掌握了µC/OS-II,µC/OS-III很容易就理解了。

    2.为什么是STM32F1?

    硬件平台是在移植的过程中比较重要的一点,也就是说,不同的硬件平台,移植过程中的端口(uCOS-IIPorts下源文件)存在一定的差异性。

    但是同一内核的芯片,在系统移植的过程中基本上类似,也就是说,你掌握这一种内核(如:Cortex-M3),你移植相关的芯片就很容易了。

    还有就是,你掌握了移植的原理,不管在什么芯片上移植你都会觉得不是那么难,笔者在51、430、ST等众多芯片上移植过µC/OS,问题都不是很大,只要用心,相信都会没问题。

    3.为什么是MDK-ARM V5?

    这里没什么好说的,个人爱好,喜欢使用最新的开发平台。其他平台(如:IAR)与系统软件关联性不是很大,你也可以试着用其他平台进行移植。

    笔者将“UCOS移植详细过程”分为多篇文章来讲述,敬请关注。

    关于本文的详情请往下看(微信请点击“阅读原文”查看内容链接内容)。

    Ⅱ、关于µC/OS

    µC/OS-II是Micrium公司开发的一套嵌入式实时操作系统,应用非常广泛(工业、医疗、航天等)。µC/OS-II具有裁剪性(配置资源多少)和高度的移植性,所以很受嵌入式开发工程师的追捧。

    µC/OS总共有三大版本(μCOS、μCOS-II和μCOS-III),这三个版本也存在很多差异,该文主要针对初学者,因此围绕µC/OS-II来讲解。它们之间的差异对比可以参看相关文档(uCOS-III用户指导手册)。

    https://yunpan.cn/cRU7gefa6gcma  访问密码 8c7d

    Ⅲ、准备工作

    1.µC/OS软件工程包下载

    µC/OS-II可以在Micrium官网下载(需要账号),也可以到我360云盘下载。

    Micrium官网下载地址(需要账号):

    https://www.micrium.com/download/micrium_stm32f107_ucos-ii

    我360云盘下载地址(定期更新):

    https://yunpan.cn/cRzcf8eSacEhE  访问密码 1235

    Micrium官网下载流程图:

    2.ST标准外设库

    Micrium官网下载的软件是使用比较老的ST标准外设库,这里我们下载最新的外设库。

    ST官网下载地址(需要账号):

    http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961

    我360云盘下载地址(定期更新):

    https://yunpan.cn/cSaCpGejMSfr8  访问密码 60ae

    ST官网下载流程图:

    3.MDK-ARM下载与安装

    该环节我在我的其他文章中已经详细讲述过,请参考我的另外一篇文章:

    http://blog.csdn.net/ybhuangfugui/article/details/51647893

    Keil官网下载地址(需要账号):

    https://www.keil.com/demo/eval/arm.htm

    我360云盘下载地址(定期更新):

    https://yunpan.cn/cPYaeY23RSsbb  访问密码 9aba

    Ⅳ、移植过程(文件描述与提取)

    1.软件工程文件夹描述

    从Micrium官网下载的软件工程包解压之后会发现里面有许多源程序文件,其实对于初学者来说,里面有很多文件都不会使用的。这里我们以下载的软件包“Micrium_uC-Eval-STM32F107_uCOS-II.zip”解压来说明一下里面的文件。

    EvalBoards:评估(开发)板相关文件;主要是配置底层和系统,我们会提取部分有效文件。

    uC-CPU:CPU相关文件;我们使用ST标准外设库配置一些模块,不使用该文件夹下文件。

    uC-LIB:这个是Micrium官方的库,初学者这里也不使用。

    uCOS-II:这个文件夹才是关键,我们移植的内容基本上就是这里的文件。

    2.提取工程中有用的文件

    我们主要提取EvalBoardsuCOS-II下文件。

    app_cfg.h是应用配置的文件(如:任务优先级、堆栈大小等)。

    os_cfg.h是系统配置的文件(使能相应功能函数,也就是所谓的裁剪系统)。

    将这两个文件提取至我们自己新建工程app文件夹下。

    Ports是与系统息息相关的端口配置文件。

    Source这个不用说了,就是OS全部文件。

    拷贝整个uCOS-II文件夹(里面)到我们工程。

    3.提取ST标准外设库有用的文件

    Micrium官网下载的软件工程包也是使用标准外设库建立的工程,但那是老版本的标准外设库,因此,我们需要使用ST官网最新的标准外设库。

    提取的文件过程我不在描述,最后我会提供下载链接供大家下载。

    4.整合提取的文件

    Micrium官网下载的文件 + ST下载标准外设库 + 提取整合

    = UCOS2_STM32F1_ProjectTemplate(提取文件),如下图:

    可以在我360云盘下载整合提取的文件:

    https://yunpan.cn/cRz7TxwWex9Wc  访问密码 70f4

    Ⅴ、移植过程(新建工程及文件)

    1.新建工程

    新建Keil软件工程及其工程的配置这里就不在多说,可以参考我的另外一篇文章:

    http://blog.csdn.net/ybhuangfugui/article/details/51510482

    配置的时候需要将uCOS-II下的文件添加到工程,同时也需要将他们的路径配置好。

    如下动画:

    2.新建、修改文件

    工程建好之后,还需要新建一些文件(main.c、 bsp.c、 bsp.h、 app_cfg.c、 app_task.c、 app_task.h等)。同时,还需要修改某些文件,修改的这些文件是移植过程的重点,我将在下一篇文章进行总结

    我将新建好的工程和源代码整理打包供大家下载(注意:没有修改源代码,暂时编译通不过)。

    360云盘下载(新建工程、文件):

    https://yunpan.cn/cRpHh6CTYQavV  访问密码 cc34

    Ⅵ、说明

    当你掌握UCOS在一种平台上的移植,其他平台移植原理类似,请不要局限某一平台。

    以上总结仅供参考,若有不对之处,敬请谅解。

    Ⅶ、最后

    我的网站:https://www.strongerhuang.com

    我的知乎:https://www.zhihu.com/people/strongerHuang.com

    我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

  • 相关阅读:
    new in swift
    Mac Git [remote rejected] master -> master (pre-receive hook declined) 解决方案
    Mac git 代码的Add 以及提交
    swift storyboard 跳转的2 种方式
    iOS 常用指令(svn cocoa pod)
    java面试题(晨星)
    谈Spring的理解
    软件产品开发文档大纲
    商城项目要点
    金蝶面试小记
  • 原文地址:https://www.cnblogs.com/strongerHuang/p/5616969.html
Copyright © 2020-2023  润新知