鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    STM32系列MICROROS环境配置(更新 使用cmake管理)

    已定时 已固定 已锁定 已移动
    MicroROS
    micro-ros microros
    3
    19
    1.4k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 24758873092
      Mona Darling @DedSecer
      最后由 编辑

      @DedSecer 我这里是生成通用固件的静态库,你的h723是m7内核的,那么在toolchain配置那边修改m4改成m7即可,以及浮点运算配置也许修改,这个配置信息你可以在自己随便配置一个h723的芯片工程的toolchain.cmake里面看到这行信息

      D 1 条回复 最后回复 回复 引用 0
      • D
        DedSecer @2475887309
        最后由 DedSecer 编辑

        @2475887309 感谢大佬,那想问一下这个toolchain.cmake的具体路径是在哪呀,要自己添加这个文件的吗?
        我在运行ros2 run micro_ros_setup create_firmware_ws.sh generate_lib generic之后在ros工作空间里面没有找到这个文件

        24758873092 2 条回复 最后回复 回复 引用 0
        • 24758873092
          Mona Darling @DedSecer
          最后由 编辑

          @DedSecer 工作空间里生成firmware下面不会有toolchain.cmake文件,需要自己创建,这个内容和目录我都有在上面流程的第一部分里讲述,你看一下

          1 条回复 最后回复 回复 引用 0
          • 24758873092
            Mona Darling @DedSecer
            最后由 编辑

            @DedSecer 我上一次回复的有两个toolchain.cmake文件,一个是ros工作空间里需要配置的文件,另一个是使用stm32cubemx生成的工作空间也有个toolchain.cmake文件。现在需要做的是找到将ros工作空间里的toolchain.cmake里的内核配置和浮点运算配置要与stm32cubemx配置生成的toolchain.cmake里面的配置要保持一致,这两个配置要以stm32cubemx生成的配置为准

            1 条回复 最后回复 回复 引用 0
            • D
              DedSecer
              最后由 DedSecer 编辑

              @2475887309 大佬,我这边还想问一下,我按照你上一篇文章修改了syscalls.c文件,后面编译的时候报错说_sbrk这个函数重复定义了。

              Core/Src/syscalls.c和Core/Src/sysmem.c中的定义冲突了
              想问一下应该保留哪个呀?

              另外想问加上这个syscalls.c文件的用意是什么?这个syscalls.c原本是要自己写的还是microros官方有模版的?

              24758873092 2 条回复 最后回复 回复 引用 0
              • 24758873092
                Mona Darling @DedSecer
                最后由 编辑

                此回复已被删除!
                1 条回复 最后回复 回复 引用 0
                • 24758873092
                  Mona Darling @DedSecer
                  最后由 编辑

                  @DedSecer 删掉其中一个定义即可,其实syscalls.c就看工程编译的时候是否报错,报错就把syscalls.c文件内容加上即可,这个是st官方模板的,现新版本的cubeide里面是会自动生成该文件的。

                  1 条回复 最后回复 回复 引用 0
                  • D
                    DedSecer
                    最后由 编辑

                    @2475887309 感谢大佬,现在成功烧录进去了,上位机的程序也可以读到stm32发来的ros话题了。
                    还有个问题想问一下就是为什么要先在上位机上打开agent再接上开发版。如果想要在任何时候打开agent都能读到话题应该怎么做?

                    24758873092 2 条回复 最后回复 回复 引用 0
                    • 24758873092
                      Mona Darling @DedSecer
                      最后由 编辑

                      @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

                      1 条回复 最后回复 回复 引用 0
                      • 24758873092
                        Mona Darling @DedSecer
                        最后由 编辑

                        @DedSecer 现在根据那个demo修改的代码我这边会出现的情况是,只要是上位机那边退出程序再打开程序,microros给的api ping的返回值结果还是未连接,不知道是不是我这边代码逻辑还是有问题啥的…你如果感兴趣也可以看一下,讨论一下😊

                        D 1 条回复 最后回复 回复 引用 0
                        • D
                          DedSecer @2475887309
                          最后由 编辑

                          @2475887309 好,我这边研究一下

                          1 条回复 最后回复 回复 引用 0
                          • 2
                            白衣思博
                            最后由 编辑

                            @2475887309 在 STM32系列MICROROS环境配置(更新 使用cmake管理) 中说:

                                ${PROJECT_SOURCE_DIR}/Third-party/Lib_Microros/Src/custom_memory_manager.c
                                ${PROJECT_SOURCE_DIR}/Third-party/Lib_Microros/Src/microros_allocators.c
                                ${PROJECT_SOURCE_DIR}/Third-party/Lib_Microros/Src/microros_time.c
                                ${PROJECT_SOURCE_DIR}/Third-party/Lib_Microros/Src/microros_transports/dma_transport.c
                            

                            这四个文件没有怎么办😖

                            24758873092 1 条回复 最后回复 回复 引用 0
                            • 24758873092
                              Mona Darling @2039235330
                              最后由 编辑

                              @2039235330 这几个文件在extera source里面

                              2 2 条回复 最后回复 回复 引用 0
                              • 2
                                白衣思博 @2475887309
                                最后由 编辑

                                @2475887309 好的好的,我找找,我可以在windows系统上的stm32开发环境中使用嘛,和jetson中的ros2连接😂

                                24758873092 1 条回复 最后回复 回复 引用 0
                                • 2
                                  白衣思博 @2475887309
                                  最后由 编辑

                                  @2475887309 可是我没有找到extera source这个文件😧 佬,这是为什么

                                  24758873092 1 条回复 最后回复 回复 引用 0
                                  • 24758873092
                                    Mona Darling @2039235330
                                    最后由 编辑

                                    @2039235330 可以编译即可,这个系统不影响,只不过win可能麻烦一点(得有ros2环境,或者方便点就直接在Jetson上面去给stm32编译也行,通用的)

                                    1 条回复 最后回复 回复 引用 0
                                    • 24758873092
                                      Mona Darling @2039235330
                                      最后由 编辑

                                      @2039235330 下面链接里面有https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/tree/kilted/extra_sources

                                      1 条回复 最后回复 回复 引用 0
                                      • 第一个帖子
                                        最后一个帖子
                                      皖ICP备16016415号-7
                                      Powered by NodeBB | 鱼香ROS