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.

[参考译文] TMS320F2800132:TMS320F2800132RGZ

Guru**** 2575725 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1574442/tms320f2800132-tms320f2800132rgz

器件型号:TMS320F2800132


工具/软件:

尊敬的专家:

我们使用 syscfg GUI 生成 CMD 文件。

以下是我的 cmd 文件

#ifdef generic_flash_lnk

移动数据

RAMM0:原点= 0x000128、长度= 0x0002D8
RAMM1:原点= 0x000400、长度= 0x0003F8
RAMLS0:origin = 0x008000、length = 0x002000
RAMLS1:origin = 0x00A000、length = 0x001FF8
FLASH_BANK0_SEC_0_7:origin = 0x080000、长度= 0x002000
FLASH_BANK0_SEC_8_15:origin = 0x082000、长度= 0x002000
FLASH_BANK0_SEC_16_23:origin = 0x084000、length = 0x002000
FLASH_BANK0_SEC_24_31:origin = 0x086000、length = 0x002000
FLASH_BANK0_SEC_32_29:origin = 0x088000、length = 0x002000
FLASH_BANK0_SEC_40_47:origin = 0x08A000、长度= 0x002000
FLASH_BANK0_SEC_48_55:origin = 0x08C000、长度= 0x002000
FLASH_BANK0_SEC_56_63:origin = 0x08E000、length = 0x002000
FLASH_BANK0_SEC_64_71:origin = 0x090000、长度= 0x002000
FLASH_BANK0_SEC_72_79:origin = 0x092000、length = 0x002000
FLASH_BANK0_SEC_80_87:origin = 0x094000、长度= 0x002000
FLASH_BANK0_SEC_88_95:origin = 0x096000、length = 0x002000
FLASH_BANK0_SEC_96_103:origin = 0x098000、length = 0x002000
FLASH_BANK0_SEC_104_111:origin = 0x09A000、长度= 0x002000
FLASH_BANK0_SEC_112_119:origin = 0x09C000、长度= 0x002000
FLASH_BANK0_SEC_120_127:origin = 0x09E000、length = 0x001FF0
Reset:origin = 0x3FFFC0、length = 0x000002
}


很重要

//
// C28x 段
//
.reset:> reset、type = DSECT /*未使用、*/
codestart:> 0x080000
.text:>> FLASH_BANK0_SEC_16_23 | FLASH_BANK0_SEC_24_31 | FLASH_BANK0_SEC_8_15、
对齐 (8)
.TI.ramfunc:load > FLASH_BANK0_SEC_0_7、
Run > RAMLS0、
表 (copyTable_ramfunc)、
对齐 (8)
.binit:> FLASH_BANK0_SEC_0_7、
对齐 (8)
.ovly:> FLASH_BANK0_SEC_0_7、
对齐 (8)
.cinit:> FLASH_BANK0_SEC_0_7、
对齐 (8)
.stack :> RAMM1
.init_array:> FLASH_BANK0_SEC_0_7、
对齐 (8)
.bss :> RAMLS0
.const:>> FLASH_BANK0_SEC_16_23 | FLASH_BANK0_SEC_24_31、
对齐 (8)
.data :> RAMLS0
.switch:> FLASH_BANK0_SEC_0_7、
对齐 (8)
.sysmem :> RAMLS0

}

#endif

/*
//==============================================================================
//文件结尾。
//==============================================================================
*/

下面也是我的内存分配

由于行业已满、我们尝试增加  

.text:>> FLASH_BANK0_SEC_16_23 | FLASH_BANK0_SEC_24_31 | FLASH_BANK0_SEC_8_15、TO

.text:>> FLASH_BANK0_SEC_16_23 | FLASH_BANK0_SEC_24_31 | FLASH_BANK0_SEC_32_29 | FLASH_BANK0_SEC_24_31  | FLASH_BANK0_SEC_8_15、  

 使用 syscfg 完成此更改后、以下是 控制台输出 它会在我们尝试刷写程序时起作用

