zoukankan      html  css  js  c++  java
  • 移植 uC/OS-III 到 STM32

    首先,打开 Micrium 公司官方网站(http://micrium.com/),点击“Downloads”选项卡进入下载页面,在“Brouse by MCU Manufacturer”栏目展开“STMicroelectronics”,单击“Viewall STMicroelectronics”。

    由于在“Projects”栏目中选择一个基于 Keil MDK 平台在 cortex-M3 内核 MCU 评估板上测试的µC/OS-Ⅲ源码,单击即可。

    页面跳转后,点击“Download”按钮即可下载,下载前要登录该网站,未账户的注册后登录。

    https://pan.baidu.com/s/1BEOTPg1BBHCncOJAmDYgrA   我自己上传到百度网盘的

    选择一个STM32 开发板可用的裸机例程作为程序模板,这里准备了一个简单的“LED 流水灯”例程,

    https://pan.baidu.com/s/1hRXh-OGDUXWy80k0MC8MOA

    在该例程的“User”文件夹下建立下面几个文件夹

    拷贝下图路径下µC/OS-Ⅲ源码文件到“APP”文件夹下。

    拷贝下图路径下µC/OS-Ⅲ源码文件到“BSP”文件夹下

    拷贝下图路径下µC/OS-Ⅲ源码文件到“uC-CPU”文件夹下。

    拷贝下图路径下µC/OS-Ⅲ源码文件到“uC-LIB”文件夹下。

    拷贝下图路径下µC/OS-Ⅲ源码文件到“uCOS-III”文件夹下。

    将“User”文件夹下的“led”文件夹剪切到“BSP”文件夹里面,并且删除“main.c”文件。

    打开工程,首先移除废弃的文件。

    给工程增加下面的组件。

     

    为“APP”组件添加“UserAPP”文件夹下的所有文件。

    为“APP”组件添加“UserBSP”文件夹下的所有文件和“UserBSPled”文件夹下的源文件。

    为“uC/CPU”组件添加“User uC-CPU”文件夹下的所有文件和“User uC-CPUARM-Cortex-M3 RealView”文件夹下的所有文件。

    为“ uC/LIB”组件添加 “ User uC-LIB ”文件夹下的所有文件和 “ User uC-LIBPortsARM-Cortex-M3 RealView”文件夹下的所有文件。

    为“uC/OS-III Source”组件添加“User uCOS-III Source”文件夹下的所有文件。

    为“uC/OS-III Port”组件添加“UseruCOS-IIIPortsARM-Cortex-M3GenericRealView”文件夹下的所有文件。

    打开“Options for Target”窗口,给工程添加包含路径。

    编译整个工程,有 1 个错误,这是由于工程没有使用µC/OS-Ⅲ源码中 STM32 的“stm32f10x_lib.h”总头文件,在这里使用裸机例程里已有的“stm32f10x.h”文件。

    再 编 译 , 错 误 和 警 告 不 减 反 增 。 这 里 还 需 继 续 修 改 。 首 先 修 改 启 动 文 件“ startup_stm32f10x_hd.s ”, 将 PendSV_Handler SysTick_Handler 分 别 改 为OS_CPU_PendSVHandler OS_CPU_SysTickHandler,共两处。 

    cpu_cfg.h”的修改如下:
    修改一:

    修改二:

    bsp.h”和“bsp.c”文件使用的都是 uC/OS-III 源码的 STM32 板载驱动代码,这里要改成自己的裸机板载驱动代码。“bsp.h”的修改如下:
    修改一:

      把uCOS自带的STM32板载驱动文件改为自己的STM32裸机板载驱动程序

      

    修改二:

    bsp.c”的修改如下:
      修改一:

      修改二:

      修改三:

    接下来修改应用文件“app_cfg.h”和“app.c”。“app_cfg.h”的修改如下:

    app.c”的修改如下:
      修改一:

      修改二:

      修改三:

    编译工程,没有错误和警告,下载程序到秉火 STM32-ISO 开发板,可以观察到 LED1 每隔 5 秒切换一次亮灭状态,移植成功。

     


     

     

     

  • 相关阅读:
    CentOS内核优化提示:cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: 没有那个文件或目录
    CentOS 7使用通过二进制包安装MySQL 5.7.18
    MySQL错误:TIMESTAMP with implicit DEFAULT value is deprecated
    CentOS增加用户到sudo用户组
    Linux下Shell函数返回值实现种类
    Nginx配置直接php
    Nginx报Primary script unknown的错误解决
    CentOS下的apache配置支持php
    CentOS 7解压安装PHP5.6.13
    [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证
  • 原文地址:https://www.cnblogs.com/tianxxl/p/10365135.html
Copyright © 2011-2022 走看看