1.1 新建本地文件夹
文件夹名称 | 文件夹 | 文件夹作用 |
---|---|---|
Doc | - | 用于存放对整个工程的说明文件,如 readme.txt。通常情况下,我们都要对 整个工程实现的功能,如何编译,如 何使用等做一个简要的说明。 |
Project | - | 用于存放新建的工程文件。 |
freertos | Demo | 存放板级支持包,暂时为空。 |
License | 存放 FreeRTOS 组件,暂时未空。 | |
Source/include | 存放头文件,暂时为空。 | |
Source/portable/RVDS/ARM_CM3 | 存放与处理器相关的接口文件,也叫 移植文件,暂时为空。 |
|
Source/portable/RVDS/ARM_CM4 | ||
Source/portable/RVDS/ARM_CM7 | ||
Source | 存 放 FreeRTOS 内核源码, 暂时为 空。 |
|
User | 存放 main.c 和其它的用户编写的程 序, main.c 第一次使用需要用户自行 新建 |
建立完成:
- startup_ARMCM3.s(startup_ARMCM4.s 或 startup_ARMCM7.s)是汇编编写的启动文件
- system_ARMCM3.c(startup_ARMCM4.c 或 startup_ARMCM7.c)是 C 语言编写的跟时钟相关的文件。
系统在开始执行的时候先执行启动文件里面的复位程序,复位程序里面会调用 C 库函数main, main 的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。 main 最后会调用rtentry,再由__rtentry 调用 main 函数,从而由汇编跳入到 C 的世界,这里面的 main 函数就需要我们手动编写,如果没有编写 main 函数,就会出现 main 函数没有定义的错误,
1.2 编写main函数
创建main,啥事也不干int main(void)
{
for(;;)
{
/* 啥事不干 */
}
}
1.3 修改时钟的大小
时钟相关文件 system_ARMCM3.c的开头,有一段代码定义了系统时钟的大小为 25M
在软件仿真的时候,确保时间的准确性,代码里面的系统时钟跟软件仿真的时钟必须一致,所以 Optionsfor Target->Target 的时钟应该由默认的 12M 改成 25M
#define XTAL ( 5000000UL) /* Oscillator frequency */
#define SYSTEM_CLOCK (5U * XTAL)
其它:其它的目录INC文件 自己添加就可。