背景

  由于之前接触过一些嵌入式RTOS,如Keil-RTX,uCOS-II,也曾经关注过FreeRTOS,但一直没有机会采用FreeRTOS开发。目前FreeRTOS做为主流RTOS,风声正盛。作为嵌入式开发从业人员,貌似没有使用过FreeRTOS,竞争力指数会直线降低。最近,刚巧项目中使用了STM32f103芯片。由于RTOS的可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。由于对FreeRTOS好奇的倾向性,所以,本次决定采用FreeRTOS开发。

FreeRTOS 简介

  关于FreeRTOS简介,在此不再多说,https://www.freertos.org/网站上有丰富的说明

FreeRTOS 手册熟悉

  161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf

  通过该手册可以了解

1)工程创建方法,

2)任务管理:主要描述任务优先级调度,抢占式或非抢占式调度等调度模型

3)堆内存管理:主要分析5种堆内存管理模型,建议选择heap_4

4)队列管理

   5)软时间管理

6)中断管理,主要是推迟中断处理方法

7)资源管理,主要是临界区,资源互斥访问

8)事件组

9) 任务通知,直接任务通信,无需中间对象,比消息队列,事件组和信号量更快,缺点是任务创建时需要分配8字节内存

FreeRTOS 移植

  方法1 :\FreeRTOSv10.0.1\FreeRTOS\Demo\ 中包含了大量的Demo,可供选择。

  方法2 :如果感兴趣,可以先构建符合芯片的工程,然后再导入FreeRTOS,这样更容易理解,方法大致如下

  第一步:添加下图所示文件

  

  第二步:添加 FreeRTOSConfig.h【建议参考方法1中对象工程的FreeRTOSConfig.h】文件,并添加

  #define vPortSVCHandler SVC_Handler
        #define xPortPendSVHandler PendSV_Handler

  #define xPortSysTickHandler SysTick_Handler

小结

  通过一周的了解熟悉,基本掌握FreeRTOS的各种API使用。至于方法方面主要还是看手册, 161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf通俗易懂的描述了各种机制的使用。从功能的角度看,与其他RTOS大致相同。RTOS内部实现细节应该各有不同。以后抽时间分析一下,再继续更新。

FreeRTOS的学习路线的更多相关文章

  1. 020 - FreeRTOS学习路线总结

    零.为什么写? 在H7-tools预售群里,有位朋友提出如何学习FreeRTOS这类的问题,便由此总结下自己的学习路线.最近又打算接触RTT,和FreeRTOS做个对比. 文章分两步来讲,学习路线和学 ...

  2. Android学习路线总结,绝对干货

    title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...

  3. 从啥也不会到可以胜任最基本的JavaWeb工作,推荐给新人的学习路线(二)

    在上一节中,主要阐述了JavaScript方面的学习路线.先列举一下我朋友的经历,他去过培训机构,说是4个月后月薪过万,虽然他现在还未达到这个指标. 培训机构一般的套路是这样:先教JavaSE,什么都 ...

  4. 《C#微信开发系列(Top)-微信开发完整学习路线》

    年前就答应要将微信开发的学习路线整理给到大家,但是因为年后回来这段时间学校还有公司那边有很多事情需要兼顾,所以没能及时更新文章.今天特地花时间整理了下,话不多说,上图,希望对大家的学习有所帮助哈. 如 ...

  5. 一位资深程序员大牛给予Java初学者的学习路线建议

    java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...

  6. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  7. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  8. Java Web学习路线

    2016-08-22的早上,本是一个很平静的早上,坐在去往公司的公交车上想到了很多之前上学时的点点滴滴,回想起来还真的是耐人寻味啊,当初青春的懵懂,当初的冲动,当初的做事不考虑后果! 也正是这耐人寻味 ...

  9. 适合PHP学习者的学习路线 10个PHP优化技巧

    适合PHP学习者的学习路线: (1) 熟悉HTML/CSS/JS..网页基本元素,完成阶段可自行制作简单的网页,对元素属性相对熟悉 (2) 理解动态语言的概念和运做机制,熟悉基本的PHP语法 (3) ...

随机推荐

  1. Spark操作

    ### scala源码 /* SimpleApp.scala */ import org.apache.spark.SparkContext import org.apache.spark.Spark ...

  2. linux中文件的时间属性atime/mtime/ctime

    文件的时间属性的概念 上图第7-9是时间,默认是ctime(文件修改时间),有三种时间属性: modify time        mtime       (文件内容被修改的时间) change ti ...

  3. arch搭建SVN服务器

    一.安装 Install the package Install subversion from the official repositories. Create a repository Crea ...

  4. 利用rand7()构造rand10()

    题意 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10 参考代码 int rand7() { srand((int)time(NULL)) ...

  5. swift第一课快速体验playground

    最近听说苹果要大力推行swift语言,所以我必须要赶快好好学一学,今天做第一个就遇到问题. 在Xcode7.2欢迎界面,选中创建第一个,我们一般都是默认创建第二个. 创建完后,出现问题了,提示如下: ...

  6. 映射部署tomcat

    近期遇到问题总结[映射部署]2017年10月03日 10:16:54 守望dfdfdf 阅读数:108更多个人分类: Java知识编辑版权声明:本文为博主原创文章,转载请注明文章链接. https:/ ...

  7. JVM虚拟机 - 内存

    在JVM虚拟机中,内存部分大致可以分为以下几类: Heap:堆 NonHeap:非堆 CodeCache:缓存编辑后的机器码的内存区域 CompressedClassSpace:类压缩空间 MetaS ...

  8. 如何配置阿里Maven镜像

    1.下载maven的zip解压,官方下载地址为:http://maven.apache.org/download.cgi 选择需要下载maven的版本就好了 2.到下载的maven路径下,conf/s ...

  9. 给 Magento 2 添加缓存层的分析与尝试

    虽然黑色星期五有惊无险的过去了, 但是 Magento 2 社区版无法读写分离这个限制, 始终是悬在整个网站上的一把利剑. 我之前尝试过给 Magento 2 写一个 MySQL 读写分离的插件, 在 ...

  10. 响应式及Bootstrap

    一丶CSS3的@media 查询 使用 @media 查询,你可以针对不同的屏幕大小定义不同的样式. @media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@med ...