news 2026/6/10 8:39:57

二. 新建FreeRTOS工程(保姆级步骤)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二. 新建FreeRTOS工程(保姆级步骤)

目录:

  1. 新建本地工程文件夹
  2. 使用KEIL新建工程
  3. 调试配置

一、 新建本地工程文件夹

在电脑本地新建一个文件夹,命名为“新建FreeRTOS工程之软件仿真”(可根据自己喜好命名),然后在此文件夹里放入以下文件夹和文件:

根文件夹

文件夹

文件夹

文件夹作用

新建FreeRTOS工程之软件仿真

Doc

存放工程说明文档,如readme.txt。通常情况下我们都要对整个文档实现的功能,如何编译,如何使用等做一个简要说明

Project

用于存放新建的工程文件

freertos

Demo

存放板级支持包,暂时为空

License

存放FreeRTOS组件,暂时为空

Source

存放FreeRTOS内核源码,暂时为空

Source/include

存放头文件,暂时为空

Source/portable/RVDS/ARM_CM4

存放与处理器相关的接口文件,也叫移植文件,暂时为空

User

存放main.c和用户编写的其它程序,main第一次使用时需要用户自行新建

二、使用KEIL新建工程

  1. New Project
    1. 1 打开KEIL5软件,新建一个工程,保存放在目录Project下面,名称命名为Fire_FreeRTOS(这里名称必须是英文,切记)
  2. Select Device For Target

    当命名好工程名称后,点击确定之后会弹出Select Device For Target的选项框,让我们选择处理器,这里我们选择ARMCM4,见下图:
  3. 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语言编写的跟时钟相关的文件。
  4. 在KEIL工程里新建文件组

    在工程里添加user、FreeRTOS/Ports、FreeRTOS/Source和Doc这几个文件组,用于管理文件。如图:
  5. 在KEIL工程里添加文件

    在工程里添加好组之后,我们把本地工程里面新建好的文件添加到工程里面。把readme.txt添加到Doc组,main.c添加到user组,其它的组当前暂时不添加。如图:
  6. 编写main函数

    此时我们编译一定会出错:因为程序里没有找到main函数(我们的main函数里什么也没写)。系统在刚开始的时候先执行启动文件里的复位程序,复位程序会调用C库函数_mian,_main的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。_main最后会调用_rtentry,再由_rtentry调用mian函数,从而由汇编跳到C的世界,这里面的mian函数需要我们手动编写,如果没有编写,就会出现main函数没有定义的错误。这里我们是将main函数初始为空,编写如下语句:

三、调试配置

  1. 设置软件仿真

    为了方便我们全部代码使用软件仿真,即不需要开发板也不需要仿真器,只需要一个KEIL软件即可,设置方法如图:
  2. 修改时钟大小

    在时钟的相关文件system_ARMCM4.c中有一段代码定义了系统时钟是25M,见下图:在软件仿真时,要保持和系统时钟一致,所以设置Options for Target->Target的时钟应该由默认的12M改成25M,设置如下图:
  3. 添加头文件的路径

    在C/C++选项卡里面指定工程头文件的路径,不然编译会出错,头文件路径的具体制定方法如下:至此一个完整的基于Cortex-M4内核的FreeRTOS软件仿真的工程就建立完毕。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 8:36:21

RFID资产管理—周转容器管理

点击添加图片描述(最多60个字)编辑 在制造业、仓储物流、生鲜零售、供应链配送等行业中,周转容器是最容易被忽视、却最影响运营效率的核心循环资产。塑料周转箱、铁框、托盘、物流笼车、冷链保温箱…这些高频流转的容器,贯穿入库、…

作者头像 李华
网站建设 2026/6/10 8:35:25

全球水库观测水位数据集

本数据集为全球水库观测水位(GROWL)数据集,系统收录了全球4,197个水库的静态属性信息及其长期水位或蓄水量时间序列。数据涵盖水库标识符、名称、地理坐标、数据来源等基础信息,并以独立文件形式提供每个水库的水位与蓄水量长期观…

作者头像 李华
网站建设 2026/6/10 8:33:53

云鼎×细莫严选 私域团购湖北招商大会圆满落幕携手共建私域新生态,加速全国市场布局

2025年9月7日,由云鼎与细莫严选联合主办的“赋能私域・共赢商道”云鼎细莫严选 私域团购湖北招商大会在武汉成功举行。本次大会旨在深化团购行业电商合作模式,推动区域团购经济创新,助力创业者轻资产创业,共同开拓电商新蓝海。现场…

作者头像 李华
网站建设 2026/6/10 8:33:50

全国省 / 市 / 县三级空气流通系数(1940-2024)

📊 数据核心速览数据编号:1946时间跨度:1940–2024(超长时序面板)空间范围:中国省级、地级市、区县三级全行政区划原始数据源:欧洲中期天气预报中心(ECMWF)ERA-Interim 气…

作者头像 李华
网站建设 2026/6/10 8:29:52

入门 uni-app:跨平台开发的新选择

一、前言 在当下多元化的移动互联网时代,iOS、Android、各类小程序、Web 网页等多终端应用并行发展。传统开发模式下,团队需要针对不同平台单独编写代码,不仅开发周期长、人力成本高,还会出现多端功能不一致、维护难度大等问题。…

作者头像 李华
网站建设 2026/6/10 8:28:10

一站式多平台直播解决方案:obs-multi-rtmp深度解析

一站式多平台直播解决方案:obs-multi-rtmp深度解析 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 你是否曾为在不同直播平台间切换配置而烦恼?是否希望一次推流…

作者头像 李华