STM32移植FreeRTOS的Tips

2023-11-06

转自:http://bbs.armfly.com/read.php?tid=7140


1. 在FreeRTOS的demo文件夹中拷贝对应的FreeRTOSConfig.h文件后,需要加入一行:

#define configUSE_MUTEXES           1

2. 在FreeRTOSConfig.h文件中定义如下几行,这样子就不用改标准的启动文件了!(不用百度的方法)
#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler

3. stm32fxxx_it.c 中需要删除默认的3个中断空函数,就是上面define的3个空函数。因为FreeRTOS的port.c中定义了它需要的这3个中断函数。

4. 如果使用emwin的话,需要把GUIConf.h中的#define GUI_OS               (1) 
5. 而且GUI_X文件必须换成带OS支持的文件。 如例程中的GUI_X_FreeRTOS。这个文件中主要改了emwin的tick的获取方式,延时方式等。emwin的时钟基准全部来自FreeRTOS的函数。比如这里是:
int GUI_X_GetTime(void)
{
  return ((int) xTaskGetTickCount()); //用的FreeRTOS的函数
}
而以前单emwin的时候,只是返回一个tick的全局变量即可。

总的说来,FreeRTOS是基石,它定义了systick的中断,管理了systick的配置,而且选择相应的port.c和portmarco.h文件后,这些配置只用3个中断向量重定义即可。emwin的时钟只能使用FreeRTOS提供的相关时钟函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32移植FreeRTOS的Tips 的相关文章

  • HAL库STM32常用外设教程(二)—— GPIO输入\输出

    HAL库STM32常用外设教程 二 GPIO输入 输出 文章目录 HAL库STM32常用外设教程 二 GPIO输入 输出 前言 一 GPIO功能概述 二 GPIO的HAl库驱动 三 GPIO使用示例 1 示例功能 四 代码讲解 五 总结
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • 当一个任务写入变量而其他任务读取该变量时,我们是否需要信号量?

    我正在研究 freeRtos 并且我有一个名为 x 的变量 现在 每秒只有一个任务正在写入该变量 而其他任务正在读取该变量值 我需要用互斥锁来保护变量吗 如果变量为 32 位或更小 并且其值是独立的并且不与任何其他变量一起解释 则不需要互斥
  • 如何更改 FreeRTOS 中任务的最大可用堆大小?

    我通过以下方式在任务中创建元素列表 l dllist pvPortMalloc sizeof dllist dlllist 有 32 字节大 我的嵌入式系统有 60kB SRAM 所以我希望系统可以轻松处理我的 200 个元素列表 我发现在
  • HAL库学习

    CMSIS简介 CMSIS Cortex Microcontroller Software Interface Standard 微控制器软件接口标准 由ARM和其合作的芯片厂商 ST NXP 软件工具厂商 KEIL IAR 共同制定的标准
  • STM32 GPIO工作原理详解

    STM32 GPIO介绍 1 STM32引脚说明 GPIO是通用输入 输出端口的简称 是STM32可控制的引脚 GPIO的引脚与外部硬件设备连接 可实现与外部通讯 控制外部硬件或者采集外部硬件数据的功能 以STM32F103ZET6芯片为例
  • [屏驱相关]【SWM166-SPI-Y1.28C1测评】+ 有点惊艳的开箱

    耳闻华芯微特许久了 看到论坛得评测活动赶紧上了末班车 毕竟对有屏幕得板子也是很喜欢得 京东快递小哥客客气气 微笑着把快递给了我 好评 直接拆了包 在此之前没看过视频号 所以这个圆盘盘得模具还是有点惊喜的 正面照如下 开机有灯光秀 还有动画
  • 解决KEIL编译慢问题

    两种方案 使用v6版本的ARM Compiler 如果v6版本编译不过 必须使用v5版本的 则可以勾选掉Browse Information选项 提升很明显 1分多钟能优化到几秒 看代码量 但是这个有个弊端 在KEIL中会影响函数跳转 建议
  • 跟着野火学FreeRTOS:第一段(任务定义,切换以及临界段)

    在裸机系统中 系统的主体就是 C P U CPU CP U 按照预先设定的程序逻辑在 m a i n
  • 跟着野火学FreeRTOS:第一段(任务定义,切换以及临界段)

    在裸机系统中 系统的主体就是 C P U CPU CP U 按照预先设定的程序逻辑在 m a i n
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • for循环延时时间计算

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 之前做led点亮的实验 好像是被delay函数影响了 因为delay参数设置的不对
  • systick定时器

    systick定时器 文章目录 前言 一 前期疑惑 二 解答 1 关于systick是阻塞的吗 2 非阻塞 三 软件编写 总结 前言 这边记录systick相关知识点 一 前期疑惑 在学习systick志气啊 其实对于systick还是一脸
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • 从没有中断引脚并且在测量准备好之前需要一些时间的传感器读取数据的最佳方法

    我正在尝试将压力传感器 MS5803 14BA 与我的板 NUCLEO STM32L073RZ 连接 根据 第 3 页 压力传感器需要几毫秒才能准备好读取测量值 对于我的项目 我对需要大约 10 毫秒来转换原始数据的最高分辨率感兴趣 不幸的
  • 通过JTAG恢复STM32 MCU磨掉的标记

    我有一块可能带有 STM32 MCU 的板 我想为该板制作定制固件 因为库存板有很多问题 不幸的是 电路板制造商很友善地磨掉了所有标记 有没有办法通过 jtag 获取设备 系列 ID 并将其交叉引用到型号 我能找到的一切都是关于获取芯片的唯
  • 有可用的 FreeRTOS 解释语言库吗?

    我在一家公司工作 该公司使用 FreeRTOS 为多个设备创建固件 最近 我们对新功能的要求已经超出了我们固件工程师的工作能力 但我们现在也无力雇用任何新人 即使进行微小的更改 也需要固件人员在非常低的级别上进行修改 我一直在为 FreeR
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re
  • 有关 CMake 错误的问题:没有为目标提供源

    我正在尝试使用 cmake 和 eclipse 将 FreeRtos 添加到我的项目中 但出现错误 我运行的是 debian 10 我的 cmake 版本是 3 13 4 cmake 的文件可以在以下位置找到这个 git 仓库 https

