STM32H750 KEIL CMSIS RTOS2工程的的建立

兆易创新GD32 (四)FreeRTOS 移植 与 CMSIS OS2 使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。RTOS系统现在的种类可以说是五花八门,国内就有很多加,国外就不用说了,每家都有自己的API,所以ARM对RTOS的API做了一个统一的命名规则,在各家的RTOS上包了一层,统一了访问接口。正常情况下是不需要的在FreeRTOSConfig.h 中搜索HOOK,把对应的define关掉。在我们的工程目录下,添加这两个C文件,并且包含相应的头文件目录。 阅读详情

原来一直用KEIL UV4,用了KEIL 的 RTX实时操作系统,就再也回不去裸奔的时代了,RTX实时操作系统的多任务制非常便于模块化程序设计,关键是还非常适用于小型而高实时性要求的应用场景,加上现在的CPU处理速度已经很快了,不需要再考虑RTX操作系统的任务切换的额外消耗时间,另外实时中断也不受RTX操作系统的影响,建议裸奔的兄弟们可以花的时间去试用一下,会有惊喜的,好了,不再废话了,新RTOS2 没法直接在KEIL显示各任务实时运行状态了,上图吧:在这里插入图片描述
在这里插入图片描述
上面这个些中间件在KEI UV5安装后,自行安装不再赘述,:)点OK后,会启动STM32CUBEMX,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先将RCC时钟信号配置好,我用的是12MHZ,默认的是25MHZ,后面有个地方一点要注意就是配置文件里的HSE也一定要配置为12MHZ,不然RTOS2运行的时钟信号不对:)
在这里插入图片描述
这里输入12MHZ
在这里插入图片描述

这里直接输入480MHZ,让系统自动配置其他的参数就可以了,然后点 GENERATE CODE 按钮
在这里插入图片描述
生成新工程后在KEIL中加载,目录如下:)
在这里插入图片描述
在这里插入图片描述
这里需要将这个ARM编译器设为版本6,不然编译速度让你怀疑人生:0,先编译一次,将会出现3个错误:)
在这里插入图片描述
这就因为RTOS2库中用了这3个中断,所以在在这里插入图片描述
这个里需要将这个三个函数改下名:)
在这里插入图片描述
在函数名后面加个1就可以了,简单:),再编译一下就没亦错误了,这个基本完成准备工作了:)
在这里插入图片描述
现在就可以在主程序中增加任务了,首先需要在主程序中增加一个头文件 #include “cmsis_os2.h”,
然后在主程序初始化部分以下4个函数
SystemCoreClockUpdate();//初始化系统时钟
osKernelInitialize();//初始化操作系统内核
osThreadNew(First_Task,(void *)1,0);//新建第一个进程
osKernelStart();//启动系统
这几个函数必须在WHILE(1)循环以前,后面不能再有初始化代码,有也不会运行了:)上面的 osThreadNew(First_Task,(void *)1,0)函数里的(First_Task)就是第一个任务或进程:),下面是这个函数 的定义 :),定义了一个观察变量my_ctr,用来观察函数是否按照设定的时间片运行,下面的任务是0.1秒运行一次,这个基本和原来的RTX差不多了,就是函数名称发生了改变,
unsigned int my_ctr[5];
void First_Task(void *argument){

// initialize peripherals here
/* 初始化外设 /
my_ctr[0]++;
my_ctr[1]=my_ctr[0];
while (1)
{
/
USER CODE END WHILE /
osDelay(100);
my_ctr[0]++;
my_ctr[1]=my_ctr[0];
/
USER CODE BEGIN 3 */
}
}
还有的地方一定要注意,就是下面的HSE一定要定义为自己系统的实际晶振,不然就会以25MHZ的晶振进行计算操作系统 的时间片定时,会和实际不准。
在这里插入图片描述
编译后后没亦错误的话,就可以直接下载并运行,这个不操作任何硬件,只对my_ctr[0]进行计数操作,下载调试运行后,观察my_ctr[0]值就可以了:)
在这里插入图片描述
好了,新建一个CMSIS RTOS2工程就完成了,其他的操作系统函数,都有对应的说明,下面是打开方式
在这里插入图片描述
在这里插入图片描述
这里面有操作系统的函数和配置说明,可以自行选择对应的功能,初次写文章,如果有错误还请多多指教:)本文主要目的是用STM32H750VB芯片建立一个可以运行CMSIS RTOS2操作系统最基本的例程,因为原来主要用的STM32F103R8T6+VRTX(KEIL UV4),准备将原来的控制器程序移植到H750VB的芯片(快很多:D),后面会陆续写移植的坑和解决方法:)
/ * ------------------------------------------------ ----------------------------

  • CMSIS-RTOS“主要”功能模板
  • ------------------------------------------------- -------------------------- * /

