使用Keil内置工具一键为工程安装FreeRTOS
最近正在学习FreeRTOS, 觉得每次都要照着流程手动给工程安装, 很麻烦. 一天在无聊乱翻Keil时, 发现Keil内部居然自带FreeRTOS包.
废话不多说, 马上开始操作.
软硬件详情
平台: Keil MDK 5.29
系统: Win10 21H1
设备: 德州仪器TM4C123GH6PM单片机(TM4C123GXL评估板)
操作流程
一、为Keil安装FreeRTOS支持包
打开Keil, 点击工具栏那个像三个饼干装在碗里一样的图标
在Packs一栏里, 找到这个FreeRTOS包, 点击Install, 它会自动开始安装.
Keil内可安装CMSIS-FreeRTOS或Native FreeRTOS, 本文两种方式都会介绍, 按工程需求选择安装类型.
二、为已有工程安装Native FreeRTOS
你能在
Arm/Packs/ARM/CMSIS-FreeRTOS/10.4.6/CMSIS/Documentation/General/html/cre_freertos_proj.html#cmsis_freertos_config
路径下找到官方的安装教程, 只不过是英语的
为了方便大家, 我用中文简单的讲一遍.
任意打开一个简单的空白工程, 我们以Blinky闪灯项目为例(如果硬件型号在Keil PackInstaller里面找得到, 并且资源够用, 一般都能成功安装)
在确保你的工程编译没问题后, 点开这个像一块饼干一样的图标
像我这样勾选(勾多了或是勾少了下面都会有提示)
点击OK, 你就会发现FreeRTOS和芯片Startup的有关源码自动的插入了进去.
接下来兴冲冲的编译, 发现报了几个错.
首先报了一个这个:
#error configUSE_TIMERS must be set to 1 to make the xTimerPendFunctionCall() function available.
可能是原生BUG? 在FreeRTOSConfig.h里面把configUSE_TIMERS改成1就不报错了.
继续编译, 又有一个错
.\output\model.sct(7): error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 1 error messages.
".\output\model.axf" - 1 Error(s), 0 Warning(s).
网上查了查, 这类错误一般是startup文件有重复导致的.
把startup文件删得只剩一个, 编译, 不报错了.
三、注意事项
- 原工程文件夹里面千万不要有和FreeRTOS有关源代码重名的文件, 如: task.h, list.h等, 这样会导致文件冲突, 报莫名其妙的错.
- FreeRTOSConfig.h已经按照你用的硬件改好了, 像中断优先级那些都不用改
- 加在里面的RTOS源代码并没有添加进工程文件夹, 而是呆在了Keil的安装目录里面. 这样一来可能可移植性不会太好, 而且在Git代码时无法把那堆源码Git上去, 在大型项目合作时用之前要三思
四、为工程安装CMSIS-FreeRTOS
该类型和Native FreeRTOS安装流程基本一样, 有以下几点不同:
- RTOS Config选项不一样(注意红线处)
- 这个方式生成的FreeRTOSConfig.h可以用内置Configuration Wizard工具来编辑(两种方式生成的FreeRTOSConfig.h文件是不一样的)
注意
对于TM4C系列单片机, 若滴答定时器需要精准计时一秒, 则需要将系统时钟配置为80Mhz
SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ); //设置系统时钟为80MHz
并把FreeRTOSConfig.h中的configCPU_CLOCK_HZ参数设置为80000000
#define configCPU_CLOCK_HZ (80000000)
下一篇文章将着重介绍用CMSIS-FreeRTOS实现Blinky(亮灯)功能.
使用Keil内置工具一键为工程安装FreeRTOS相关推荐
- Java虚拟机学习总结(3)——JDK内置工具(jps、jstack、jmap、jstat)使用详解
一.JDK内置工具 - javap 1. 介绍 java 反编译工具,主要用于根据Java字节码文件反汇编为Java源代码文件. 2.命令 javap <options> <clas ...
- 利用Windows内置工具winsat测试硬盘速度(SSD机械盘对比)
利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比) 以下是红色内容是在命令行运行: C:\Users\Administrator>winsat disk Windo ...
- [MODIS数据处理#2]常用的Arcmap内置工具(一)
上一篇文章中,我们使用MRT工具完成了对MODIS数据的预处理,并对栅格进行了预处理. 接下来的两期是对Arcmap中常用内置工具的介绍,使用的ArcGIS版本为10.2: • 投影栅格 • 裁剪 • ...
- JVM-2.jdk自带内置工具
文章目录 1. 概要 2. JPS 3. jstat---性能分析 4. jmap--堆内存分析 4.1 打印java堆详情 4.2 打印堆中对象的统计信息 4.3 dump出堆内存信息 4.4 触发 ...
- (六)Java关于内置工具类
Java 内置工具类(String.StringBuffer.LinkedList.ArrayList.HashMap等工具) Java提供了异常丰富的工具类数量巨阳之多,对于 Java学习者而言 ...
- 如何使用Deno的内置工具
首发于我的博客:https://blog.zhangbing.site/ Deno和Node.js之间一个令人惊讶的区别是运行时内置的工具数量.除了Read-Eval-Print Loop(REPL) ...
- acer软件保护卡清除工具clear_使用Windows 10内置工具释放硬盘空间的最佳方法
如果您的磁盘空间不足,可以使用 Windows 10 中内置的工具来清理垃圾文件.应用程序和游戏等,以优化硬盘空间.使用这些清理工具不仅能够释放空间,而且还有助于提高系统性能. 下面小编就为大家汇总介 ...
- TS高级类型内置工具类型
Partial<T> 将泛型 T 中的所有属性转化为可选属性 /*** Make all properties in T optional*/ type Partial<T> ...
- 【Appium】元素探测工具UIautomatorViewer 和Appium destop内置工具
Appium destop内置元素探测工具 platformName-设备平台:填Android或IOS deviceName----设备名:按adb devices查出的设备名填写即可,Androi ...
最新文章
- Firefox 66正式向广告宣战!预设禁止自动播放影片并加入加入 Windows Hello
- Java8初体验(二)Stream语法详解(转)
- Python元组与字典详解
- Java集合源码分析(二)ArrayList
- 虚拟机安装多了,怎么删除?
- SQL SERVER作业的Schedules浅析
- 不错的html学习网址。
- 没有已启用的仓库。 执行 “yum repolist all“ 查看您拥有的仓库。
- 争议激烈!新晋斯隆奖得主发布最新研究,网友:结果成疑,文章结论和实验结果完全相反...
- “百度云手机”旗舰版发布,堪比旗舰真机?只需77元/月!
- DB2 9 根本(730 磨练)认证指南,第 3 部门: 谋面 DB2 数据(4)
- 算法:Sliding Window Maximum(滑动窗口最大值)
- mysql序列号生成软件_mysql 序列号生成器
- 元胞自动机模型01——认识元细胞机模型
- T3.2是什么级别?
- 程序员讨论《黑客帝国》(一)真实与虚拟
- python手绘效果图_用Python做个海量小姐姐素描图
- 哈工大软件学院编译原理实验3——语义分析
- 讲真,你绝对是第一次看到如此全面的贴片电阻知识
- 人脸检测--传统方法