初次见面,RT-Thread!

久仰RT-Thread的大名,最近终于开始正式接触了。一开始准备从原子的开发板入手所以在原子的论坛上找了例程,但是想见识一下其中的finsh,而原子的例程都没有,残念ですね。所以想着自己看RT-Thread的手册编译源码,但遇到了一些问题。

参考官网的文档,里面有比较详细的教程。由于yellowko是在官网单独下载RTT源码(版本号是3.0.3,全部搞定后发现GitHub有3.0.4的release版才又下了新版本)和一个独立的MCU的bsp包,导致在生成工程时出现了比较大的问题,严格按照官方提供的文档进行操作,一直没办法通过。(也没仔细看错误原因。。。)在查看RTT源码目录后发现,里面有个bsp文件夹,附带了大量的芯片支持包。在把目录切换到里面尝试编译后发现仍然提示错误,但是错误原因是找不到Kconfig文件,对比yellowko从GitHub下载到的支持包,发现单独下的包里面的根目录和drivers文件夹下都多了这样一个文件,复制进来后果然生成成功,打开keil后也能编译通过。但是yellowko当然不可能每次都在这里生成工程啊,所以尝试把这个能成功的包移出去编译。

menuconfig的界面

在移动到其他文件夹输入menuconfig后,得到的提示修改要修改Kconfig文件中的RTT_ROOT的默认地址,改好后再次输入menuconfig,这个功能的确是可以用了,但这是进行RTT配置的,想要进行下一步scons –target=mdk5 –s还是不行,也就是说没办法生成工程文件。通过生成失败提示的代码打开了SConstruct文件,发现问题出在里面的RTT_ROOT变量上,这个文件有这样的语句

if os.getenv('RTT_ROOT'):
    RTT_ROOT = os.getenv('RTT_ROOT')
else:
    RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')

这两句是查询系统是否定义了RTT_ROOT这个环境变量的,如果没定义会把这个变量定义为父目录的父目录,这个文件夹放在RTT源码里的bsp文件夹里,就正好对应了源码的根目录,所以在Windows的环境变量里添加RTT_ROOT并填好RTT源码的根目录地址即可。

yellowko在Github上下载的是stm32f10x的bsp包,默认是开启虚拟文件系统和CAN的,暂时还用不到这些个东西,所以就在menuconfig里关闭了这个功能,文件系统不关的话会报错,因为一般都不会插sdcard,如下图。

最后这里如果仅使用Keil的软件仿真已经没有任何问题了,但是想用st-link烧到开发板里却不行,这是为什么呢?

这个错误提示说明找不到这一段地址,而这段地址是flash的地址,在flash配置错误时就会报这个错,到下图所示的地方点击一下就可以顺利烧写程序了。

另外一个问题就是这个包内是有例程的,是点灯的程序,只要在led.c里把开发板对应的led的IO口改好就可以了。

总结

使用env生成RTT的Keil工程文件需要的东西:

  • RTT源码
  • RTT_ROOT环境变量
  • 芯片bsp包(带有Kconfig文件)
  • env工具(自带python2.7和scons)

集齐以上四点即可召唤神龙。

 


知识共享许可协议
本作品由yellowko采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

关于 “初次见面,RT-Thread!” 的 1 个意见

  1. 我是不是好久没来了。。。
    我觉得访问正常吧正常吧。。。
    我最近校园网很是垃圾。。。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据