在sipeed maix go上用上rt-thread以及vs code

众所周知,rt-thread是一款非常优秀的嵌入式操作系统,本篇文章将从一个纯小白的角度搭建一个用于开发maix go的环境。

1.工具链准备

首先需要下载riscv交叉编译的工具链:gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.2-20190521-0004-win64.zip,链接如下:

https://github.com/ilg-archived/riscv-none-gcc/releases

需要注意的是,一定要使用上方链接中的工具链,而不要使用kendryte官方给的toolchain,即下图这个

这个工具链会和rt-thread中的libc等文件冲突,因此不要用这个。工具链下载好后应该是一个压缩包文件,将压缩包解压到任意路径,注意不要有中文路径。

2.rt-thread源码下载

就是去rtt官网上下源码喽,这是rtt的下载页面:https://www.rt-thread.org/page/download.html

只要随便找到一个自己喜欢的方式下载源码就可以了(百度云、github)

3.SCONS编译配置

下载好源码之后首先要配置scons编译时用的工具链路径。在下载好的rtt源码下找到k210的bsp,路径如下:\rt-thread\bsp\k210

打开文件夹中的rtconfig.py

将1处的路径替换为前面自己将工具链解压出来的路径,此处应注意路径中斜杠应该是‘/’而Windows资源管理器中复制出来的路径中斜杠都是‘\’,需要进行修改

同时将2处的代码用“#”注释掉,由于env中有一个默认指向内部的arm-gcc工具链的路径,这和我们的工具链相冲突,因此不要他。

“RTT_EXEC_PATH是环境变量,一般会以环境变量做为最高优先级,如果没有,再去看rtconfig.py中配置的EXEC_PATH情况。

因为在rtconfig.py中,变量基本上都自己定名字,重名的可能性比较小,所以直接使用EXEC_PATH;而如果扩散到全局机器的环境变量,可能存在一丝的重名问题,所以在前面加了RTT_前缀。”

-----bernard

4.使用ENV工具打开VS Code

确保你的电脑上已经装好了ENV工具,关于ENV的安装以及使用教程,可以看这里:env官方文档

配置好env之后,在k210的bsp文件夹下点击鼠标右键,选择ConEmu Here,打开env

在随即打开的env界面中输入“pkgs --update”来下载一下k210的sdk

下载完成后输入指令"code .",这里注意“code”和“.”之间还有一个空格,不要漏掉了,如下图

按下回车键以后应该就进入VS Code界面了

点击这里的TERMINAL。现在vs code中的终端就变成了env工具,可以直接在这个终端中进行env的一些操作。这里我们要先输入指令,scons --target=vsc -s,如下图

这条指令能将在env中配置产生的头文件的搜索路径添加到vs code中,每次使用完env中的menuconfig功能后都要记得使用这个指令更新一下配置,否则可能会出现找不到头文件的错误。

5.编译和下载

最后就是使用scons指令对工程进行编译了,在vs code的终端中输入“scons”并按回车,等待一会儿要是没有error就成功完成编译了,工程文件夹中就会多出一个bin文件,最后用kendryte的kflash(固件烧写工具)把这个bin文件烧到k210上就可以了。

我们熟悉的rt thread就出现啦!

后记

虽然现在我们的maix go跑上了rt thread但还有两个问题

  1. 这个rtt官方的bsp并不是基于maix go写的,因此maix go上大多数的硬件都不能正常工作,刚上电的时候喇叭还会有嘶嘶的叫声,因此后面还需要做驱动的移植工作,我完成了一个带有ov2640和lcd驱动的bsp版本,点击这篇文章查看:《在sipeed maix go 专属的BSP上使用rt-thread》。
  2. 这个bsp太老了,通过pkgs --update下载到的sdk已经是很老的版本了,kendryte这一年里对他的sdk进行了更新,并上线了一个叫nncase的神经网络框架,这在老的sdk中是没有的,因此要用到更多的新功能,就还需要对sdk进行升级适配。关于适配方法,请查看文章:《妥协下的联姻——为rt-thread适配最新k210 kendryte-standalone-sdk的nncase

以上两部分内容我后续将会进行更新

发布了13 篇原创文章 · 获赞 7 · 访问量 1049

猜你喜欢

转载自blog.csdn.net/qq_40688292/article/details/103927710