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.

[参考译文] TMS320F28388D:有关链接器命令文件中存储器映射说明的问题。

Guru**** 2589300 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1170711/tms320f28388d-question-about-memory-map-description-in-linker-command-file

器件型号:TMS320F28388D
主题中讨论的其他器件:C2000WARE

您好!  

我对存储器映射描述有一些疑问。

MCU 有两个存储器映射:程序和数据。  

C2000 Academy 建议存储器说明必须如下单独描述每个存储器。  

但是 、C2000WARE 提供的链接器命令文件没有说明。

对于新器件(C2000第3代器件)、是否不需要此说明  

下面的内存说明为 F2838x_flash_cla_lnk_cpu1.cmd

存储器

/* begin 用于"引导至闪存"引导加载程序模式*/
开始:origin = 0x080000,length = 0x000002
BOOT_RSVD:origin = 0x000002,length = 0x0001AF // M0的部分,引导 ROM 将此用于栈*/
RAMM0:origin = 0x0001B1,length = 0x00024F
RAMM1:origin = 0x000400,length = 0x0003F8 //片上 RAM 块 M1 */
// RAMM1_RSVD:origin = 0x0007F8,length = 0x000008 //根据勘误咨询“Memory:Prepetching Beyond valid Memory”(内存:超出有效内存的预取),保留并不用于代码*/
RAMD0:origin = 0x00C000、length = 0x000800
RAMD1:origin = 0x00C800,length = 0x000800
RAMLS0:origin = 0x008000、length = 0x000800
RAMLS1:origin = 0x008800,length = 0x000800
RAMLS2:origin = 0x009000,length = 0x000800
RAMLS3:origin = 0x009800,length = 0x000800
RAMLS4:origin = 0x00A000,length = 0x000800
RAMLS5:origin = 0x00A800,length = 0x000800
RAMLS6:origin = 0x00B000、length = 0x000800
RAMLS7:origin = 0x00B800,length = 0x000800
RAMGS0:origin = 0x00D000,length = 0x001000
RAMGS1:origin = 0x00E000、length = 0x001000
RAMGS2:origin = 0x00F000、length = 0x001000
RAMGS3:origin = 0x010000,length = 0x001000
RAMGS4:origin = 0x011000,length = 0x001000
RAMGS5:origin = 0x012000,length = 0x001000
RAMGS6:origin = 0x013000、length = 0x001000
RAMGS7:origin = 0x014000,length = 0x001000
RAMGS8:origin = 0x015000,length = 0x001000
RAMGS9:origin = 0x016000,length = 0x001000
RAMGS10:origin = 0x017000,length = 0x001000
RAMGS11:origin = 0x018000,length = 0x001000
RAMGS12:origin = 0x019000,length = 0x001000
RAMGS13:origin = 0x01A000,length = 0x001000
RAMGS14:origin = 0x01B000,length = 0x001000
RAMGS15:origin = 0x01C000,length = 0x000FF8
// RAMGS15_RSVD:origin = 0x01CFF8,length = 0x000008 //根据勘误咨询“Memory: pret撷取 超出有效内存”*/,保留并不用于代码

/*闪存扇区*/
FLASH0:origin = 0x080002,length = 0x001FFE /*片上闪存*/
FLASH1:origin = 0x082000,length = 0x002000 //片上闪存*/
FLASH2:origin = 0x084000、length = 0x002000 //片上闪存*/
FLASH3:origin = 0x086000、length = 0x002000 //片上闪存*/
FLASH4:origin = 0x088000、length = 0x008000 //片上闪存*/
FLASH5:origin = 0x090000,length = 0x008000 //片上闪存*/
Flash6:origin = 0x098000、length = 0x008000 //片上闪存*
FLASH7:origin = 0x0A0000,length = 0x008000 //片上闪存*/
FLASH8:origin = 0x0A8000、length = 0x008000 //片上闪存*/
FLASH9:origin = 0x0B0000,length = 0x008000 //片上闪存*/
FLASH10:origin = 0x0B8000、length = 0x002000 //片上闪存*/
FLASH11:origin = 0x0BA000、length = 0x002000 //片上闪存*/
FLASH12:origin = 0x0BC000、length = 0x002000 //片上闪存*/
FLASH13:origin = 0x0BE000、length = 0x001FF0 /*片上闪存*/
// FLASH13_RSVD:origin = 0x0BFFF0,length = 0x000010 //根据勘误咨询“Memory:Prepetching Beyond valid Memory”(内存:有效内存之外的预取)来保留代码,不要将其用于代码*/

CPU1TOCPU2RAM:origin = 0x03A000,length = 0x000800
CPU2TOCPU1RAM:origin = 0x03B000,length = 0x000800
CPUTOCMRAM:origin = 0x039000,length = 0x000800
CMTOCPURAM:origin = 0x038000,length = 0x000800

CANA_MSG_RAM:origin = 0x049000、length = 0x000800
CANB_MSG_RAM:origin = 0x04B000、length = 0x000800

复位:origin = 0x3FFFC0,length = 0x000002

CLA1_MSGRAMLOW:origin = 0x001480,length = 0x000080
CLA1_MSGRAMHIGH:origin = 0x001500,length = 0x000080

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="445856" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1170711/tms320f28388d-question-about-memory-map-description-in-linker-command-file 对于新器件(C2000 Gen3器件)而言、此说明是否不必要 

    我找不到您在最新的 C2000Ware 中提到的文件。 不过,我知道网页之间的区别在很大程度上是学术性的。 请参阅此文章。

    https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html#pages-of-memory

    正如它提到的那样、"如果链接器命令文件使用 PAGE 0和 PAGE 1、最好以这种方式继续使用它。" 因此、可以推断、如果您的示例链接器文件不使用 PAGE、那么您无需进一步担心它。