完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
一. 入门概要Ø Whatis the “Real-time systems”?
在网上搜罗了很多关于实时操作系统的定义,往往不是文字拗口,就是表达太过复杂,相反我觉得下面这句话非常鲜活的点出了实时操作系统的本质。 “Real-timesystems are designed to do something within a certain amount of time; theyguarantee that stuff happens when it's supposed to” 使用嵌入式操作系统与前后台模式应用程序相比(应用程序是一个无限的循环(例如:while(1)),循环中调用相应的函数完成相应的操作,这种部分可以看成后台行为(backgroud)。中断服务程序处理异步事件,这部分可以看成前台行为(foregroud)),在信息处理及时性方面,更可预期,严谨,可靠,而至于嵌入式操作系统的其他特点,可以通过百度或谷歌一下了解,在这就不一一列出了。 Ø FreeRTOS FreeRTOS 是一个轻量级嵌入式操作系统,已成功的移植到30种架构的处理器和MCU中,支持多大20多种编译器。最小化的 FreeRTOS 核心仅包括 3 个 .c 文件(tasks.c、queue.c、list.c)和少数头文件,总共不到 9000 行程式码,还包括了注解和空行。一个典型的编译后binary(二进位码)小于 10 KB。 FreeRTOS 代码可以分为三个主要区块:任务、通信和硬体层面。 · 任务 (Tasks):FreeRTOS 的核心程式码约有一半是用来处理多数操作系统首要关注的问题:任务(Tasks)。任务(Tasks)是拥有优先权的用户所定义的 C 函数。task.c 和 task.h 负责所有关于建立、调度和维护任务的繁重工作。 · 通信(Communication): 任务很重要,不过任务间可以互相通信则更为重要!它带出了 FreeRTOS 的第二项议题:通信 (Communication)。FreeRTOS 核心程式码大约有 40% 是用来处理通信的。queue.c 和 queue.h 负责处理 FreeRTOS 的通信,任务和中断(interrupt)使用队列(队列,queue)互相发送数据,并且使用 semaphore 和 mutex 来派发 critical section 的使用信号。 · 硬件层面:有近 9000行的程式码组成基本的 FreeRTOS,这部份是与硬件无关的(hardware-independent),同样的程序代码在不同硬体平台上的 FreeRTOS 都可以运行。而大约有6% 的 FreeRTOS 核心代码,在与硬件无关的FreeRTOS 核心代码和与硬件相关的程序代码间扮演着桥接(shim)的角色 Ø 求人不如求己 通过以下网址,快速上手FreeRTOS 会So easy!!J Ø FreeRTOS源码目录结构 FreeRTOS下载包中包含每个处理器移植和演示例程的源码。将所有移植包放入一个下载文件中大大简化了分类处理,源码目录结构还算简单的,并且FreeRTOS实时内核仅仅只有3个文件(tasks.c、queue.c、list.c)。 下载包目录包含两个子目录:FreeRTOS和FreeRTOS-Plus,如下所示: · FreeRTOS-Plus:包含FreeRTOS+组件和演示例程; · FreeRTOS:包含FreeRTOS实时内核源文件和演示例程; FreeRTOS-Plus目录树包含多个自述文件(Readme),接下来重点介绍FreeRTOS内核的核心源文件和演示例程,它们被分成两个主要的子目录,如下所示: RTOS代码的核心包含在三个文件中:tasks.c、queue.c、list.c。这三个文件位于FreeRTOS/Source目录。在该目录下还包含三个可选的文件:timers.c、event_groups.c、croutine.c,分别实现软件定时、事件组和协程功能。 FreeRTOS/Source目录结构如下所示,首先基于编译器分类,跟着罗列出支持的处理器和 MCU架构,还有堆栈设计也在这FreeRTOS/Source/Portable/MemMang目录下。 FreeRTOS/Demo目录结构如下所示,包含各类预配置好的工程,可用于创建个人自定义工程。
|
|
|
相关推荐
|
|
|
其支持低功耗还是很有用的。
|
|
|
|
|
|
|
|
|
非常好的资料!
|
|
|
|
|
|
|
|
|
谢谢楼主分享!
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2135个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
37379 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
6778 浏览 1 评论
7796 浏览 1 评论
7646 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
5074 浏览 0 评论
1558浏览 2评论
关于NINA-W132 Wi-Fi模块SPI通信遇到的疑问求解
1211浏览 2评论
如何在MPC PowerPC MCU上首次刷写后禁用BDM?
750浏览 1评论
将HFREFR和LFREFR寄存器值设置为错误的值来将故障注入CMU,但CMU_ISR值始终为零,为什么?
737浏览 1评论
将SPSDK for FRDM-MCX-W71 SDK与VS一起安装时出现hidapi构建错误怎么解决?
681浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 00:57 , Processed in 0.977605 second(s), Total 72, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