#include“ RTE_Components.h”
#include CMSIS_device_header
#include“ cmsis_os2.h ”

/ * ------------------------------------------------ ----------------------------
*应用程序主线程

  • ------------------------------------------------- -------------------------- * /
    void app_main(void * argument){

// …
for(;;){}
}

int main(void){

//系统初始化
SystemCoreClockUpdate();
// …

osKernelInitialize(); //初始化CMSIS-RTOS
osThreadNew(app_main,NULL,NULL); //创建应用程序主线程
osKernelStart(); //开始执行线程
for(;;){}
}

CMSIS-5源码级实战:嵌入式工程师的跨平台工程治理指南 CMSIS(Cortex Microcontroller Software Interface Standard)是ARM为Cortex-M系列MCU定义的底层软件接口标准,其核心价值在于统一内核访问、中断管理与外设抽象,解决芯片厂商HAL碎片化问题。它并非通用函数库,而是以头文件和轻量级API构成的‘硬件宪法’,涵盖CMSIS-Core寄存器封装、CMSIS-DSP数学加速、CMSIS-RTOSv2跨RTOS抽象等关键模块。技术原理上,它通过编译时宏控制(如__FPU_PRESENT)、内联汇编约束(如_ 阅读详情

相关推荐

CMSIS-FreeRTOS深度解析:ARM Cortex-M标准RTOS接口契约

CMSIS-FreeRTOS并非独立RTOS,而是ARM为Cortex-M生态定义的标准化RTOS接口契约,本质是CMSIS-RTOS v2规范在FreeRTOS上的实现层。其核心原理在于解耦芯片硬件抽象与调度逻辑,通过函数指针表(如osKernelControlBlock)统一API语义,支撑跨厂商MCU(STM32/NXP/RA等)的代码可移植性。技术价值体现在工程复用性与生态兼容性,但依赖编译器特性、SysTick配置及中断上下文封装等底层细节,导致实际落地中存在优先级截断、ISR内联失效、tick频

weixin_34295316的博客 226

#include CMSIS_device_header,FREERTOS,这句报错

解决方法,调成1.8.5就行。

2301_77115619的博客 3273

RTOS内功修炼记(八)——CMSIS RTOS API,内核通用API接口

1. CMSIS-RTOS API CMSIS-RTOS API是ARM公司为RTOS内核制定的一套通用接口协议,它提供了一套标准的API接口,可以移植到各种各样的RTOS上,使得上层的软件、中间件、库以及其他组件在不同的RTOS之上都可以正常工作。 这套API表现为两个文件:cmsis-os.h和cmsis-os.c,也就是说,不同的RTOS内核分别用自己的一套东西去适配.c文件中的接口,而用户只需要调用.h文件中给出的API编写应用。 本文会列举性的给出CMSIS-RTOS有哪些API和宏定义,并给出每

Mculover666的博客(嵌入式) 3877

CMSIS—OS(V1/V2)

CMSIS-RTOS2 是一个通用的 API ,不受底层 RTOS 内核的影响。在这个实时操作系统泛滥的年代,有这么一个系统封装接口层还是蛮有必要的。前些时间偶然间在STM32最新的固件库中就发现了这个系统封装接口,当时就把自己所用的系统进行封装。相同的代码可以轻而易举的移植到不同的实时系统中。其简洁的书写手法,也会给我的应用层带来视觉上的体验感,使用可以尽可能去关注应用。只需更改该CMSIS-OS的API所调用的RTOS的API。更换RTOS的意义何在?更换项目中所使用到的RTOS。

dianqicyuyan的博客 2439

STM32H750 + FreeRTOS 时间片调度一键运行工程(ARM Compiler 6直编译)

直接可用的STM32H750VBT6平台FreeRTOS工程,已预配置时间片轮转调度机制,上电即跑多任务并自动切换上下文。包含完整CMSIS支持、H7专用启动文件startup_stm32h750xx.s、QSPI链接脚本qspi_code_scf.scf、系统时钟初始化system_stm32h7xx.c、基础外设驱动(串口/延时/系统控制)及标准FreeRTOS内核源码(tasks.c、queue.c、timers.c等)。全部代码适配ARM Compiler 6(armclang),Keil MDK环

tgb34567890的博客 253

编译带有RTX的工程时遇到CMSIS_device_header文件找不到问题解决方法.pdf

编译带有RTX的工程时遇到CMSIS_device_header文件找不到问题解决方法

正点原子stm32H750北极星移植最新的RT-Thread

RT-Thread移植

AURORA1997的博客 2595

ADC电路项目1——10bit SAR ADC 设计,smic18工艺,有工艺库,有效位数ENOB为9.8

包括详细仿真文档,原理介绍,完整电路图,仿真参数已设好,可直接使用,在自己的电脑上就可以运行仿真。本设计采用 smic18mmrf CMOS 工艺,使用栅压自举电路的采样开关,Vcm-based 开关。电容开关控制电路,10 位 DFF,最后用 10 位理想 DAC 模块将数字码转换为 10 进制量进。时序上级板采样的 DAC 电容阵列,两级动态比较器,比较器异步时钟,SAR 动态逻辑,DAC。10bit SAR ADC 设计,smic18工艺,有工艺库,有效位数ENOB为9.8。

qq_48407979的博客 814

STM32 MDK片外FLASH下载算法制作 —— 基于QSPI(W25Q32)

最近做个项目用到STM32H750这款芯片,其片内flash只有128KB大小(虽网上说实际上和H743一样有2MB,但保险起见还是没有采用方法),由于项目使用了RTOS、LWIP、TLS等,生成程序比较大、所以加了片W25Q32(4MB大小)作为片外FLASH使用,在需求有串口升级程序的功能、加上启动时需要先初始化QSPI然后设置内存映射到片外FLASH、则采用了Bootloader(片内) + App(片外)的方式,那问题就来了,Bootloader在片内,可以直接STLink直...

wicevi的博客 1万+

蓝桥杯单片机省一经验分享1:基础篇.含详细代码与应试技巧

含详细代码、驱动修改与应试技巧

qq_53529450的博客 1万+

十大排序算法详解(一)冒泡排序、选择排序、插入排序、快速排序、希尔排序

冒泡排序、选择排序、插入排序、快速排序、希尔排序

HK的博客 18万+

1. stm32h7 移植RTX5(AC6) 基于CUBEMX

基于CUBEMX H750 移植 RTX5 使用AC6编译器 参考文档:【安富莱】RTX5内核教程,采用CMSIS-RTOS V2封装层,已经更新发布至第6章 (2020-09-21) 硬件: STM32H750VB开发板 软件配置: mdk 5.32 arm cmsis 5.8 stm32cubemx 6.3.0 一.创建CUBEMX工程。 1.时基使用TIM6 2.启用高速外部晶振 设置Debug为SW 并配置好时钟 3.关闭NVIC的代码生成,这三个中断函数在 RTX5 里有定义。 4.

qq_25626001的博客 1484

postman响应体:“msg“: “请求缺失签名Sign“、 “msg“: “请求缺失时间戳“

请求标头有Sign、Timestamp,但是直接将网址复制到postman时,Headers没有自动生成这两个参数,所以运行时会报错。

m0_46862648的博客 1706

STM32H750VBTx CubeMX多路UART与FreeRTOS项目构建:从配置到调试的避坑实践

本文详细介绍了基于STM32H750VBTx芯片和STM32CubeMX工具构建多路UART通信与FreeRTOS实时系统项目的完整流程。从芯片选型、外设配置、FreeRTOS集成到常见编译错误解决方案,提供了实用的避坑技巧和性能优化建议,帮助开发者高效完成工业控制项目的开发与调试。

655

Elasticsearch 8.17.1 JAVA工具类

整理了Elasticsearch8.17最新版的API工具类

weixin_39555954的博客 1125

6、哈代空间、算子函数及相关概念解析

本文深入探讨了数学中哈代空间与算子函数的核心概念,包括强函数的因式分解、半单零点的定义与性质、Blaschke-Potapov乘积的存在性、Nagy-Foias模型算子的结构与谱分析、可数集合的相关性质(如Carlesonian集合、稀有集合等)、简单分式族的可分性与基性质,以及指数型整函数的增长特性。文章还分析了这些数学对象之间的内在联系,并通过图表与表格形式直观呈现了集合性质与函数空间结构的关系。这些理论不仅在数学分析和泛函分析中具有重要意义,也在信号处理、量子力学等应用领域具有广泛价值。

yhn4567890的博客 170

告别串口升级!手把手教你为STM32H750的W25Q32制作MDK下载算法(QSPI篇)

本文详细介绍了如何为STM32H750的W25Q32 QSPI Flash制作MDK下载算法,告别低效的串口升级方式。通过实战教程,开发者可以掌握QSPI Flash编程原理,构建专属下载算法,实现一键下载调试,大幅提升开发效率。

weixin_30907935的博客 371

论文复现《基于最大李雅普诺夫指数的电力系统暂态电压稳定评估方案》

电力系统暂态电压稳定评估方案 摘要 本研究提出了一种基于最大李雅普诺夫指数的电力系统暂态电压稳定评估方法。通过分析相空间中相邻轨迹的收敛或发散特性,该方法能够提前判别系统稳定性。论文首先阐述了暂态电压稳定机理,详细介绍了最大李雅普诺夫指数的计算方法。针对IEEE-39节点系统,建立了仿真模型并获取不同故障场景下的数据。研究开发了完整的评估程序,包括数据预处理、相空间重构、指数计算等模块,并通过与时域仿真结果的对比验证了方法的准确性。实验结果表明,该方法能够快速有效地评估电力系统的暂态电压稳定性,为系统安全运

max500600的博客 187

STM32H7的终极调试组件Event Recorder

关注、星标公众号,直达精彩内容来源:安富莱电子论坛:www.armbbs.cn最近因为项目选型需要,开始用了stm32H750vbt6这款MCU,我一直提倡工欲善其事,必先利其器,尤其是在...

李肖遥的专栏 2405

最近腾讯手机管家a.gray.Bulimia.a病毒提示决解方案

仅供参考(个人问题已解决 未申诉) 用户反馈app提示病毒图如下 然后下载生产包去https://www.virustotal.com/gui/这个网站去检测 果真提示病毒 重新加版本 打了个包 未加固 检测没问有问题 同一个包用360加固之后再检测有问题 ,但是没有a.gray.Bulimia.a报病毒 然后再用应用宝加固检测也没问题,个人以前都是用360加固的,很尴尬啊 最重要的一点的是,更新一个版本号,其余的啥都没改,更新替换手机的原来版本app,腾讯手机.

村头那抠脚大叔的专栏 3万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

CMSIS-5源码级解析:嵌入式工程师的硬件抽象与工程治理地图

CMSIS(Cortex Microcontroller Software Interface Standard)是ARM为Cortex-M系列微控制器定义的标准化硬件抽象层,其核心价值在于统一内核寄存器访问、屏蔽编译器差异、解耦外设驱动与RTOS,并支撑DSP/NN等关键加速能力。它并非普通头文件集合,而是通过结构体映射、__IOM volatile语义、__STATIC_INLINE汇编封装等机制,实现类型安全、内存屏障可控与跨工具链一致性。在电机控制、BMS、嵌入式AI等实时性与可靠性敏感场景中,CM

weixin_33970449的博客 270

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

CMSIS-5实战指南:嵌入式工程师的跨平台开发导航图

CMSIS-5已超越传统头文件标准,成为嵌入式系统事实上的底层基础设施层,统一了ARM Cortex-M系列芯片在寄存器访问、DSP加速、AI推理部署和RTOS抽象等关键环节的技术契约。其核心价值在于通过模块化分层(Core/DSP/NN/Driver/RTOS)解决跨编译器(GCC/ARMCC/IAR)、跨芯片厂商(ST/NXP/国产RISC-V)、跨实时内核(FreeRTOS/Zephyr/RTX)的工程兼容难题。CMSIS-Core提供编译器无关的硬件抽象,CMSIS-DSP激活FPU与MVE指令性能

weixin_34072458的博客 550

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

下一篇: STM32H750VB读写FM24CL16铁电存储器
devicenet
博客等级 码龄17年 23粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值