【零基础学习FreeRTOS嵌入式系统】之一:FreeRTOS环境搭建
【零基础学习FreeRTOS嵌入式系统】之一:FreeRTOS环境搭建
一:FreeRTOS系统下载
在官网上https://www.freertos.org/,找到下载入口。
或直接进入下载地址https://sourceforge.net/projects/freertos/files/latest/download?source=files。现在的最新版为10.0.0
在开始移植FreeRTOS前,先介绍下FreeRTOS的源码,源代码目录结构如下所示:

FreeRTOS的源码比较少,其核心部分为tasks.c与list.c,其余的几个文件功能都是可选的。include文件夹里面的文件是操作系统相关的头文件,portable文件夹有些奇葩,里面有:

里面的文件几乎都是与平台相关的的,如果你要删掉这里的文件时就必须小心了,并不是所有的文件都能删除的。注意MemMang这个文件夹,里面存放的是FreeRTOS自带的内存管理方案的源代码:

二:MDK下移植FreeRTOS
MDK工程的新建工作。请参照 正点原子 的教程资料,或直接参考https://jingyan.baidu.com/article/454316ab7ad711f7a7c03a1a.html 此链接所示文章。
我自己工程模板:


(1)添加FreeRTOS源文件
在模板下新建文件夹FreeRTOS文件夹用来存放FreeRTOS的系统文件,再在FreeRTOS的文件夹下新建include文件夹,用来存放h头文件,分开存放利于管理。

(2)拷贝系统文件到指定文件夹(FreeRTOS文件夹)中:
从FreeRTOS的源文件中找到croutine.c timers.c list.c queue.c tasks.c event_group.c 这6个源文件,位置为FreeRTOSv10.0.0->FreeRTOS->source,拷贝到FreeRTOS文件夹下

从FreeRTOS的源代码中找到port.c文件,位置Source->portable->RVDS->ARM_CM3->port.c 拷贝至FreeRTOS文件夹

从FreeRTOS的源文件中找到heap_4.c文件,位置source->portable->MemMang->heap_4.c,拷贝至FreeRTOS文件夹。

完成移动的FreeRTOS文件目录 ,就这几个文件。

(3)拷贝.h文件到指定文件夹(../FreeRTOS/include文件夹)中:
拷贝FreeRTOS源代码下的include文件夹里的全部.h文件至新建立的include文件夹里,位置:source->include
从FreeRTOS的源文件中找到portmacro.h文件拷贝至新建立的include文件夹里,文件位置:source->portable->RVDS->ARM_CM3->portmacro.h
由于我使用的是keil-mdk作为开发工具,使用的是STM32F103VET6为目标芯片,所以需要从FreeRTOS的源文件中找到匹配开发工具与目标芯片的config.h的配置文件。文件在Demo文件夹中,把这个配置文件拷贝FreeRTOS文件夹内。配置文件位置在:
->Demo->CORTEX_STM32F103_Keil->FreeRTOSConfig.h。
至此FreeRTOS操作系统所需要的所有文件已经全部移植完成。
(4)在工程中添加各系统文件
在工程中新建FreeRTOS文件夹,添加工程模板中FreeRTOS的所有文件。完成后的工作空间如下;

至此,点击编译按钮,看是否可以通过编译,生成目标hex文件。
【零基础学习FreeRTOS嵌入式系统】之一:FreeRTOS环境搭建的更多相关文章
- 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记
Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...
- 『与善仁』Appium基础 — 1、Android系统的测试环境搭建
目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- 【零基础学习iOS开发】【转载】
原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...
- 零基础学习Linux(二)网页乱码问题
上次的博文零基础学习Linux(一)环境搭建中我们已经将Linux环境搭建完毕了,接下来我们就可以进行相关的操作了,在进行操作之前,我们先来看一下大家可能遇到的中文网页乱码问题. 1.问题演示 a)输 ...
- 李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇
从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...
- 零基础学习hadoop到上手工作线路指导
零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...
- 【零基础学习iOS开发】【01-前言】01-开篇
本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过I ...
随机推荐
- iOS关于代码风格问题
cocoapods管理第三方库,详见cocoapods安装及使用 OC代码风格需要规范,所有第三方依赖需要用cocoapods管理.代码风格需要: 1. pod 'CodeFormatter', :g ...
- Laravel5.5 引入并使用第三方类库操作
理论上,Laravel5系列都支持,各位可以一试.我这里使用5.5版本. 我这里引入了一个将汉字转化为拼音的类库测试,一起来看看吧! 首先,在laravel的app目录下自定义一个文件夹,我用的名字是 ...
- 【JavaScript】动态原型模式创建对象 ||为何不能用字面量创建原型对象?
var proto = ""; function Person(name, age, job) { this.name = name; this.age = age; this.j ...
- Github使用笔记
========================Github使用===================概念解释:远程仓库Remote:就是指保存在github网站里的代码;本地仓库Repository ...
- gradle 打包 jar (一波三折)
第一次尝试,打包成功,运行失败 build.gradle 打包 jar { baseName 'testJar' from { //添加依懒到打包文件 //configurations.compile ...
- Mac下使用Wine安装文件内容搜索工具Search and Replace
下载: (链接: https://pan.baidu.com/s/1mij7WX6 密码: xsu8) 安装: 1.安装Wine 参考:http://www.cnblogs.com/EasonJim/ ...
- "Visual Studio Code is unable to watch for file changes in this large workspace"
https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-chang ...
- WPF中C#代码触发鼠标点击事件
1.如下代码; <Button x:Name="btnTest" Click="btnTest_Click"> <Button.Trigger ...
- Android OpenGL教程-第六课【转】
第六课 纹理映射: 在这一课里,我将教会你如何把纹理映射到立方体的六个面. 激动的时刻来了,加载图片了. 复习一下android加载图片的知识.放一个png到drawable里面. (图片文件名:ne ...
- Linux笔记-vim 配置
本文是转载的,我用的ubuntu12.04在vim设置方面就是参考了本文,拿来分享给大家! ubuntu10.10中的设置方法: $cd /etc/vim $sudo cp vimrc vimrc.b ...