IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 1240_把FreeRTOS的官方Demo修改匹配一个新的编译器或者硬件 -> 正文阅读

[嵌入式]1240_把FreeRTOS的官方Demo修改匹配一个新的编译器或者硬件

全部学习汇总: GitHub - GreyZhang/g_FreeRTOS: learning notes about FreeRTOS.

其实,这个话题基本上是关于FreeRTOS的移植了。简单的移植可能只是换换硬件板子,涉及到的OS本身修改几乎没有。也有可能是换个同架构但是配置略微不同的MCU,这样可能只需要少许修改即可。也可能是换一个新的编译器,这个可能复杂度就稍微大一点。最难的是从工具到MCU的架构都是全新的,这样的移植可能并不是很简单。这一部分的内容所涉及到的其实不仅仅是让FreeRTOS在不同的环境下能够运行起来,还得能够针对不同的示范功能展示出与以前相同的效果。

如果只是换个硬件的板子,MCU以及编译器全都不修改。那么相关的工作可能更加类似于基于FreeRTOS的功能本身的开发。在开发的时候需要注意:1,修改之前先保证工程编译是没有问题的; 2,修改prvSetupHardware接口来保证LED资源的准确性。

一般来说,LED工程算是嵌入式领域的hello world了,实现起来可能是最容易的。

尝试进行FreeRTOS的功能调试之前,可以先按照上面的例子来进行测试。这个测试的目的是先看看现在基础工程是否有问题,同时确认LED的驱动本身是没问题的。有了这样的保障之后,在进行FreeRTOS的调试就会更加可信。

看起来,大家对于LED本身的设计是有很好的认同感的。前面我刚刚说了嵌入式的“hello world”,这里则将其定义为FreeRTOS应用的“hello world”。不同于前面我们测试LED驱动用的裸程序,这里的LED的例子使用的其实是OS的Task来管理的。

一旦点灯的测试没有问题了,接下来就可以尝试进行全功能的例程运行了。进行全功能的例程移植的时候,需要把前面的LED的演示程序去掉,因为两部分功能可能会有干涉。从另一个角度讲,去掉之后至少是可以节省一部分资源的。在全功能的演示功能中,包含了一个串口的功能,不同的硬件可能会有不同,因此需要确认正确性。此外,LCD这样的复杂的功能可能并不是简单改一点配置就可以实现的,这样的功能可能不定能够快速跑起来。

修改演示例程到其他的配置或者MCU,可以采用的2个方法:1, 选择正确的编译器工程,之后重新选择MCU; 2,利用接下来要用的工具创建工程,然后参考Demo需要使用FreeRTOS的什么文件,进而移植。

如果参考的工程跟我们接下来要用的工具以及MCU有相似之处,所需的FreeRTOS的文件的寻找可以参考上面的目录格式来定位。但是针对某些编译器,有些会有汇编代码的需求。除此之外,不同编译器对于ISR的处理可能也有不同的处理方式,这些都需要在移植修改的时候注意。

对于嵌入式系统来说,启动代码以及链接文件也是比较特殊而基础的东西。在进行相关的移植修改的时候,相应的信息也必须确认没问题。在已经存在的工程里面,有些宏定义可以方便进行不同功能的选择,在处理的时候可以充分利用。最后,需要注意FreeRTOS本身的一个驱动必需项——Tick信号。这个一般是来自于周期性中断ISR,可以在port.c中找到函数原型prvSetupTimerInterrupt。

关于存储的管理,有专门的文档来进行阐述。常见的问题有两个,这里做了简单的说明。第一个问题是关于RAM的不足,解决的方式是可以尝试修改FreeRTOS需要的HEAP大小,减少Task的数目等等。另一个ROM本身的不足,遇到这样的问题可能得尝试删除不需要的功能或者文件,具体可以参考Demo的目录树说明。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:08:40  更:2022-05-21 19:08:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:24:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码