【FreeRTOS学习计划】第二节 新建 FreeRTOS 工程

在初步了解完FreeRTOS介绍之后,可以新建一个FreeRTOS的工程了。这个学习计划先是从FreeRTOS Nano 为蓝本了解完FreeRTOS的源码实现之后,再来重新使用它。

软件:keilv5(MDK)
Device:Cortex-M3

新建本地工程文件夹

在本地电脑新建一个文件夹用于存放工程,然后再在该文件夹下面新建各个文件夹和文件,有关这些文件夹的包含关系和作用,如下表。

工程文件夹根目录下的文件夹的作用

文件夹名称文件夹作用
Doc用于存放对整个工程的说明文件,如readme.txt。通常情况下,我们都要对整个工程实现的功能,如何编译,如何使用等做一个简要的说明
Project用于存放新建的工程文件
freertosDemo存放板级支持包,暂时为空。
License存放FreeRTOS组件,暂时为空
Source存放FreeRTOS内核源码,暂时为空
Source/include存放头文件,暂时为空
Source/portable/RVDS/ARM_CM3存放与处理器相关的接口文件,也叫移植文件,暂时为空
User存放main.c和其他的用户编写的程序,main.c第一次使用需要用户自行新建。

使用KEIL新建工程

1.New Project

打开KEIL5软件,新建一个工程,工程文件放在目录Project下面,名称为TEST_FreeRTOS。(名称可以随便起,但是必须是英文)

2.Select Device For Target

当命名好工程名称,点击确定之后会弹出Select Device for Target的选项框,这里选择ARMCM3。
在这里插入图片描述

3.Manage Run-Time Environment

选择好处理器,点击OK按钮后会弹出Manage Run-Time Environment选项框。这里在CMSIS栏选中CORE,Device栏选中Startup。
在这里插入图片描述
点击OK,关闭在这里插入图片描述

在KEIL工程里面新建文件组

在工程里面添加user、FreeRTOS/Ports、FreeRTOS/Source、doc,用于文件管理。
在这里插入图片描述

在KEIL工程里面添加文件

在工程里面添加好组之后,需要把本地工程里面新建好的文件添加到工程里面。把readme.txt文件添加到doc组,main.c添加到user组,FreeRTOS相关的文件还没有编写暂时为空。
在这里插入图片描述

编写main函数

/*
************************************************************************
 *                             main 函数
************************************************************************
*/
int main(void)
{
	for(;;)
	{
			/*啥事不干*/
	}

}

调试配置

设置软件仿真

最后,再配置下调试相关的配置即可。为了方便,我们的代码都用软件仿真,不需要开发板,也不需要仿真器,只需要一个KEIL软件就可以。
在这里插入图片描述

修改时钟大小

在时钟相关文件 system_ARMCM3.c的开头,有一段
代码定义了系统时钟的大小为25M。在软件仿真的时候,确保时间的准确性,代码里面的系统时钟跟软件仿真必须一致,所以Options for Target->Target的时钟应该由默认的 12M 改成 25M。

/*----------------------------------------------------------------------------
  Define clocks
 *----------------------------------------------------------------------------*/
#define __HSI             ( 8000000UL)
#define __XTAL            ( 5000000UL)    /* Oscillator frequency             */

#define __SYSTEM_CLOCK    (5*__XTAL)


/*----------------------------------------------------------------------------
  System Core Clock Variable
 *----------------------------------------------------------------------------*/
uint32_t SystemCoreClock = __SYSTEM_CLOCK;/* System Core Clock Frequency      */

在这里插入图片描述

添加头文件路径

在 C/C++ 选项卡里面指定工程头文件的路径,不然编译会出错。

在这里插入图片描述
在这里插入图片描述
OK,一个完整的基于 Cortex-M3内核的 FreeRTOS 软件仿真的工程就建立完成了。


参考资料:参考资料:《FreeRTOS 内核实现与应用开发实战—基于RT1052》

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值