UCOS-III 系统移植

实时操作系统UCOS学习笔记5----UCOSIII移植 在2009年Micrium公司推出了UCOSIII,相对于UCOSII性能有了进一步的提升,支持时间片轮转调度,极短的关中断事件等。本章讲解如何在STM32F103开发板上移植UCOSIII操作系统。 1、UCOSIII简介 UCOSIII是一个可裁剪、可固化、可剥夺的多任务操作系统,没有任务数目的限制,是UCOS的第三代内核,UCOSIII有以下几个重要的特性: 可剥夺多任务管理:UCOSIII和UCOSII一样都属于可剥夺的多任务内核,总是执行当前就绪的最高优先级任务。 同优先级的时间片轮转调度:UC 阅读详情

1. 移植前准备

1.1 源码下载

UCOS-III Kernel Source:   https://github.com/weston-embedded/uC-OS3.git

Micriμm CPU Source : https://github.com/weston-embedded/uC-CPU.git

Micriμm Lib Source: https://github.com/weston-embedded/uC-LIB.git 

 

1.2. 源码介绍

1.2.1 源码组织结构图

c342bb608e4744bcaa189f4d3d6fe483.png

1.2.2 源码简介

1)应用层模块

2)BSP 与板子相关的BSP模块 (需要移植) 主要为系统时钟、时间戳相关API

3)µC-OS3/Source 内核源码 与CPU无关的模块

4)µC-OS3/Ports 与CPU相关的模块 (需要移植 )

5)uC-CPU 与特定平台CPU相关的模块(由uc-cpu提供)

6)uC-LIB 与CPU无关的库函数模块

7) µC-OS3/Cfg 配置头文件(需要配置的部分)

调用关系: UC/OS-III/Ports-->uC-CPU --> CPU_BSP

2. 移植配置列表

1)移植 uC-OS3 CPU 相关部分: os_cpu.h, os_cpu_a.asm,  os_cpu_c.c

2)移植 uC/CPU 相关部分: cpu_a.asm , cpu_c.c

3)移植板级支持包(BSP) 部分: bsp.c ,bsp.h

4)配置UC/OS-III 以下部分:

 µC/OS-III 功能配置 (os_cfg.h)

µC/OS-III 堆栈、系统任务和其他数据大小 (os_cfg_app.h)

µC/OS-III 数据类型 (os_type.h)

具体配置参考: http://t.csdnimg.cn/GNZcY

3. 移植 uC-OS3 CPU

3.1 找到MCU使用的CPU架构

以GD32F303为例,翻阅其手册,查找CPU对应的架构信息如下:

60f91b6e4275402e83972edb778b3be9.png

3.2 找到CPU架构对应的文件

        在uC-OS3/Ports目录下查找ARMv7-M,找到 ARMv7-M路径: ARM-Cortex-M/ARMv7-M

3.3 开发编译环境列表

ARM-Cortex-M/ARMv7-M 目录下有4个文件夹,分别对应不同的编译器

  • ARM: ARM公司提供的编译器,如Keil MDK开发环境。
  • CCS: TI的Code Composer Studio编译器。
  • GNU: GNU工具链(如GCC)
  • IAR: IAR 开发环境

3.4 使用Keil MDK编译器

uC-OS3/Template/bsp_os_dt.c , 有以下系统时钟相关接口需要移植:

BSP_OS_TickInit()     //初始化系统时钟滴答定时器     
BSP_OS_TickISR()      //系统时钟滴答中断服务程序

uC-OS3/Ports/Template目录里的os_cpu.h ,有以下上下文切换相关接口需要实现:   

void  OSCtxSw              (void);  // 任务级上下文切换,触发PendSV异常
void  OSIntCtxSw           (void);  // 中断上下文中进行任务切换,触发PendSV异常
void  OSStartHighRdy       (void);  // 启动最高优先级的就绪任务
void  OS_CPU_PendSVHandler (void);  // PendSV 异常处理程序,用切换当前任务的上下文到下一个准备就
UCOS-III系统的移植(STM32) 1、获取STM32的裸机模板 2、下载UCOS-III源码 3、UCOS-III源码文件简介 4、移植至STM32工程 5、按需配置工程 6、修改app.c 阅读详情

相关推荐

STM32基于HAL库移植UCOS-III教程

STM32基于HAL库移植uCOS-III教程

weixin_57356056的博客 1522

RTOS实时操作系统uCOS-III向STM32F103移植过程

