【交叉编译踩坑指北(四)】VScode构建数莓派Pico的FreeRTOS系统

写在前面

  我们在第二章和第三章中分别讨论了在windows x86平台下和linux x86平台下使用CMake实现交叉编译,成功点亮数莓派.由此可见CMake强大的跨平台功能.
  因此,后面的章节仅以一种平台为例,如果想要使用另一种平台或者其他平台(如MacOS),相信你参考前面的章节也可以快速迁移学习.
  FreeRTOS是一种适合资源受限嵌入式系统的实时操作系统,具有可迁移性.目前广泛使用在STM32中(可以搜索到很多基于keil的RTOS移植到STM32上的方法).同时乐鑫公司的ESP32系列更加方便,其直接支持FreeRTOS,可以借助ArduinoIDE直接写FreeRTOS代码并烧录运行.其教程如下.

https://www.bilibili.com/video/BV1q54y1Z7ca/?spm_id_from=333.337.search-card.all.click

  本系列秉持着 先实现后探究 的路径,关于CMake以及本章中的文件代码具体分析,将在之后的文章中进行探究.
  话不多说,进入正题.


本章所使用的工具和文件

工具/文件版本备注
  系统平台Ubuntu 18.04x86_64bit,也可以尝试其他系统,更改相应工具
  VScode任意版本安装C/C++、Cmake和CmakeTools扩展(见第一章)
  cmake3.25.0见第三章,cmake --version查看版本
  make(Unix)GNU MAKE 4.1输入make -v来查看,一般是系统自带
  (交叉编译器)arm-none-eabi-gcc -vgcc version 6.3.1见第三章
   pico-sdkgithub最新见第三章,保持之前的存放路径不变
   rp2040-freertos-projectgithub最新下载方式见(1)

(1):使用git下载rp2040-freertos-project

git clone --recurse-submodules
https://github.com/LearnEmbeddedSystems/rp2040-freertos-project

此外,该文件的相关解析见下

https://learnembeddedsystems.co.uk/freertos-on-rp2040-boards-pi-pico-etc-using-vscode


构建生成文件

   在第三章的基础上,保持VScode中CMakeTools的配置不变动.直接选择CMakeTools的编译器为arm-none-eabi,然后进行Configure和build就可以在生成的build文件夹下看到生成的文件,找到ProjectFiles,找到blink.uf2,这就是最终所需要的文件.
   数莓派Pico以硬盘模式插入电脑,在数莓派硬盘内放入刚刚生成的blink.uf2即可.
   注意到,与第三章不同的是,这里的main文件中可以调用FreeRTOS库,并且使用了vTaskDelay等RTOS函数.而第三章仅仅借助pico-sdk进行裸板开发,并没有使用FreeRTOS.如果想要简单实现不同功能,只要修改这个main.c文件,然后再用CMakeTools进行Configure&build就可以了.
在这里插入图片描述
   至此,FreeRTOS移植数莓派功!
   既然(Since)我们已经实现了操作系统构建,我们之后的内容将集中在操作系统本身提供了哪些库函数以及基于FreeRTOS的程序编写上来.


参考(参考中使用的是NMake并且是Windows平台下,与本方法有区别)

https://www.youtube.com/watch?v=jCZxStjzGA8&list=PLEB5F4gTNK68IlRIJtcJ_2cW4dSdmreTw&index=14

特别鸣谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值