Cstyle的札记,Freertos内核详解,第0篇

    Freertos是一个硬实时内核,支持众多的微处理器架构,我们可以从它的官网(www.freertos.ort)下载它的sourcecode,同时也可以看出它支持了几十种的微处理器架构,这些就不罗嗦了。之所以选择研究这个,是应为窥探RTOS内核的内幕一直每一个做底层软件开发人员的心愿,选择过好几种RTOS但他们有的是需要收费,有的不太成熟也不够系统,有的虽然比较成熟但是系统太大不太适合研究。而freertos就不同了,它除了包含RTOS所需要的基本的东西之外最大的特点就是开源+简单并且支持了非常多的MCU,并且提供了众多的demo供我们来参考,它的核心内涵只有3个文件,其他的功能可以通过一些plus来逐渐丰富其内核的功能。
    Freertos目前最新的版本是8.0.1从其官网下载下来之后我们就可以逐渐来分析其内核的实现了。这里首先从目录结构开始。
+-FreeRTOS-Plus    Contains Freertos+ components and demo projects.
+-FreeRTOS         Contains the FreeRTOS real time kernel sourcefiles and demo projects
 
+-Demo Contains the demo application projects.
 
+-Common The demo application files that are used by all the demos. +-Dir x The demo application build files for port x +-Dir y The demo application build files for port y

+-Source Contains the real time kernel source code.

 
+-include The core FreeRTOS kernel header files ¦ +-Portable Processor specific code. ¦ +-Compiler x All the ports supported for compiler x +-Compiler y All the ports supported for compiler y +-MemMang The sample heap implementations
    内核的目录结构如上,我们可看到它结构非常分明把内核的核心代码跟processor硬件相关的部分合理的分开,这样我们就能很容易把Freertos移植到其他的硬件平台上去了,我们是基于atmel公司arm cortex-m3内核的MCU AT91SAM3X/A来仔细研究其内核的架构和实现。它的代码在FreeRTOSv8.0.1\FreeRTOS\Demo\CORTEX_ATSAM3X_Atmel_Studio目录下,我们双击project根目录下的批处理他就能自动把需要的代码拷贝到我们的project根目录下的相关目录下,然后使用SI来建立工程读代码了,或者使用Ateml官方提供的ateml studio工具来打开工程文件来编译工程,但是要注意的是它编译的时候会报一个错误,这个是正常的,只是一个善意的提醒,我们注释掉报错的地方就行了。
    乍一看,似乎内核代码很多,其实真正必须的最小的系统需要的文件很少,必备的文件如下:
1.tasks.cqueue.c and list.c 必须的
2. timers.c  implement software timer  可选
3. andcroutine.c  implement  co-routine functionality 可选
4. heap_x.c  必须,MemMang目录下面的文件,提供了内存管理的功能,建议用户自己实现,同时内核提供了3个参考方案,客户可以使用我们的开发工具里面自带的mollac库或者自己实现。
5.针对我们选择的MCU这里还需要有其他的一些HW相关的东西,比如CMSIS针对某个特定的开发工具的相关配置文件,如makfile,配置文件等。支持几乎我们知道的所有的开发工具:IAR,MDK,GCC等。
 
 
转载请注明出处
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值