STM32系列MICROROS环境配置(更新 使用cmake管理)
-
@2475887309 感谢大佬,那想问一下这个toolchain.cmake的具体路径是在哪呀,要自己添加这个文件的吗?
我在运行ros2 run micro_ros_setup create_firmware_ws.sh generate_lib generic
之后在ros工作空间里面没有找到这个文件 -
@DedSecer 工作空间里生成firmware下面不会有toolchain.cmake文件,需要自己创建,这个内容和目录我都有在上面流程的第一部分里讲述,你看一下
-
@DedSecer 我上一次回复的有两个toolchain.cmake文件,一个是ros工作空间里需要配置的文件,另一个是使用stm32cubemx生成的工作空间也有个toolchain.cmake文件。现在需要做的是找到将ros工作空间里的toolchain.cmake里的内核配置和浮点运算配置要与stm32cubemx配置生成的toolchain.cmake里面的配置要保持一致,这两个配置要以stm32cubemx生成的配置为准
-
@2475887309 大佬,我这边还想问一下,我按照你上一篇文章修改了syscalls.c文件,后面编译的时候报错说
_sbrk
这个函数重复定义了。Core/Src/syscalls.c
和Core/Src/sysmem.c
中的定义冲突了
想问一下应该保留哪个呀?另外想问加上这个syscalls.c文件的用意是什么?这个syscalls.c原本是要自己写的还是microros官方有模版的?
-
此回复已被删除! -
@DedSecer 删掉其中一个定义即可,其实syscalls.c就看工程编译的时候是否报错,报错就把syscalls.c文件内容加上即可,这个是st官方模板的,现新版本的cubeide里面是会自动生成该文件的。
-
@2475887309 感谢大佬,现在成功烧录进去了,上位机的程序也可以读到stm32发来的ros话题了。
还有个问题想问一下就是为什么要先在上位机上打开agent再接上开发版。如果想要在任何时候打开agent都能读到话题应该怎么做? -
@DedSecer 这个就可能是agent这边或者固件那边的逻辑问题了,最近我也在解决这个问题,我参考了arduino 版本的microros 中有个demo是关于agent重连的,不过没实现我理想的功能
(我也没试过Arduino版本的重连demo是什么样的情况,因为每次重连,microros的api并没有正常返回我想要的数据),链接我这边给你,你也可以参考一下
https://github.com/micro-ROS/micro_ros_arduino/tree/kilted/examples/micro-ros_reconnection_example
-
@DedSecer 现在根据那个demo修改的代码我这边会出现的情况是,只要是上位机那边退出程序再打开程序,microros给的api ping的返回值结果还是未连接,不知道是不是我这边代码逻辑还是有问题啥的…你如果感兴趣也可以看一下,讨论一下
-
@2475887309 好,我这边研究一下