以下为学习freertos的过程知识记录,源自网上学习,谢谢各位网友大神!现总结于此,便于日后温习。
FREERTOS 官网: http://www.freertos.org/
freertos BSP开发包下载:http://sourceforge.net/projects/freertos/files/FreeRTOS/ ,这里可以下载最新版本和历史版本。可是找来好半天,再找到的。
freertos 学习网站:http://xilinx.eetrend.com/article/7845 对freertos 比较全面的讲解和代码剖析。
http://blog.csdn.net/findaway123/article/category/1852921
尤其http://blog.csdn.net/liyuanbhu/article/details/7853717 FreeRTOS 源代码的编程标准与命名约定 中文版说明的很好。
1.FreeRTOS文件:
FreeRTOS的文件结构非常简单,移植或者版本升级替换也非常方便。
以上为开发包的文件夹。
1)与FreeRTOS内核有关的文件数量仅为3个,分别是list.c queue.c tasks.c
该文件位于FreeRTOS\Source
此为source文件夹下文件,最新版本还有event_groups.c文件。
2)与内存分配有关的文件共有4个,分别是heap_1.c,heap_2.c,heap_3.c,heap_4.c。4个文件只需选择其中的1个,STM32选择heap_2.c。当然这为内存分配方式,可以根据程序需求选择适合的内存划分方式。
该文件位于FreeRTOS\Source\portable\MemMang
最新版本升级heap_4.c,和增加heap_5.c,用于支持64位硬件。
3)与移植相关的代码包括port.c,portmacro.h。这些代码不但和编译器有关还和平台(MCU)有关。FreeRTOS先以编译器为大类,然后再以平台(MCU)为小类。在这里选择MDK编译器,平台为ARM_CM4F。
该文件位于FreeRTOS\Source\portable\RVDS\ARM_CM4F
很旧版本之前有汇编文件portasm.s,现在官方已增加到port.c文件中,就不需要我们配置修改。
4)除了上述内容之外,还包括FreeRTOS内核相关的头文件。
该文件FreeRTOS\Source\include
主要是根据需要进行。h文件宏定义的配置。
portmacro.h
portmacro.h 主要包括两部分内容,第一部分定义了一系列内核代码中用到的数据类型。
然后是一些硬件相关的定义。包括数据对其方式,堆栈增长方向,Tick Rate,还有任务切换的宏。
是个很重要的配置文件。
下一节讲freertos的移植过程和日常版本升级过程的操作流程。