查看: 8057|回复: 16

[分享] 【经验分享】FreeRTOS学习笔记(一)——初窥门径

[复制链接]

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2016-3-2 09:43:35 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZP 于 2016-3-2 09:44 编辑

FreeRTOS学习笔记
一.           入门概要Ø 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
2016-03-02_9-39-41.jpg
Ø FreeRTOS源码目录结构
       FreeRTOS下载包中包含每个处理器移植和演示例程的源码。将所有移植包放入一个下载文件中大大简化了分类处理,源码目录结构还算简单的,并且FreeRTOS实时内核仅仅只有3个文件(tasks.c、queue.c、list.c)。
      下载包目录包含两个子目录:FreeRTOS和FreeRTOS-Plus,如下所示:
·        FreeRTOS-Plus:包含FreeRTOS+组件和演示例程;
·        FreeRTOS:包含FreeRTOS实时内核源文件和演示例程;

       FreeRTOS-Plus目录树包含多个自述文件(Readme),接下来重点介绍FreeRTOS内核的核心源文件和演示例程,它们被分成两个主要的子目录,如下所示:
2016-03-01_17-03-07.jpg
       RTOS代码的核心包含在三个文件中:tasks.c、queue.c、list.c。这三个文件位于FreeRTOS/Source目录。在该目录下还包含三个可选的文件:timers.c、event_groups.c、croutine.c,分别实现软件定时、事件组和协程功能。
2016-03-01_17-06-50.jpg
      FreeRTOS/Source目录结构如下所示,首先基于编译器分类,跟着罗列出支持的处理器和 MCU架构,还有堆栈设计也在这FreeRTOS/Source/Portable/MemMang目录下。
2016-03-01_17-10-14.jpg
      FreeRTOS/Demo目录结构如下所示,包含各类预配置好的工程,可用于创建个人自定义工程。
2016-03-01_17-24-06.jpg
FreeRTOS学习笔记(一)——初窥门径.pdf (488.47 KB, 下载次数: 191)
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16805
    最后登录
    1970-1-1
    发表于 2016-3-2 09:58:29 | 显示全部楼层
    多谢分享,跟着FAE学FREERTOS
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13211
    最后登录
    2019-1-27
    发表于 2016-3-2 10:06:32 | 显示全部楼层
    必须点赞支持!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2016-3-2 10:07:57 | 显示全部楼层
    继续 ,我还等着看二,三。。。。。 null.png null1.png null2.png null3.png null4.png null5.png null6.png null7.png null8.png null9.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
     楼主| 发表于 2016-3-2 10:15:02 | 显示全部楼层
    后面酝酿ing
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-10-20 09:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    80

    主题

    1038

    帖子

    5

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2223
    最后登录
    2023-11-20
    发表于 2016-3-2 10:15:31 | 显示全部楼层
    学习学习!!1
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-12 00:23
  • 签到天数: 745 天

    连续签到: 1 天

    [LV.9]以坛为家II

    27

    主题

    1万

    帖子

    26

    金牌会员

    Rank: 6Rank: 6

    积分
    6868
    最后登录
    2020-7-15
    发表于 2016-3-2 11:28:13 | 显示全部楼层
    收藏下载等后续。赞!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-4-30 08:32
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    79

    主题

    239

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1095
    最后登录
    2025-6-7
    发表于 2016-3-2 11:36:43 | 显示全部楼层
    不支持MQX了,准备改用freeRtos, 正缺资料,谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    45

    帖子

    0

    注册会员

    Rank: 2

    积分
    166
    最后登录
    1970-1-1
    发表于 2016-3-2 11:45:14 | 显示全部楼层
    学习
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    45

    帖子

    0

    注册会员

    Rank: 2

    积分
    166
    最后登录
    1970-1-1
    发表于 2016-3-2 11:46:15 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-21 11:44 , Processed in 0.094542 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表