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.

[参考译文] 编译器/TMS570LS0432:sys.start up 失败

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/820785/compiler-tms570ls0432-sys-start-up-fail

器件型号:TMS570LS0432

工具/软件:TI C/C++编译器

 你好

  void 售后 STC (void)功能和中的启动失败

在中

crcAtInit_StaticRAM = sl_CRC_Calculate ((uint64*) static_ram、1);  

请访问 e2e.ti.com/.../6428.JGX50_5F00_SL.zip

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

    黄先生、您好!

    您说它在 crcAtInit_StaticRAM = sl_CRC_Calculate ((uint64*) static_ram、1)中失败。 返回 CRC 值是否不正确? 或者您有数据中止或预取中止?

    static_ram 是否位于有效的 SRAM 位置?

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

    您是否通过调用以下命令获得 VIM_RAM、FEE 或闪存的正确 CRC 值:

    crcAtInit_VIMRAM = sl_CRC_Calculate ((((uint64 *) 0xFFF82000)、256);
    crcAtInit_fee = sl_CRC_Calculate ((((uint64 *) 0xF0200000)、8);

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

    你好

     

    #define BF_SET (y、x、start、len)\
    ((y)=((y)&(~(bf_mask ((start)、(len)))))) | BF_PREP ((x)、(开始)、(len)))

    #ifdef __TI_Compiler_version__
    #pragma 中断(_expt_vec_udef_instr、UDEF)
    void _expt_vec_udef_instr()
    #endif
    #ifdef __IAR_systems_ICC__
    _IRQ __arm void _expt_vec_udef_instr()
    #endif

    while (1);

    在 while()1 μ s 时执行程序、

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

    crcAtInit_StaticRAM = sl_CRC_Calculate ((uint64*) static_ram、1);

    这个函数 sl_CRC_Calculate 执行有时、然后不知道在哪里运行、所以我暂停、我在那个位置找到它

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

    您好、whong、

    它是 UNDEF 异常处理程序。  MCU 在遇到无效指令时进入"未定义模式"。

    您可以添加一个断点、然后进入函数以查找导致问题的指令。

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

    谢谢你

     我再次查找问题。

    _coreInitRegisters_();

    _coreInitStackPointer_();

    和  

    SL_Init_R4Registers ();

    sl_Init_StackPointers();

     我使用_coreInitRegisters_();_coreInitStackPointer_();函数、不要使用_coreInitRegisters_();_coreInitStackPointer_();

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

    它在 编译时报告了这一点。 此警告是否有影响?#10247-D null:创建没有 SECTIONS 规范的输出段".intvecs"

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

    你好  

     我 已取消“crcAtInit_StaticRAM = sl_CRC_Calculate ((uint64*) static_ram,1);”

    但是 _enable_interrupt_();  也会运行到  

    #ifdef __IAR_systems_ICC__
    _IRQ __arm void _expt_vec_udef_instr()
    #endif

    while (1);

    为什么选择?

    谢谢你

     

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


    #ifdef __TI_Compiler_version__
    #pragma 中断(_expt_vec_udef_instr、UDEF)
    void _expt_vec_udef_instr()
    #endif
    #ifdef __IAR_systems_ICC__
    _IRQ __arm void _expt_vec_udef_instr()
    #endif

    while (1);

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

    黄你好、

    此 UNDEF 错误不是由 CRC 计算引起的。 它是由代码中使用的其他变量或函数引起的、但这些变量或函数未定义。