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.

[参考译文] CC1312R:更改闪存矢量表地址时出现问题

Guru**** 2484615 points
Other Parts Discussed in Thread: SYSCONFIG, CC1312R

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1191581/cc1312r-problem-changing-flash-vector-table-address

器件型号:CC1312R
Thread 中讨论的其他器件:SysConfig

您好!

我想在我的应用程序代码之前放置一些大小为0xA8字节的信息(如 TI OAD 图像着色器)。 为了作为第一步、我只需将闪存矢量表移动到0xA8开头、而不是0x0更改链接器命令文件中的闪存区域和 CCFG 中的闪存矢量表起始地址(使用 SysConfig)。

e2e.ti.com/.../timerled_5F00_CC1312R1_5F00_CodeOffset_5F00_test.zipThe问题是,在我更改之后,prooject 只能在将其加载到目标之后在调试器上运行(运行到 main())。 如果没有调试器、在使用调试器进行"电路板复位"之后(在 UARTAutoBaud() ROM 函数中无延迟循环)、则无法正常工作。

我用"Timerled"示例重新讨论了这一点、该示例添加了名称中包含"A8_CodeOffset"的其他编译配置。

e2e.ti.com/.../timerled_5F00_CC1312R1_5F00_CodeOffset_5F00_test.zip

请问我错过了什么?

此致、

Dimitar

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

    我发现了导致我的问题的原因。
    根据 CC1312R TRM 、矢量表的偏移量必须与512字节边界对齐(不是0xA8)。

    On system reset, the vector table is fixed at address 0x0000 0000. Privileged software can write to the
    Vector Table Offset register (CPU_SCS:VTOR) to relocate the vector table start address to a different
    memory location, in the range 0x0000 0200 to 0x3FFF FE00. When configuring the CPU_SCS:VTOR
    register, the offset must be aligned on a 512-byte boundary.

    将0xA8更改为0x200可解决此问题、现在我的软件可以再次工作、但我有新的问题:

    根据 Cortex-M4矢量表偏移寄存器的通用 ARM 文档 以及我对 CC1312R 的计算、偏移量应适用于256字节边界的附加 。 我已经对此进行了测试、在我的案例中、它的外观看起来很合适、但正如 TI 应该更好地知道的、限制是什么、问题是:CC1312R 矢量表偏移地址是否有任何原因必须与512字节边界对齐、而不是与256字节边界对齐

    2.如果有 CC1312R 引导过程(与芯片 ROM 引导加载程序相关)的信息、您可以告诉我吗?   

    此致、

    Dimitar

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

    您好、Dimitar、

    您似乎是对的、256字节的边界应该足够了。 感谢您对其进行测试。  

    一些文档可在技术参考手册的引导加载程序部分找到。  

    https://dev.ti.com/tirex/explore/node?node=A__AO0VNcTkm37Mb0AVH5vFDQ__cc13x0_devices__coGQ502__LATEST

    使用串行引导加载程序时、本应用手册中提供了一些内容。  

    https://www.ti.com/lit/an/swra466d/swra466d.pdf

    此致、

    SID