跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YT SDK
  4. B1MC0 uds协议

B1MC0 uds协议

已定时 已固定 已锁定 已移动 YT SDK
29 帖子 2 发布者 1.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • wenqiangW 离线
    wenqiangW 离线
    wenqiang
    写于 最后由 编辑
    #6

    image.png为什么刷新过程中,编号会错乱

    1 条回复 最后回复
    0
    • wenqiangW 离线
      wenqiangW 离线
      wenqiang
      写于 最后由 编辑
      #7

      image.pngAPPflash长度在0x7D98时一切正常,新增部分APP代码编译bin文件长度变长时,就会有上一问题。裁剪到0x7D98也能正常刷。

      1 条回复 最后回复
      0
      • jiankang_wangJ 离线
        jiankang_wangJ 离线
        jiankang_wang YunTu
        写于 最后由 编辑
        #8

        编号错乱是因为 0x36 的 0x9C 编号的报文出错了。返回负相应 0x72,所以继续传 0x9D 就是序号错了。
        这是哪一个系列的芯片?还有一个帖子也是类似的问题,我排查一下。

        1 条回复 最后回复
        0
        • wenqiangW 离线
          wenqiangW 离线
          wenqiang
          写于 最后由 编辑
          #9

          用的芯片是B1MC0

          1 条回复 最后回复
          0
          • jiankang_wangJ 离线
            jiankang_wangJ 离线
            jiankang_wang YunTu
            写于 最后由 编辑
            #10

            好的,是直接使用的Demo下载吗?编译器是什么?对应的优化选项是什么

            1 条回复 最后回复
            0
            • wenqiangW 离线
              wenqiangW 离线
              wenqiang
              写于 最后由 编辑
              #11

              不是DEMO,之前DEMO没问题,用自己的APP也没问题,昨天APP新增了功能hex长度变长到0x7F70发现的问题,分块大小是0xD0。把hex内容裁剪到上一次编译的长度7D98恢复正常,看起来就是超过36 9B就会异常。编译器是VScode,优化等级默认的

              1 条回复 最后回复
              0
              • jiankang_wangJ 离线
                jiankang_wangJ 离线
                jiankang_wang YunTu
                写于 最后由 编辑
                #12

                下载的起始地址是多少?36服务会调用flash driver 写操作,这个操作需要地址8字节对齐。所以可以看看负相应的时候地址是多少。

                1 条回复 最后回复
                0
                • jiankang_wangJ 离线
                  jiankang_wangJ 离线
                  jiankang_wang YunTu
                  写于 最后由 编辑
                  #13

                  参考这个帖子对比一下勒:https://forum.ytmicro.com/topic/1224/使用云途uds_pc_tool对单片机进行升级-在downloadfile最后一包数据时报错

                  1 条回复 最后回复
                  0
                  • wenqiangW 离线
                    wenqiangW 离线
                    wenqiang
                    写于 最后由 编辑
                    #14

                    非常感谢,修改擦除size后解决问题

                    1 条回复 最后回复
                    0
                    • wenqiangW 离线
                      wenqiangW 离线
                      wenqiang
                      写于 最后由 编辑
                      #15

                      其实地址0x8200,长度0x8430,hexview和CANoe boot上位机计算CRC32都是0xF2896B9A,麻烦帮忙看一下程序是不是哪里设置有问题,计算出来CRC32不对。

                      image.png

                      1 条回复 最后回复
                      0
                      • wenqiangW 离线
                        wenqiangW 离线
                        wenqiang
                        写于 最后由 编辑
                        #16

                        image.pngCRC设置

                        1 条回复 最后回复
                        0
                        • jiankang_wangJ 离线
                          jiankang_wangJ 离线
                          jiankang_wang YunTu
                          写于 最后由 编辑
                          #17

                          参考这个帖子,应该是上位机CRC算错了:https://forum.ytmicro.com/topic/936/uds_pc_tool使用问题/16?_=1754039742150

                          1 条回复 最后回复
                          0
                          • wenqiangW 离线
                            wenqiangW 离线
                            wenqiang
                            写于 最后由 编辑
                            #18

                            脚本计算没问题的,我用别的工具和客户的上位机程序都是一致的,就是程序里面debug算出来不对。

                            1 条回复 最后回复
                            0
                            • jiankang_wangJ 离线
                              jiankang_wangJ 离线
                              jiankang_wang YunTu
                              写于 最后由 编辑
                              #19

                              wenqiang 在 B1MC0 uds协议 中说:

                              其实地址0x8200,长度0x8430,hexview和CANoe boot上位机计算CRC32都是0xF2896B9A,麻烦帮忙看一下程序是不是哪里设置有问题,计算出来CRC32不对。

                              image.png

                              这里提到的长度正确吗?CRC计算的时候是会默认填充0xFF对齐的。不仅仅只是文件大小哈

                              1 条回复 最后回复
                              0
                              • wenqiangW 离线
                                wenqiangW 离线
                                wenqiang
                                写于 最后由 编辑
                                #20

                                长度0x8430是编译生成bin文件的长度,函数内填写的是0x8430 / 4 = 0x210C

                                image.png

                                1 条回复 最后回复
                                0
                                • jiankang_wangJ 离线
                                  jiankang_wangJ 离线
                                  jiankang_wang YunTu
                                  写于 最后由 编辑
                                  #21

                                  对比一下字节序是不是正确的。最后把芯片flash上的部分数据是多少拉出来对比一下。

                                  1 条回复 最后回复
                                  0
                                  • wenqiangW 离线
                                    wenqiangW 离线
                                    wenqiang
                                    写于 最后由 编辑
                                    #22

                                    我读取了第一个数据,但是我CANoe脚本是通过单个字节查表方式计算的。
                                    image.png

                                    image.png

                                    1 条回复 最后回复
                                    0
                                    • jiankang_wangJ 离线
                                      jiankang_wangJ 离线
                                      jiankang_wang YunTu
                                      写于 最后由 编辑
                                      #23

                                      可以调试的话,建议四个字节四个字节对比着算。用你提到的工具先算四个字节的数据,与芯片实际写入到crc寄存器的一个word的结果做比较。如果第一个word计算结果是ok的,说明还是末尾处理的有问题,如果第一个word就算错了,那就是你crc设置的问题,可能原因有这些:

                                      • crc多项式不匹配
                                      • crc配置不一样
                                      • 数据不一样
                                      1 条回复 最后回复
                                      0
                                      • wenqiangW 离线
                                        wenqiangW 离线
                                        wenqiang
                                        写于 最后由 编辑
                                        #24

                                        这些配置在哪里设置呢?另外还有个问题需要请教,由于boot demo只有物理寻址没有功能寻址,我新增了功能寻址直接link到一起,但是这样有个问题在刷写过程中36服务发送后等待回复30的时候一帧3E服务会打断本该回复的30,请问这种情况该如何解决。

                                        image.png

                                        image.png

                                        1 条回复 最后回复
                                        0
                                        • jiankang_wangJ 离线
                                          jiankang_wangJ 离线
                                          jiankang_wang YunTu
                                          写于 最后由 编辑
                                          #25

                                          CRC 对应的寄存器地址如下:
                                          9932eeef-eeb9-4d0e-94c2-540d64ff68fb-image.png
                                          uds_can 写入CRC集成器代码的位置在 platform/drivers/src/crc/crc_driver.c 的 CRC_DRV_WriteData32 函数。

                                          此外。后面提到的问题是否是CRC计算不对问题的一部分?如果后面有消息被中止了,没有做什么处理,CRC就应该是计算出错的。


                                          在发送完首帧后,紧接着发送一个相同地址的单帧,会被认为是非法的:
                                          b9c34570-dbe6-46f9-aa54-d28dfa297bc9-image.png

                                          从而导致首帧的传输被中止。

                                          可以通过以下几种方式规避:

                                          • 更改两帧消息的地址为不同的地址
                                          • 上位机处理。加个状态机检测当前是否有长消息在发送过程中,如果有长消息就先不发送单帧。
                                          • 下位机监听Tp层的错误,在Tp层的消息被中断时会通过 callback 报告:CANTP_CORE_N_UNEXP_PDU, 用户通过该 callback 增加消息传输中止导致的数据缺失问题。
                                          1 条回复 最后回复
                                          0

                                        • 云途开发生态介绍

                                          快速上手云途开发生态

                                        • 云途论坛规则/Yuntu Forum Rules

                                          发帖前请查看

                                        • YT CONFIG TOOL调查问卷

                                          帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                                        • demo
                                          19
                                          can
                                          18
                                          uds
                                          11
                                          lin stack
                                          7
                                          fbl
                                          5
                                          yt-link
                                          5
                                          md14
                                          4
                                          adc模块
                                          3
                                          Online Users
                                          mcM
                                          mc
                                          FrankieF
                                          Frankie
                                          • 登录

                                          • 登录或注册以进行搜索。
                                          • 第一个帖子
                                            最后一个帖子
                                          0
                                          • 版块
                                          • 最新
                                          • 标签
                                          • 热门