上一篇文章中,已经完成了自己项目的部署,和初步的编译测试。从编译结果来看,整个开发环境现在已经完全OK了。所以开始正式的开发过程。正式开发之前呢,先把项目属性做一些简单的修改,毕竟不能一直叫helloworld吧!
关于项目的配置,主要涉及三个文件:CMakeList.txt
、Makefile
、proj.conf
。其中关于项目名称的修改,在CMakeList.txt
文件中。
![image-20230916235356750](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230916235356750.png)
修改之后,重新编译:make
可以看到修改后编译的镜像名字就是我们自己的项目名了!
![image-20230916235540037](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230916235540037.png)
FreeRTOS
由于博流的SDK已经对FreeRTOS做了移植,相关目录在:aithinker_Ai-M6X_SDK/components/os/freertos
. 所以我们不需要再次进行一直,可以直接使用。
在aithinker_Ai-M6X_SDK/components/os/CMakeList.txt
文件中,对整个freertos文件夹做了编译配置:
sdk_add_subdirectory_ifdef(CONFIG_FREERTOS freertos)
也就是说,如果我们的项目需要使用freertos的话,就需要定义这个宏:CONFIG_FREERTOS
定义FreeRTOS宏
这个宏的定义在:proj.conf
文件中,添加一行:
set(CONFIG_FREERTOS 1)
![image-20230917000609680](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917000609680.png)
这个宏添加后,我们编译的时候就会编译到freertos的目录。当然得是我们的main文件中有对freertos的调用。
配置FreeRTOS
也就是添加FreeRTOSConfig.h
文件。这里引用一段FreeRTOS官方的发言:
FreeRTOS 使用 FreeRTOSConfig.h 配置文件进行定制。 每个 FreeRTOS 应用程序必须在其预处理器的包含路径中包含 FreeRTOSConfig.h 头文件 。 FreeRTOSConfig.h 为正在构建的应用程序定制 RTOS 内核 。因此它是特定于应用程序的,而非 RTOS,并且应当 位于应用程序目录,而不是 RTOS 内核源代码目录 。
这个配置文件主要用来配置FreeRTOS的一些内核属性,具体的参数说明,可以访问其官网:https://www.freertos.org/zh-cn-cmn-s/a00110.html
在博流提供的freertos的demo中提供了一份该配置文件,我们可以直接使用。
cp -a examples/freertos/FreeRTOSConfig.h .
这样我们就添加了该头文件,但是根据我们正常的编程习惯,头文件和源码c文件放在一起,似乎并不太美观。所以:
mkdir include
cp FreeRTOSConfig.h include/
并且在CMakeList.txt中添加include文件夹:
set_add_include_directories(./include/)
于是:
![image-20230917002044051](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917002044051.png)
我的工程目录在不断壮大
使用FreeRTOS
经过上面的努力,FreeRTOS就已经成功的部署到我的工程了,那么接下来就做一个简单的使用。还是直接使用博流的demo进行测试。
直接拷贝博流freertos的demo中的main.c覆盖我的工程中的main.c。
![image-20230917002525844](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917002525844.png)
使用make进行编译:
![image-20230917002603732](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917002603732.png)
一发入魂!
烧录测试
![image-20230917002819737](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917002819737.png)
由于开始的时候更改了项目的名称,但是忘记修改proj.conf文件导致的:
![image-20230917002901153](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917002901153.png)
所以将这里的helloworld也改成我的项目名:
![image-20230917002946958](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917002946958.png)
再次烧录:
![image-20230917003029492](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917003029492.png)
烧录成功!
抓Log验证
![image-20230917003155614](https://klelee-images.oss-cn-qingdao.aliyuncs.com/typora/image-20230917003155614.png)
收工!