一、前言
我在《 【树莓派pico/pico2】在pico-sdk中自定义板子》文中说明了如何在pico-sdk中自定义板子。在rt-thread中,RP2350芯片的软件开发虽然也基于pico-sdk,但其pico-sdk与树莓派官方pico-sdk还是有差异的,差异的根本原因是rt-thread使用scons构建工具,而树莓派使用cmake构建工具。由此,rt-thread中自定义基于RP2350芯片板子的方法与树莓派官方pico-sdk中的自定义方法是有些差别的。
二、与官方pico-sdk自定义板子的相同处
在rt-thread中,RP2350芯片的pico-sdk位于工程文件/packages目录下,名为raspberrypi-pico-rp2350-sdk-latest。
这目录下的src/boards/include/boards放了各种板子的头文件,RP2350芯片的pico-sdk也是跟据这里的板子头文件配置的。我把我树莓派官方pico-sdk下的板子头文件放到了这里。
三、与官方pico-sdk自定义板子的不相同处
3.1 修改板子头文件
由于rt-thread使用scons构建,头文件中的3个pico_board_cmake_set_default没法使用,必须注释掉,如
3.2 给GCC设置板子
scons构建工具根据SConscript文件配置gcc。raspberrypi-pico-rp2350-sdk-latest内的SConscript文件有2个。
raspberrypi-pico-rp2350-sdk-latest目录内的SConscript是用来构建boot_stage2的,raspberrypi-pico-rp2350-sdk-latest/src目录下的SConscript才是编译pico-sdk的。
raspberrypi-pico-rp2350-sdk-latest/src目录下的SConscript文件比较重要,这里有源码和头文件目录设置,还有CPPDEFINES。
CPPDEFINES里有个PICO_BOARD定义是用来设置板子的,我这里要把\"pico2\"改成\"pico_plus_rp2350\",以适配我的板子。
3.3 修改工程链接脚本
rt-thread的链接脚本与pico-sdk的原生链接脚本还有些差别,所以RP2350BSP重做了个链接脚本。但该链接脚本中MEMORY的FLASH字段无法根据板子头文件自动适配,需要自行按照Flash容量调整。
链接脚本是工程目录下的link.ld。原本FLASH字段的LENGTH值是2MB,按我的板子改成了4MB。
至此,rt-thread下自定义板子就结束了。