C28xx_CPU1:GEL 输出:

RAM 初始化完成

C28xx_CPU1:GEL 输出:
存储器映射初始化完成
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:写入闪存@长度为 0x00000002 的地址 0x00080000(第 0 页)
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:PLL 配置状态= 1。 PLL 配置成功。
C28xx_CPU1:擦除闪存组 0
C28xx_CPU1:在当前数据块的末尾缓冲数据以进行 64 位对齐写入。
C28xx_CPU1:写入闪存@地址 0x00080008、长度为 0x000000e9(第 0 页)
C28xx_CPU1:在当前数据块的末尾缓冲数据以进行 64 位对齐写入。
C28xx_CPU1: — 验证闪存@地址 0x00080008、长度为 0x000000E8
C28xx_CPU1:写入闪存@地址 0x000800f8、长度为 0x0000004c(第 0 页)
C28xx_CPU1: — 验证闪存@地址 0x000800F8、长度为 0x0000004C
C28xx_CPU1:写入闪存@地址 0x00080148、长度为 0x000000ba(第 0 页)
C28xx_CPU1:在当前数据块的末尾缓冲数据以进行 64 位对齐写入。
C28xx_CPU1: — 验证闪存@地址 0x00080148(长度为 0x000000B8)
C28xx_CPU1:写入闪存@长度为 0x00000008 的地址 0x00080208(第 0 页)
C28xx_CPU1: — 验证闪存@地址 0x00080208、长度为 0x00000008
C28xx_CPU1:写入长度为 0x00000786 的闪存@地址 0x00084000(第 0 页)
C28xx_CPU1:在当前数据块的末尾缓冲数据以进行 64 位对齐写入。
C28xx_CPU1: — 验证闪存@长度为 0x00000784 的地址 0x00084000
C28xx_CPU1:写入闪存@地址 0x00084788、长度为 0x00003f6e(第 0 页)
C28xx_CPU1:在当前数据块的末尾缓冲数据以进行 64 位对齐写入。
C28xx_CPU1: — 验证闪存@地址 0x00084788、长度为 0x00003000
C28xx_CPU1:闪存编程期间出现错误。 地址 0x00088000、FMSTAT(某些器件上为 STATCMD)0x00000011
C28xx_CPU1:文件加载程序:内存写入失败:未知错误
C28xx_CPU1:GEL:文件:e:\MSG\ongoing\MTCM\03_OCT_2025_Encoder\AI_OTCM.v1\MTCM\CPU1_FLASH\MTCM.out Encoder_Workspace_:加载失败。
C28xx_CPU1:写入缓冲数据@长度为 0x00000004 的地址 0x00080000
C28xx_CPU1: — 验证闪存@地址 0x00080000、长度为 0x00000004
C28xx_CPU1:写入缓冲数据@长度为 0x00000004 的地址 0x000800F0
C28xx_CPU1: — 验证闪存@地址 0x000800F0 长度为 0x00000004
C28xx_CPU1:写入缓冲数据@长度为 0x00000004 的地址 0x00080200
C28xx_CPU1: — 验证闪存@地址 0x00080200、长度为 0x00000004
C28xx_CPU1:写入缓冲数据@长度为 0x00000004 的地址 0x00084784
C28xx_CPU1: — 验证闪存@长度为 0x00000004 的地址 0x00084784
C28xx_CPU1:写入缓冲数据@长度为 0x00000004 的地址 0x000886F4
C28xx_CPU1:闪存编程期间出现错误。 地址 0x000886F4、FMSTAT(某些器件上为 STATCMD)0x00000011
C28xx_CPU1:请确保正在编程的存储器位置尚未编程。

我们尝试选择具有上述相同结果的其他扇区。

我们无法在调试会话期间设置断点、因为我们无法使用更多内存。

因此、建议如何使用 syscfg GUI 选择其他存储器段以供使用、或提供任何其他替代方案。