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

YunTu Forum

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

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

已定时 已固定 已锁定 已移动 YTM32B1M系列
4 帖子 2 发布者 139 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Y 离线
    Y 离线
    yishui66
    写于2024年12月26日 03:12 最后由 yishui66 编辑 2024年12月26日 11:37
    #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
    • Y 离线
      Y 离线
      yt0069
      写于2025年1月6日 09:40 最后由 编辑
      #2

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

      Y 1 条回复 最后回复 2025年1月6日 10:00
      0
      • Y 离线
        Y 离线
        yishui66
        在 2025年1月6日 10:00 回复了 yt0069 最后由 编辑
        #3

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

        1 条回复 最后回复
        0
        • Y 离线
          Y 离线
          yt0069
          写于2025年1月6日 10:01 最后由 编辑
          #4

          暂时应该不会考虑

          1 条回复 最后回复
          0

        • 云途论坛规则/Yuntu Forum Rules

          发帖前请查看

        • YCT离线License申请流程

          帮助没办法联网的电脑使用YCT

        • YT CONFIG TOOL调查问卷

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

        • demo
          11
          can
          8
          lin stack
          5
          yt-link
          5
          vscode
          3
          adc模块
          2
          i2c
          2
          uuid
          2
          Online Users
          • 登录

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