前言
个人已经习惯使用Docker容器搭建编译环境,OpenHarmony也一样是用Scons和Python环境作为构建系统的基础。所以我就直接用现有的OpenHarmony容器环境来搭建RT-Thread的环境。
1、下载源码
直接下载源码到自己可以操作的目录里,我喜欢放到/mnt目录下,当然权限是给到普通用户了。
git clone https://github.com/RT-Thread/rt-thread.git
2、配置工具链
2.1 安装Scons和ccache
sudo apt install scons ccache -y
2.2 安装和配置arm-none-eabi-gcc
从arm官网下载标准工具链(arm-none-eabi-gcc),并解压缩。由于RTT可以直接在脚本里指定工具链的绝对路径,我们也可以偷懒不配置环境变量。
直接修改板级目录洗的编译配置脚本,设置gcc的绝对路径
添加ccache配置,虽然默认情况下,编译文件不多,是不需要使用ccache的,但是如果用的第三方库比较多,例如lvgl,mqtt等等。需要编译的文件越多,缓冲带来的加速性能就更好。
添加环境变量配置(如果想使用scons —menuconfig来选择软件包或者配置)。需要在~/.bashrc里添加一下内容。
export RTT_ROOT=/mnt/rt-thread
export PYTHONPATH=/mnt/rt-thread/tools
配置好之后,就可以使用scons -j8命令进行编译了,编译结束后就可以准备烧录了。
3、尝试使用pyocd烧录
安装了pyocd和nxp芯片支持后,就可以尝试使用命令烧录了,结果尝试了几次,不管是正常状态或者ISP状态,都没办法烧录。错误提示如下:
4、使用Jlink烧录
既然pyocd走不通,那我们直接换成Jlink来烧录,使用NXP的软件将daplink烧录成Jlink ob,然后解压缩最新版本的Jlink驱动。
接下来直接在.bashrc里添加一个alias,实现短命令烧录
alias jflash='sudo /mnt/MyNAS/walker/.bin/JLink/JLinkExe -autoconnect 1 -device MCXN947 -if swd -speed 10000 -commandfile /mnt/MyNAS/walker/work/rt-thread/bsp/nxp/mcx/mcxn/frdm-mcxn947/flash.jlink'
编写flash.jlink烧录文件
reset
loadfile /mnt/MyNAS/walker/work/rt-thread/bsp/nxp/mcx/mcxn/frdm-mcxn947/rtthread.elfexit
烧录完毕后,就可以使用minicom查看串口信息,这时候就可以看到RTT的msh shell了
|