增加RTT对Stm32CubeIDE支持的构建脚本(测试中)

发布于 2020-03-05 11:04:25
    本帖最后由 yoyotansa 于 2020-3-5 11:07 编辑


stm32cubeIDE是基于eclipse的IDE,所以只需要对原来系统中eclipse脚本做一些适配性的修改就可以了;
我使用的1.3.0的版本经测试自动屏蔽文件和头文件路径、define自动化设置正常。

注意:使用前必须已经建立了stm32cubeIDE的工程;(scons --dist 将文件直接复制到空的stm32cubeIDE即可)
新项目构建顺序:
先执行menuconfig选择工程需要的系统功能模块
--target==stm32cubeide -s 一次
编译
loop:
增加代码或者增加系统功能模块后
修改对应kconfig
修改对应的SConscript
先执行menuconfig选择工程需要的系统功能模块
--target==stm32cubeide -s 一次
编译

goto loop
如此循环开发。

python脚本:
下载附件[stm32cubeide脚本.zip]
只需将压缩包的python脚本复制到:${proj_dir}/rt-thread/tools目录下即可。

正在使用stm32cubeide的小伙伴可以下载使用,有问题跟帖。
还有一个cubeide编译汇编的问题,需要加一个设置量(-Wa,-mimplicit-it=thumb)如下图:
汇编.PNG


查看更多

关注者
0
被浏览
597
6 个回答
我夏了夏天
我夏了夏天 2020-03-05
可以直接用 RTT STUDIO 啊 ;P
liulee
liulee 2020-03-10
挺好, 已经用上了. rtt studio 用了 MX的部分输出作为board 部分, 用 CubeIDE 来兼容 rtt 是合适的.

可能的 bug: sourceEntities 有多个 entry, 在替换的时候, 默认处理第一个, 这个逻辑不太对. 处理一次, exclude变糟糕一次.
```
sourceEntries = cconfiguration.find('storageModule/configuration/sourceEntries')
entry = sourceEntries.find('entry') // <- 这里只处理第一个.
HandleExcludingOption(entry, sourceEntries, excluding)
```
yoyotansa
yoyotansa 2020-04-11
我夏了夏天 发表于 2020-3-5 14:31
可以直接用 RTT STUDIO 啊


都是一个模子出来的,因为studio还不完善,又要开发H750的项目,只能自己动手了,今天在Ubuntu下边测出一些bug,更新一下。
yoyotansa
yoyotansa 2020-04-11
兼容Ubuntu环境,已知bug文件路径中"\"错误,添加操作系统判断,win使用“\”,linux使用“/”
下载附件[stm32cubeide.py]
yoyotansa
yoyotansa 2020-04-11
    本帖最后由 yoyotansa 于 2020-4-11 17:55 编辑


liulee 发表于 2020-3-10 16:49
挺好, 已经用上了. rtt studio 用了 MX的部分输出作为board 部分, 用 CubeIDE 来兼容 rtt 是合适的.

可能 ...

因为需要配置多个编译版本,比如debug和release,所有版本都需要遍历全部的文件过滤器,不然,换到其他版本,文件过滤器就无效了
yoyotansa
yoyotansa 2020-04-11
解决RTT自身libc与较新编译器冲突,修改gcc.py,
增加
cc_header += '#define HAVE_SIGACTION 1\n'
cc_header += '#define HAVE_SIGEVENT 1\n'
cc_header += '#define HAVE_SIGINFO 1\n'
cc_header += '#define HAVE_SIGVAL 1\n'
下载附件[gcc.py]

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友