This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSPM0G3519-Q1:MSPM0G3519-Q1、MCAL MSPM0_00.02.05.00:MemMap 部分

Guru**** 2893300 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1638759/mspm0g3519-q1-mspm0g3519-q1-mcal_mspm0_00-02-05-00-memmap-sections

器件型号: MSPM0G3519-Q1

TI 团队大家好、

我们使用的是 MCAL MSPM0_00.02.05.00、发现有几个映射到错误 MemMap 部分的常量/变量:

cdd_I2C_Cfg.c:  
const (Uint32、cdd_I2C_const) CddI2cHwUnitBaseAddr[Cdd_I2C_HW_UNITS_MAX]是一个常量、但映射到 VAR_INIT_32 段。

Can_Cfg:
const struct Can_Controller Struct_PC *CanConfig Set_Can Controller_List_ PC[CAN_NUM_CONTROLLER]是常量、但映射到 CFG_DATA_INIT。
const struct Can_Mailbox Struct_PC *CanConfig Set_Can。Hardware Object_List_ PC[CAN_NUM_USERNAME]是一个常量、但映射到 CFG_DATA_INIT。

Can_Mcan:
static const uint8 Can_Mcan DataSize[16]={0U、 1U、 2U 、3U、

                    4U、5U 、6U、7U、
                    8U、12U、16U、20U、
                    24U、32U、48U、64U};
是一个常量、但映射到 VAR_INIT_8。
 
mcan.c:
静态常量 uint32 Can_Data Size[16] ={0、 1 、2  、3、4、  5 、6、7、8、
                    12、16、20、24、32、 48、64};和
静态常量 uint32 Can_Msg ObjSize[8]={4、5、6、7、8、 10、14、18};
是 const、但映射到 VAR_INIT_32。
 
此致
Markus
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Markus Rigling 

    您可以查看 0.9 版的 Mcal 吗?

    与 2.05 相同的访问链接。

    我们之前已经注意到这个问题、可以查看最新的封装。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经检查了 0.9 版的静态文件。

    Can_Mcan.c:与 0.2.5 中相同。

    mcan.c:与 0.2.5 中相同。

    集成版本 0.9 后、我可以检查生成的文件。 也请检查您的侧面。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、感谢您的反馈。

    在编译列表时、我需要一些时间来检查您的列表。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    通过编译 00.09.00.00 示例:

    cdd_i2c_app 和 can_app

    我在下面找到了您报告的变量的地址:

    [引述 userid=“678539“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1638759/mspm0g3519-q1-mspm0g3519-q1-mcal_mspm0_00-02-05-00-memmap-sections ]cdd_I2C_Cfg.c:  
    const (uint32、cdd_I2C_const) CddI2cHwUnitBaseAddr[Cdd_I2C_HW_Units_MAX]是一个常量、但映射到 VAR_INIT_32 段。

    0000851c CddI2cHwUnitBaseAddr   

    [quote userid=“678539“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1638759/mspm0g3519-q1-mspm0g3519-q1-mcal_mspm0_00-02-05-00-memmap-sections Can_Cfg:
    const struct Can_Controller Struct_PC *CanConfig Set_Can Controller_List_ PC[CAN_NUM_CONTROLLER]是常量、但映射到 CFG_DATA_INIT。
    const struct Can_Mailbox Struct_PC *CanConfig Set_Can。Hardware Object_List_[CAN_NUM_USERNAME]是一个常量、但映射到 CFG_DATA_INIT。

    20206c98 CanConfig Set_Can Controller_List_    

    20206 ca0 Set_Can、硬件 Object_List_、PC   

    [引述 userid=“678539“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1638759/mspm0g3519-q1-mspm0g3519-q1-mcal_mspm0_00-02-05-00-memmap-sections

    Can_Mcan:
    static const uint8 Can_Mcan DataSize[16]={0U、 1U、 2U 、3U、

                        4U、5U 、6U、7U、
                        8U、12U、16U、20U、
                        24U、32U、48U、64U};
    是一个常量、但映射到 VAR_INIT_8。
    [/报价]

             0000f0d9  00000010   can.aem0plus:Can_Mcan.oem0plus (.rodata.DataSize Can_Mcan)

    [引述 userid=“678539“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1638759/mspm0g3519-q1-mspm0g3519-q1-mcal_mspm0_00-02-05-00-memmap-sections
    mcan.c:
    静态常量 uint32 Can_Data Size[16] ={0、 1 、2  、3、4、  5 、6、7、8、
                        12、16、20、24、32、 48、64};和
    静态常量 uint32 Can_Msg ObjSize[8]={4、5、6、7、8、 10、14、18};
    是 const、但映射到 VAR_INIT_32。
    [/报价]

             0000ed64  00000040          : mcan.oem0plus (.rodata.scoize) Can_Data

             0000ef34  00000020   can.aem0plus:mcan.oem0plus (.rodata.ObjSize Can_Msg)

    现在、除[CanConfigSet_Can Controller_List_ Flash.PC]和[CanConfigSet_Can 硬件 Object_List_ Flash.PC]之外的所有变量都位于闪存中。

    鉴于这两个变量的用途、宜将它们存储在 RAM 中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想你没有得到我的观点。 我举一个例子来解释一下。

    在这里可以看到 Can_Data Size 和 Can_Msg ObjSize 两个常量。 这些显然是常量(静态常量 uint32……)。

    但它们映射到变量的段:#define CAN_START_SEC_VAR_INIT_32。 相反、define 应为如下所示:#define CAN_START_SEC_CONST_32。 因为这些是常数且没有变量。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哈哈……

    再次感谢您提及我。

    已确认问题。 这应该是一个来源问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    未放入正确段的变量汇总:

    1.Data.c : Can_Mcan Can_Mcan

    2. mcan.c: ObjSize 和 Can_Msg Can_Data

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    cdd_I2C_Cfg.c:  
    const (Uint32、cdd_I2C_const) CddI2cHwUnitBaseAddr[Cdd_I2C_HW_UNITS_MAX]是一个常量、但映射到 VAR_INIT_32 段。

    Can_Cfg:
    const struct Can_Controller Struct_PC *CanConfig Set_Can Controller_List_ PC[CAN_NUM_CONTROLLER]是常量、但映射到 CFG_DATA_INIT。
    const struct Can_Mailbox Struct_PC *CanConfig Set_Can。Hardware Object_List_ PC[CAN_NUM_USERNAME]是一个常量、但映射到 CFG_DATA_INIT。

     还应检查这些常数。 这些文件位于生成的文件中、MCAL MSPM0_00.02.05.00 存储器映射错误。 我尚未在 MCAL MSPM0_00.09.00.00 中进行检查、但如果尚未在 MCAL MSPM0_00.09.00.00 中进行检查、则应将其用于下一个版本。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、我检查了以下项目:

    #define CDD_I2C_START_SEC_CFG_CONST_DATA
    CddI2cHwUnitBaseAddr
    #define CDD_I2C_STOP_SEC_SEC_CFG_CONST_DATA
    我认为 00.09.00.00 中的 CddI2cHwUnitBaseAddr 没有问题
    对于这两种类型:
    CanConfigu Set_Can Controller_List_
    CanConfigu Set_Can.硬件 Object_List_.PC
    需要进一步检查为什么为它们添加常量。