随机推荐

  • 在诉讼中GPL v3.0系列许可证中的“移除进一步限制”条款的有效性受到质疑

    GPL系列许可证包括GPL许可证 LGPL许可证 AGPL许可证等 在GPL v3 0系列许可证中均有一个条款赋予使用者移除违反GPL精神 对用户使用进行进一步限制的附加条款 在GPL和AGPL第7条中 LGPL引用GPL相关条款 All
  • python3使用pymysql远程连接mysql失败

    在本地用pymysql连接远程服务器时 出现了一个错误 1130 Host 58 20 30 102 is not allowed to connect to this MySQL server 说的是主机不允许远程连接MySQL 原因是M
  • 【Flutter应用】Flutter精仿抖音开源(1),android开发基础知识

    fijkplayer 0 8 3 基础的透明动画点击效果 tapped any map安全取值 safemap any 主要文件 lib main dart mock video dart 假数据 other bottomSheet dar
  • 1.9 C++ vector

    include
  • 安卓期末课设-缘分星座匹配app,(附下载链接,源码注释详细,含运行截图和apk文件)

    安卓期末课设 缘分星座匹配app 附下载链接 源码注释详细 含运行截图和apk文件 2023年移动开发上半年期末大作业 星座匹配app 可以根据你的星座匹配最适合你的那个他 她 的星座 当然这种匹配你们别信哈 软件仅供学习意义 开发工具 A
  • 如何创建自己的网址?

    如何创建自己的网址 其实网址不是创建的 我们看到网址是需要注册购买的 正确来说应该创建网站 是要有网址才能访问你的网站 下面简单说说如何创建自己的网站和注册网址 一 注册网址 有些人喜欢在创建网站前注册网址 以免看中的网址被抢走 有些人觉得
  • 执行shell脚本的方法有哪些

    1 bash data scripts37 hello sh 2 cat data scripts37 hello sh bash 3 data scripts37 hello sh 加执行权限chmod x cd data scripts
  • 排序算法-归并排序详细讲解(MergeSort)

    归并排序 归并 指合并 合在一起 归并排序 Merge Sort 是建立在归并操作上的一种排序算法 其主要思想是分而治之 若将两个有序集合并成一个有序表 称为2 路归并 与之对应的还有多路归并 怎么分 对于排序最好的情况来讲 就是只有两个元
  • shell脚本之while、until循环以及循环控制语句

    目录 一 while循环语句 1 1 语法结构 1 格式 2 案列 1 2 while死循环 1 格式 2 案例 二 until循环 1 语法结构 补充 死循环结构 2 案例 三 循环控制语句 3 1 continue 3 2 break
  • win10计算机重新启动,win10电脑一直自动重启是怎么回事?

    我们在日常使用电脑办公的过程当中偶尔会出现一些小故障 今天小编想要给大家分享其中最常见的一个问题就是win10电脑出现一直重启的这个故障问题 电脑重启之后开机 结果又进入了重启 一直无限循环 这是怎么回事 其实遇到这种问题千万别急 今天小编
  • 邀请参与第四季度 Flutter 开发者调查

    外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img Cdl2Tvp0 1671677470593 https devrel andfun cn devrel posts 2022 12 ETzaca png 本次调研
  • 彻底解决VScode C++调试的路径问题(配置PATH以及快捷键优化)

    彻底解决VScode C 调试的路径问题 配置PATH以及快捷键优化 前言 用VScode调试C 的难题可谓是人尽皆知 引得各路神仙大佬来解决 目前的主流方法有改变运行程序的路径 参考这篇文章 还有改变本地的Unicode编码设置的 也非常
  • [36]javascript入门

    入门程序
  • 【系统篇 / 安装】❀ 01. 安装镜像 ISO 文件下载 ❀ Windows Server 2016

    简介 2016年10月13日 微软正式发布Windows Server 2016和System Center 2016 全球可用 用户可以到MSDN VLSC 批量授权服务中心 获取下载 服务器2016走的路线和以前一样 新的Windows
  • 帆软认证报表工程师FCRA试题

    Part 1 判断题 总分 48分 第1题 判断题 智能运维 负载管理中 实时负载通过使用图表直观的展示当前系统的最多最近半小时内存利用率和CPU利用率 满分 2分 正确答案 A 第2题 判断题 远程设计连接时 本地设计器版本和服务器工程的
  • 全国程序员高考卷曝光,你能答对几题?

    普通高等学校招生全国统一考试 程序员卷 1 本试卷分为单选题 简答题 编程题三种类型 选择题每题5分 简答题每题10分 编程题每题20分 2 考试时间为30分钟 3 全部答案请填写在本文评论区 4 考试结束后 请将本试卷分享到CSDN AP
  • java 模拟用户注册

    模拟用户注册 用户输入用户名 密码 确认密码 生日 格式为yyyy MM dd 手机号 长度为11位 并且以13 15 17 18开头的手机号码为正确 之后 判断信息正确后 验证用户是否重复 重复则给出相应提示 不重复则注册成功 此案例使用
  • web安全攻防渗透测试实训笔记

    1 Nmap的基本 Nmap ip 6 ip Nmap A 开启操作系统识别和版本识别功能 T 0 6档 设置扫描的速度 一般设置T4 过快容易被发现 v 显示信息的级别 vv显示更详细的信息 192 168 1 1 24 扫描C段 192
  • Class 03 - R语言的 Vectors(向量) 与 lists(列表)

    Class 03 R语言的 Vector与 列表 list R语言语法 脚本文件的创建 保存 和修改名称 第一个函数 使用帮助功能查看函数详细说明 语法问题 变量与赋值 定义变量名称格式 调用变量 R中的数据结构 Vectors 向量 创建
  • STM32移植FreeRTOS的Tips

    转自 http bbs armfly com read php tid 7140 1 在FreeRTOS的demo文件夹中拷贝对应的FreeRTOSConfig h文件后 需要加入一行 define configUSE MUTEXES 1