新建本地工程文件夹
新建工程
开发板的芯片是 STM32F429IGT,内核是cortex4
配置 Manage Run-Time Environment 选项
在 KEIL 工程里面新建文件组
编写 main 函数
一个工程如果没有 main 函数是编译不成功的,会出错。因为系统在开始执行的时候先执行启动文件里面的复位程序,复位程序里面会调用 C 库函数__main, __main 的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。 __main 最后会调用__rtentry,再由__rtentry 调用 main 函数,从而由汇编跳入到 C 的世界,这里面的 main 函数就需要我们手动编写,如果没有编写 main 函数,就会出现 main 函数没有定义的错误。
调试配置
设置软件仿真
最后,我们再配置下调试相关的配置即可。为了方便,我们全部代码都用软件仿真,即不需要开发板也不需要仿真器,只需要一个 KEIL 软件即可,有关软件仿真的配置具体见图。
修改时钟大小
在时钟相关文件 system_ARMCM3.c( system_ARMCM4.c 或 system_ARMCM7.c) 的开头,有一段代码定义了系统时钟的大小为 25M,具体见代码清单 4-2。在软件仿真的时候,确保时间的准确性,代码里面的系统时钟跟软件仿真的时钟必须一致,所以 Optionsfor Target->Target 的时钟应该由默认的 12M 改成 25M。
添加头文件路径
在 C/C++选项卡里面指定工程头文件的路径,不然编译会出错,头文件路径的具体指定方法见图
至此,一个完整的基于 Cortex-M4 内核的 FreeRTOS 软件仿真的工程就建立完毕。
Hankin
2020.08.18