本人是一名大三学生,在前一段时间曾陷入了对未来的焦虑和恐慌,比如经常会想未来该走哪一个方向,真的就靠打工安安稳稳的过了这最有激情的青春吗?也顺便利用此段低沉平静的心情好好思考了一下人生,最终确定下来我要不止步于单片机,而是要向嵌入式、操作系统进攻。操作系统大体上分为两大类:一个是实时操作系统,另一个则是非实时操作系统(具体的区别简单的说就是前者是对实时性有硬性要求的,但性能却远低于后者,后者能处理的

flyerwu的博客 1万+

RTOS实时操作系统uCOS-III向STM32F103移植过程(2)

OK,寒冷的冬天,让我们继续上节的uCOS-III移植尾巴。 上节移植最后编译我们已经将所有的错误都修正了,但是这不代表着就完事了,我们还要根据自己选择的板子来调试代码让uCOS-III能顺利的在我们的板子上运行,这里我选用的是原子哥的Stm32f103RCT6 V3.3版本的mini开发板来做移植实验。 那么板子准备好以后,Let’s start ! 首先我们打开工程的app.c文件看

flyerwu的博客 4878

uCOS-III应用开发笔记之一:uCOS-III在STM32的移植

uCOS-III实时操作系统在MCU平台被广泛使用,在这里我们将简单的记录如何将uCOS-III实时操作系统移植到目标平台上并运行。 1、必要的准备 在开始uCOS-III实时操作系统的移植前,我们还需要做一些必要的准备,如确定目标板、准备目标工程及uCOS-III实时操作系统源码等。 1.1、获取uCOS-III源码 在移植uCOS-III之前,首先要获取它的源码。其源码可以从Micrium 的官方网站:www.micrium.com得到。为了方便移植,我们建议直接下载Micrium移植好的基于目

木南创智 7414

uCOS-III阅读,第一天,也就瞎看看

写在前面的注释 本文是作者自己阅读uCOS的笔记,刚刚开始,逻辑混乱,以后可能会修改,不过以我的性格,难!!! 传到晚上只是想借用网络资源储存,谢谢 网上搞的材料 下载了stm32f103的固件库 寻找一个stm32f107的ucos III的移植好的例子1.2x版本的 移植 移植方面因为抄的是别人的例子,所以比较简单。主要是构建一个自己习惯的文件夹目录。 初探Main函数 Main函数中的主要函

u012937842的博客 2435

移植最新版的uc/OS-III到小熊派开发板

移植过程包括了准备工作、配置uc/OS-III、交叉编译uc/OS-III以及将uc/OS-III移植到开发板上进行测试。通过正确地配置和编译uc/OS-III,以及进行适当的移植和测试,你可以在小熊派开发板上运行最新版本的uc/OS-III,并开发出各种嵌入式应用。其次,我们需要获取uc/OS-III的最新源代码,你可以从官方网站或其他可靠的来源下载到最新版本的uc/OS-III。运行uc/OS-III:重启开发板,并观察uc/OS-III的运行情况。移植最新版的uc/OS-III到小熊派开发板。

DevCyberX的博客 281

UCOS-III实时操作系统的移植

Middlewares/uC-OS3/BSP分组用于存放µC/OS-III等组件中与板级相关的文件,将uC-CPU/BSP/Template/bsp_cpu.c和uC-OS3/Template/bsp_os_dt.c这个两个文 件添加到Middlewares/uC-OS3/BSP分组中。在开始移植µC/OS-III之前,提前准备好一个用于移植µC/OS-III的基础工程和µC/OS-III移植所需的相关源代码,还需要µC/CPU和µC/LIB这两个组件的源代码。如果使用 os,则包括下面的头文件。

wangjie36的博客 251

STM32F401RET6嵌入式系统项目:移植UCOS-III指南

STM32F401RET6是ST公司推出的高性能微控制器,它属于Cortex-M4核心,具有出色的性能和丰富的功能集,使得它非常适合用于各种嵌入式系统。该芯片的核心频率可达84 MHz,具备丰富的外设接口,如USB OTG, I2C, SPI, USART等,为开发人员提供了极大的灵活性和便利性。此外,这款微控制器还支持数字信号处理功能,拥有单周期乘加器和FPU浮点单元,这对于需要进行复杂数据处理的应用如图像处理、音频解码等领域是一个巨大的优势。

weixin_42163404的博客 1118

STM32H562移植UCOS-III操作系统实战指南

本文还有配套的精品资源,点击获取 简介:STM32H562是STMicroelectronics的高性能32位微控制器,搭载Arm Cortex-M7内核和FPU,适合高速处理和实时应用。本项目实现了UCOS-III实时操作系统在STM32H562上的移植,涵盖硬件特性、RTOS概念、多任务编程、中断服务、内存管理等关键知识点。开发者将通过此项目掌握如何高效利用STM32H...

weixin_42668301的博客 1789

uCOS-III在x86平台的移植实践详解

uCOS-III是Micrium公司开发的一个实时操作系统(RTOS),具有高度模块化、可裁剪、可固化、可扩展以及可伸缩的特点。该操作系统专为嵌入式系统设计,旨在为开发者提供一个稳定、高效的操作环境,适用于各种复杂度不同的嵌入式应用。uCOS-III支持多任务处理,并提供了包括时间管理、信号量、消息队列、事件标志和互斥量在内的多种同步机制。在对初始化代码的编写有了足够的了解之后,我们可以利用表格和流程图将整个过程可视化,以便更好地理解和记忆。

weixin_28922227的博客 1070

别再让OCV拖慢你的芯片!手把手教你用set_timing_derate优化STA时序(附CPPR实战)

本文深入探讨了芯片设计中OCV(On-Chip Variation)对时序分析的影响,并提供了使用`set_timing_derate`优化STA时序的实战指南。通过分阶段derate设置和CPPR技术,有效减少时序违例,提升芯片性能。文章结合TSMC 7nm工艺案例,详细解析了OCV建模与优化策略,助力工程师实现时序收敛。

weixin_42525005的博客 301

肿瘤基因组分析实战:VAF、MAF、CCF这些指标到底怎么算?(附Python代码示例)

本文通过Python代码示例,详细解析了肿瘤基因组分析中VAF、MAF和CCF三大核心指标的计算逻辑与应用。文章从VCF文件解析入手,逐步演示了变异等位基因频率、次等位基因频率及癌细胞分数的计算方法,并探讨了拷贝数变异对结果的影响及克隆结构推断的实战流程,为生物信息分析提供实用指南。

silver的专栏 1000

结合qtdesigner,用pyqtgraph在界面上绘制波形图(一)

思路:先画图,然后在qtdesigner上放一个容器,给这个容器添加一个布局,然后把图当作一个Widget放入布局中。二、PyUIC把test.ui转换成test.py,再新建一个load_test.py写脚本。就这么简单,基础部分就完成了。也可以给它添加样式,我知道的样式不算多,但会继续写。一、随便拖进来一个容器控件,我拖了一个Widget。要想把波形图显示在界面上,核心思想其实很简单。三、load_test.py的代码。

learninger_lt7的博客 1795

信贷审批中的那些坑:从零开始搭建风控策略体系的5个关键步骤

本文深入探讨了信贷审批中的风控策略体系搭建,从数据陷阱识别、规则冲突诊断到反欺诈攻防,提供了5个关键步骤的实战指南。重点解析了如何通过特征工程、决策树优化和模型可解释性技术,构建动态平衡的风控体系,有效降低逾期风险并提升审批效率。

weixin_29253711的博客 404

【WorkBuddy专栏52】Codex与WorkBuddy生态适配、用户争夺与未来走向(下)

【WorkBuddy专栏52】Codex与WorkBuddy在中国大陆的发展——生态适配、用户争夺与未来走向(下)

AI人人懂 647

ML307R OpenCPU TCP使用

实现现象 平台下发数据,板子在收到数据之后,马上再发送到平台,通过串口助手可以看到已经接收到数据。ML307R TCP 是使用LWIP的标准的socket通信,具体TCP流程可以自行百度。实验目的:实现把接收的数据再发送到服务端。因为是4G,所以必须用外网的。

面朝大海春暖花开 2222

车载以太网:PHY(物理层)介绍

本文以TJA1101芯片为实例介绍了车载以太网PHY(物理层)组成。

kevin1499的博客 6217

基于STM32L4XX、HAL库的AD7124模数转换器ADC驱动程序设计

/ 检查ID是否正确 (AD7124-4/AD7124-8有不同的ID)// 转换为电压值 (假设使用内部2.5V基准)// 构造读命令: 1(R/W) + 1(0) + 6(寄存器地址)// 构造写命令: 0(R/W) + 1(0) + 6(寄存器地址).config = 0, // 使用配置0。内置可编程增益放大器(PGA):1-128倍。// 读取ADC数据。// 读取当前ADC控制寄存器。// 检查数据是否就绪。// 写回ADC控制寄存器。// 初始化AD7124。

zhusl6688的博客 509

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: UCOS-III 系统配置
下一篇: UCOS-III 任务同步机制-信号量
TechIot@tpzw
博客等级 码龄14年 1118粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechIot@tpzw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值