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.

[参考译文] MSPM0L1306-Q1:从 NVM (闪存)读取会给我带来硬故障

Guru**** 2439560 points
Other Parts Discussed in Thread: MSPM0L1306

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1328840/mspm0l1306-q1-reading-from-nvm-flash-gives-me-a-hard-fault

器件型号:MSPM0L1306-Q1
主题中讨论的其他器件:MSPM0L1306

这是我的链接器 cmd 文件看起来的样子

-uinterruptVectors
--stack_size=256

MEMORY
{
   FLASH           (RX)  : origin = 0x00000000, length = 0x0000F4F7
   SEN_CFG         (RW)  : origin = 0x0000F4F8, length = 0x00000A80 
   SRAM            (RWX) : origin = 0x20000000, length = 0x00001000
   BCR_CONFIG      (R)   : origin = 0x41C00000, length = 0x00000080
   BSL_CONFIG      (R)   : origin = 0x41C00100, length = 0x00000080
}

SECTIONS
{
    .intvecs:   > 0x00000000
    .text   : palign(8) {} > FLASH
    .const  : palign(8) {} > FLASH
    .cinit  : palign(8) {} > FLASH
    .pinit  : palign(8) {} > FLASH
    .rodata : palign(8) {} > FLASH
    .ARM.exidx    : palign(8) {} > FLASH
    .init_array   : palign(8) {} > FLASH
    .binit        : palign(8) {} > FLASH
    .TI.ramfunc   : load = FLASH, palign(8), run=SRAM, table(BINIT)

    .vtable :   > SRAM
    .args   :   > SRAM
    .data   :   > SRAM
    .bss    :   > SRAM
    .sysmem :   > SRAM
    .stack  :   > SRAM (HIGH)

    .SENCFG     : {} > SEN_CFG
    .BCRConfig  : {} > BCR_CONFIG
    .BSLConfig  : {} > BSL_CONFIG
}


可以看出、我定义了一个新段来存储(并加载)从 0x0000F4F8开始的0xA80字节配置数据。 我也减少了称为"flash"的部分的大小。 我的新部分偏离了手册中提到的最后8个字节。 我能够对这个区域的其中一个位置进行写入。 但是、这里偶尔也会失败。 它工作了几次,现在我得到一个硬故障,而写入相同的位置。 以前,我能够写入它,但我在读取它时遇到了这个问题。

我想知道除了此 aka 定义一个单独的存储器段、然后直接使用该段中的地址作为代码的一部分、我是否需要执行任何其他操作?

为了识别例外情况、我修改了所有的异常和中断、以便按照  此处的 Brandon Fisher94的建议使其中断。 现在、它显示我遇到了"硬故障"。 我不知道为什么。 这里的任何内容是否暗示我可能正在访问非法内存? 在像我这样的情况下、什么可能导致硬故障?  


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

    您好、AJ、

    如何写入闪存? 我不确定它是否用于数据或 代码区域。 我们在 SDK 中提供了示例代码、用于调用闪存控制器对闪存进行编程、您可以参阅"flashctl_multiple_size_write_lp_MSPM0L1306_nortos_ticlang"。

    如果将其用于代码、或用于通过编译器保存数据、请分享您的操作方法。 然后、或许我可以试试、弄清楚会发生什么。

    B.R.

    萨尔

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

    您好,Sal

    显然,我没有保护该部门之前,尝试(失败)的写入。 除了我所做的与 SDK 中的示例代码所做的不同之外、我不知道什么。 因此、我需要注意它。

    将随时为您提供最新信息

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

    您好、AJ、

    当然、我会保持开机自检并等待您的反馈。

    B.R.

    萨尔