怎样创建基本的网站,wordpress支持手机适应,网站使用mip后效果怎么样,上传到网站的根目录中uC/OS-III 移植到 STM32 简明教程 一、uC/OS-III 介绍 二、获取UCOS-III源码 三、建立项目工程 四、解决工程编译报错 五、修改项目文件
下一篇博客#xff1a; 【uC/OS-III篇】uC/OS-III 创建第一个任务#xff08;For STM32#xff09;
移植后的工程自取方式#xf…uC/OS-III 移植到 STM32 简明教程 一、uC/OS-III 介绍 二、获取UCOS-III源码 三、建立项目工程 四、解决工程编译报错 五、修改项目文件
下一篇博客 【uC/OS-III篇】uC/OS-III 创建第一个任务For STM32
移植后的工程自取方式 移植好的Keil工程 一、uC/OS-III 介绍 uC/OS-III 是 MicroC/OS-III 的一种版本是由 Micrium 公司开发的一款实时操作系统RTOS。以下是有关 uC/OS-III 的一些介绍 发布时间和来源 uC/OS-III 于 2008 年发布由 Jean Labrosse 创立的 Micrium 公司开发。Micrium 公司专注于提供嵌入式系统软件解决方案包括实时操作系统、TCP/IP 协议栈、USB 协议栈等。
历史介绍 uC/OS-III 是 Micrium 公司开发的第三代实时操作系统是其成功的前两代产品的延续。它建立在先前版本的经验和反馈基础上提供了更强大、更灵活和更可靠的解决方案。
特点
多任务处理支持多任务处理允许系统同时运行多个任务。优先级调度支持任务优先级可以根据任务的重要性进行优先级调度。内核可裁剪具有可配置的内核功能可以根据应用程序的需求进行裁剪。高度可移植性可移植到多种处理器架构和开发环境中。实时性具有可预测的实时性能适用于对响应时间要求严格的应用场景。
总体来说uC/OS-III 是一款功能强大、灵活可靠的实时操作系统适用于多种嵌入式系统应用并在嵌入式领域取得了广泛的应用和认可。 二、获取UCOS-III源码 官网地址Micrium Software and Documentation - Silicon Labs (silabs.com)
需要科学上网哦
一共需要下载三项源代码
1. 下载 uC-OS3 该文件下包含了uC/OS-III中独立于CPU的源文件和uC/OS-III中与CPU相关的源代码 2. 下载 uC-CPU包含了CPU相关代码 3. 下载 uC-LIB包含了可移植的函数库数学、字符串处理相关等 解压缩三个源码 三、建立项目工程 传统的STM32目录结构 UCOS-III文件夹内容新建四个文件其中多出一个UCOS-CONFIG文件用于存放UCOS-III相关的配置文件其他三个文件夹名字与上面三个源码名相对应即可 向UCOS-III文件夹下的四个文件中放入文件下面主要就是配置文件、CPU相关、LIB库相关、OS3相关的源码
有些配置文件分别在源代码的Cfg文件夹中
1.先来找UCOS-CONFIG文件夹中要放的文件
1先是 uC-CPU 文件夹
路径 uC-CPU-1.31.01/Cfg/Template 下的 cpu_cfg.h 文件 2接着 uC-LIB 文件夹
路径 uC-LIB-1.39.01/Cfg/Template 下的 lib_cfg.h文件 3最后 uC-OS3 文件夹
路径 uC-OS3-3.08.01/Cfg/Template 下的 **os_app_hooks.c、os_app_hooks.h、os_cfg.h、os_cfg_app.h **文件
2. 找UCOS-CPU文件夹中要放的文件
首先是 UCOS-CPU 目录下的四个文件下滑到最后就可以看到 接着 最后 3. 找UCOS-LIB文件夹中要放的文件
首先是这14个文件 接着这里要说明的是 RealView 就是 MDK-ARM 就是Keil MDK 4. 找UCOS-OS3文件夹中要放的文件
首先是路径 uC-OS3-3.08.01/Ports/ARM-Cortex-M/ARMv7-M下的 **os_cpu_c.c **文件 接着是 uC-OS3-3.08.01/Ports/ARM-Cortex-M/ARMv7-M/ARM 下的 **os_cpu.c、os_cp_a.asm ** 文件 最后是 uC-OS3-3.08.01/Source 下的20个文件 最终的四个文件下的内容展示
UCO-CONFIG 文件夹下一共6个文件 UCO-CPU 文件夹下一共7个文件 UCO-LIB 文件夹下一共10个文件
UCO-OS3 文件夹下一共22个文件 配置keil项目
不废话直接上图懂得都懂 四、解决工程编译报错 报错1
…\UCOS-III\UCOS-OS3\os_cpu.h(83): error: #35: #error directive: CPU_CFG_NVIC_PRIO_BITS not #define’d in ‘cpu_cfg.h’ /* See Note # 1 */
解决办法搜索整个工程搜索 CPU_CFG_NVIC_PRIO_BITS 将预编译的0改成1该语句在 cpu_cfg.h 的第 242 行 CPU_CFG_NVIC_PRIO_BITS 是用来配置中断优先级位数的
报错2
…\UCOS-III\UCOS-OS3\os_cpu_c.c(48): error: #5: cannot open source input file “…/…/…/Source/os.h”: No such file or directory
改成相对路径 os.h 即可 报错3
.\Objects\ucos.axf: Error: L6200E: Symbol Mem_Copy multiply defined (by lib_mem_a.o and lib_mem.o).
解决办法
将lib_mem.c中的Men_Copy函数注释或者将宏定义修改
将 #if (LIB_MEM_CFG_OPTIMIZE_ASM_EN ! DEF_ENABLED) 修改为
#if (LIB_MEM_CFG_OPTIMIZE_ASM_EN ! DEF_DISNABLED)
成功编译 五、修改项目文件 在启动文件中修改如下内容
将 PendSV_Handler 修改为 OS_CPU_PendSVHandler
将 SysTick_Handler 修改为 OS_CPU_SysTickHandler
修改为 往下滑对应函数也修改下 如果你的工程中原本也定义了这两个中断处理函数也要注释掉