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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. ME05 改写了CAN部分相关的SDK函数以达到增加MB数量,但存在BUG

ME05 改写了CAN部分相关的SDK函数以达到增加MB数量,但存在BUG

已定时 已固定 已锁定 已移动 已解决 YTM32B1M系列
4 帖子 2 发布者 1.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • yishui66Y 离线
    yishui66Y 离线
    yishui66
    写于 最后由 yishui66 编辑
    #1

    一、背景:
    ①需要同时要收发很多报文,报文的长度有8byte,64byte。
    ②ME的CAN0有64个MB,在物理上是占用两块block(block0,block1)。
    二、问题:
    payload设置成FLEXCAN_PAYLOAD_SIZE_64,那么可能导致整个MB使用个数比较少,CAN0只有14个
    三、需求:想通过每块block的payload(MBDSR)分开配置以达到增加MB的个数,如将长度位8byte的报文放在block0区域,将64byte的报文放在block1,那么可利用的MB大小就会变成39(32 + 7)个

    我自己尝试改写了SDK的部分函数 如:uint8_t FLEXCAN_GetPayloadSize(const CAN_Type * base)
    改为uint8_t FLEXCAN_GetPayloadSize(const CAN_Type * base, uint8_t MBDSR)
    145031b0-e55d-411c-b336-eaf7ba9ede70-B0G$4UKTW~N)($IZVA`C7.png

    status_t FLEXCAN_SetMaxMsgBuffNum(
    CAN_Type * base,
    uint32_t maxMsgBuffNum)

    volatile uint32_t* FLEXCAN_GetMsgBuffRegion(
    CAN_Type * base,
    uint32_t msgBuffIdx)
    d54dadb9-6450-4046-b1b9-16fc4ff6b6a2-3{P3QD8ANS4B%T)D%5KFNO0.png
    等相关函数(没有举例完,详情查看工程)

    flexcanInitConfig0设置形式为
    6347a3fd-c7e2-4ea7-a787-37f13c8a32ea-5ZMR8%%X60SQ3S`8MMV{H7H.png

    目前现状:
    程序初始化函数配置等都返回0(.max_num_mb = 39UL允许存在)
    3d630834-213a-447e-9365-5261db1882b1-UR9XX0VEMHOJ@RHF_EEJGEW.png
    函数返回值均为0

    但是只有.payload0 = FLEXCAN_PAYLOAD_SIZE_8,block0范围内的邮箱号可以正常使用(正常收发);
    .payload1 ==FLEXCAN_PAYLOAD_SIZE_64,block2范围内的邮箱号无效使用(收发跑不起来)

    附件为我的工程,感谢答疑~!Flexcan_Canfd_Demo.zip

    1 条回复 最后回复
    0
    • yt0069Y 离线
      yt0069Y 离线
      yt0069 YunTu
      写于 最后由 编辑
      #4

      暂时应该不会考虑

      1 条回复 最后回复
      0
      • yt0069Y 离线
        yt0069Y 离线
        yt0069 YunTu
        写于 最后由 编辑
        #2

        sdk是不支持2个region单独设置payload大小的,实际flexcan模块是支持的,可以参考mcal来改或者直接用mcal,mcal支持2个region的payload设定不同

        yishui66Y 1 条回复 最后回复
        0
        • yishui66Y 离线
          yishui66Y 离线
          yishui66
          在 回复了 yt0069 最后由 编辑
          #3

          yt0069 好的谢谢。不过请问后续SDK会考虑升级到可以单独设置payload大小吗?

          1 条回复 最后回复
          0
          • yt0069Y 离线
            yt0069Y 离线
            yt0069 YunTu
            写于 最后由 编辑
            #4

            暂时应该不会考虑

            1 条回复 最后回复
            0
            • ,FrankieF Frankie 将这个主题转为问答主题
            • ,FrankieF Frankie 将这个主题标记为已解决

          • 云途开发生态介绍

            快速上手云途开发生态

          • 云途论坛规则/Yuntu Forum Rules

            发帖前请查看

          • YT CONFIG TOOL调查问卷

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

          • can
            25
            demo
            22
            lin stack
            13
            uds
            13
            md14
            6
            yt-link
            6
            fbl
            5
            adc模块
            4
            Online Users
            MonsterM
            Monster
            ludensL
            ludens
            ZOUYIWENZ
            ZOUYIWEN
            • 登录

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