• 移植 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 秒切换一次亮灭状态,移植成功。

     


     

     

     

  • 相关阅读:
    MongoDB配置客户端
    fatal: refusing to merge unrelated histories
    Connection reset by [server_ip] port 22 (hexo d 部署博客出错)
    hexo d 部署博客时出错
    git reset --hard xxxxxxx
    查看MySQL版本的命令及常用命令
    log4j 知识点
    ssh 登录报错 packet_write_wait: Connection to x.x.x.x port 22: Broken pipe
    Windows&Word 常用快捷键
    Apache所有开源项目文件
  • 原文地址:https://www.cnblogs.com/tianxxl/p/10365135.html
Copyright © 2020-2023  润新知