【freertos】001-linux环境准备
2022-03-27 12:10
971 查看
[toc]
前言
主要是freertos。 为啥突然要写这玩意的笔记? 因为工作需要,所以在空闲时间抽时间写下,这个系列可能随时断更,因为作者在学和在做的主要还是网络协议栈。
特别提示: 有条件的同学们建议使用keil来在线仿真freertos,方便学习,可以直观地看到CPU寄存器组信息、实时栈信息、各个任务详细信息、各个任务占用CPU的时间轴图表等等。 作者因为想在公司空闲时间和在家里空闲时间都能写下这些笔记,所以就不用keil了,因为版权原因。
资源
说明
本系列是在 posix/linux 模拟器上跑freertos; 所以本次freertos实现的接口层是使用posix标准实现。 本节环境搭建对新手不太友好,偏向理论化,但是遇到的问题都比较简单,所以搭建环境不做细致教程。 后面代码分析可以比较细化。
注意:
- 不要与freertos+posix library混淆,因为两者是相反的。
- freertos+posix library 是freertos本地的一个接口库,是为了让posix标准的原因程序在freertos上跑。
- 而 posix/linux 接口是为了让freertos在posix操作系统上跑。
大概思路
编译一个可跑的出现主要需要以下文件:
- 内核:freertos kernel相关文件;
- 接口:portable;
- 用户文件:main.c、freertos_config.h文件;
- 编译脚本:在linux使用GCC。
提示:
- 其实上述资料都可以在freertos官网上,下载源码,在源码中找出。
- 其中接口文件只需要找到对应编译器下的即可。
- makefile可以自己写。
实战
1. 获取源码
注意: 如果去官网下,可能找不到
githubusercontent.com相关的服务器; 那可以在ipaddress.com查找,然后ping一下,能ping通就把这个IP和对应的域名写到本地设备的hosts文件中固定下来。
2. 组建自己的工程
先创建两个文件夹:
- kernel:
-
参考命令:
mkdir kernel
- 存放freertos内核相关文件,包括内核源码、接口文件等。
- user:
-
参考命令:
mkdir user
- 存放用户文件。
创建好文件夹后,拉取相关文件:
- kernel:
-
把内核的头文件全部拉取:FreeRTOS/Source/include
- 把内核中源文件全部拉取(这部分可以按需拉取):FreeRTOS/Source/*.c
- 拉取对应接口文件和内存管理文件到kernel/portable下: GCC的Posix标准接口:FreeRTOS/Source/portable/ThirdParty/GCC/Posix/
- FreeRTOS/Source/portable/MemMang/
- user:
-
创建main.c;(记得写上基本内容、可参考freertos提供的demo中的main.c)
- 拷贝
FreeRTOS/Demo/POSIX_GCC
下的FreeRTOSConfig.h
准备好相关文件后,准备编译脚本。 编译脚本的实现有很多种,按自己习惯实现。 在编译过程中遇到问题,按提示解决即可。
最终工程大致布局如下:
3. 编译&运行
编译成功
运行:
相关文章推荐
- 【环境准备】pyenv插件管理Linux多版本python
- linux下开发环境的准备
- Linux发展环境准备
- 非常好!!!Linux源代码阅读——环境准备【转】
- Linux系统部署个人网站---环境准备篇(二)---开启ftp服务
- 001-centOS6.3-Linux环境搭建
- 【环境准备】linux安装并配置对应python版本的pip,详细方案
- Linux下LAMP环境的安装之安装前准备
- Linux下python开发环境的准备
- Day2--Linux发展--环境准备
- [linux上路] 开发环境准备一 Debian8 jdk 配置
- Linux开发环境搭建 三 (在Ubuntu上Android/Linux编译环境的准备)
- hadoop2.7.3伪分布式搭建之一------>Linux环境的准备
- Linux系统部署个人网站---环境准备篇(二)---安装oary软件,xshell远程连接
- 【环境准备】linux安装并配置多版本python
- ubuntu 安装petalinux环境准备
- Win下用Pycharm远程连接虚拟机Linux的环境准备
- Linux系统环境准备
- hadoop环境搭建准备工作之一:安装JDK(linux)
- Linux系统部署个人网站---环境准备篇(一)---deepin系统的安装及配置