二. 新建FreeRTOS工程(保姆级步骤)
目录:
- 新建本地工程文件夹
- 使用KEIL新建工程
- 调试配置
一、 新建本地工程文件夹
在电脑本地新建一个文件夹,命名为“新建FreeRTOS工程之软件仿真”(可根据自己喜好命名),然后在此文件夹里放入以下文件夹和文件:
|
根文件夹 |
文件夹 |
文件夹 |
文件夹作用 |
|
新建FreeRTOS工程之软件仿真 |
Doc |
|
存放工程说明文档,如readme.txt。通常情况下我们都要对整个文档实现的功能,如何编译,如何使用等做一个简要说明 |
|
Project |
|
用于存放新建的工程文件 |
|
|
freertos |
Demo |
存放板级支持包,暂时为空 |
|
|
|
License |
存放FreeRTOS组件,暂时为空 |
|
|
|
Source |
存放FreeRTOS内核源码,暂时为空 |
|
|
|
Source/include |
存放头文件,暂时为空 |
|
|
|
Source/portable/RVDS/ARM_CM4 |
存放与处理器相关的接口文件,也叫移植文件,暂时为空 |
|
|
User |
|
存放main.c和用户编写的其它程序,main第一次使用时需要用户自行新建 |
二、使用KEIL新建工程
- New Project
- 1 打开KEIL5软件,新建一个工程,保存放在目录Project下面,名称命名为Fire_FreeRTOS(这里名称必须是英文,切记)
-
Select Device For Target
当命名好工程名称后,点击确定之后会弹出Select Device For Target的选项框,让我们选择处理器,这里我们选择ARMCM4,见下图:
-
Manage Run-Time Environment
选择好处理器,点击OK按钮后会弹出Manage Run-Time Environment选项框,这里我们在CMSIS栏选中CORE和DEVICE栏选中Startup这两个文件即可
点击OK,关闭Manage Run-Time Environment选项框后,刚刚我们选择的CORE和DEVICE这两个文件就会添加到我们的工程组里面,如图:
这里我们了解下软件底层的原理:其实这两个文件是存放在KEIL的安装目录下,当我们配置Manage Run-Time Environment选项框后,软件就将选好的文件从KEIL的安装目录COPY到我们的工程目录:...\Project\RTE\Device\ARMCM4下,其中startup_ARMCM4.s是汇编编写的启动文件,system_ARMCM4.c是C语言编写的跟时钟相关的文件。
-
在KEIL工程里新建文件组
在工程里添加user、FreeRTOS/Ports、FreeRTOS/Source和Doc这几个文件组,用于管理文件。如图:
-
在KEIL工程里添加文件
在工程里添加好组之后,我们把本地工程里面新建好的文件添加到工程里面。把readme.txt添加到Doc组,main.c添加到user组,其它的组当前暂时不添加。如图:
-
编写main函数
此时我们编译一定会出错:
因为程序里没有找到main函数(我们的main函数里什么也没写)。系统在刚开始的时候先执行启动文件里的复位程序,复位程序会调用C库函数_main,_main的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。_main最后会调用_rtentry,再由_rtentry调用mian函数,从而由汇编跳到C的世界,这里面的mian函数需要我们手动编写,如果没有编写,就会出现main函数没有定义的错误。这里我们是将main函数初始为空,编写如下语句:
三、调试配置
-
设置软件仿真
为了方便我们全部代码使用软件仿真,即不需要开发板也不需要仿真器,只需要一个KEIL软件即可,设置方法如图:
-
修改时钟大小
在时钟的相关文件system_ARMCM4.c中有一段代码定义了系统时钟是25M,见下图:
在软件仿真时,要保持和系统时钟一致,所以设置Options for Target->Target的时钟应该由默认的12M改成25M,设置如下图:
-
添加头文件的路径
在C/C++选项卡里面指定工程头文件的路径,不然编译会出错,头文件路径的具体制定方法如下:
至此一个完整的基于Cortex-M4内核的FreeRTOS软件仿真的工程就建立完毕。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)