Other Parts Discussed in Thread: C2000WARE
器件型号: TMS320F28377S
主题: C2000WARE 中讨论的其他器件
尊敬的团队:我的 DCSM 错误发生时、
请分享错误是什么
我尝试执行 OTA
由 dcsm_security_tool 生成的文件。
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.
Other Parts Discussed in Thread: C2000WARE
器件型号: TMS320F28377S
主题: C2000WARE 中讨论的其他器件
尊敬的团队:我的 DCSM 错误发生时、
请分享错误是什么
我尝试执行 OTA
由 dcsm_security_tool 生成的文件。
首先上传闪存内核(由 TI 提供)
成功握手后、我开始上传 hex 文件、 256 字节块 最大
我的正常代码正在上传成功。 但 scnerio 后出错。
1. 使用 dcsm_security_tool 十六进制文件。 当我不启用 ZONE1 标头时、LFU 会成功更新、但当我启用 ZONE1 标头(在全新 MCU 上)时、LFU 会失败。 我已经把这两部电影都打动了
2.其中我需要设置 128 位对齐地址。
e2e.ti.com/.../hex.files.rar
以下是会产生错误的 dcsm.cmd 文件
/* this linker command file is to be included if user wants to use the DCSM feature on the device
* DCSM means Dual Zone Code Security Module.
* This linker command file works as an addendum ot the already existing Flash/RAM linker command file
* that the project has.
* The sections in the *_ZoneSelectBlock.asm source file is linked as per the commands given in the file
* NOTE - please note fill=0xFFFF, this helps if users include this file in the project by mistake and
* doesn't provide the needed proper *_ZoneSelectBlock.asm sources .
* Please refer to the Blinky DCSM example in the controlsuite examples for proper usage of this.
*
* Once users are confident that they want to program the passwords in OTP, the DSECT section type can be removed.
*
*/
MEMORY
{
PAGE 0 : /* Program Memory */
/* Z1 OTP. LinkPointers */
DCSM_OTP_Z1_LINKPOINTER : origin = 0x78000, length = 0x00000C
/* Z1 OTP. GPREG1/GPREG2 */
DCSM_OTP_Z1_GPREG : origin = 0x7800C, length = 0x000004
/* Z1 OTP. PSWDLOCK/RESERVED */
DCSM_OTP_Z1_PSWDLOCK : origin = 0x78010, length = 0x000004
/* Z1 OTP. CRCLOCK/RESERVED */
DCSM_OTP_Z1_CRCLOCK : origin = 0x78014, length = 0x000004
/* Z1 OTP. RESERVED/JTAGLOCK */
DCSM_OTP_Z1_JTAGLOCK : origin = 0x78018, length = 0x000004
/* Z1 OTP. RESERVED/BOOTCTRL */
DCSM_OTP_Z1_BOOTCTRL : origin = 0x7801C, length = 0x000004
/* DCSM Z1 Zone Select Contents (!!Movable!!) */
/* Z1 OTP. Z1 password locations / Flash and RAM partitioning */
DCSM_ZSEL_Z1_P0 : origin = 0x78020, length = 0x000010
/* Z2 OTP. LinkPointers */
DCSM_OTP_Z2_LINKPOINTER : origin = 0x78200, length = 0x00000C
/* Z2 OTP. GPREG1/GPREG2 */
DCSM_OTP_Z2_GPREG : origin = 0x7820C, length = 0x000004
/* Z2 OTP. PSWDLOCK/RESERVED */
DCSM_OTP_Z2_PSWDLOCK : origin = 0x78210, length = 0x000004
/* Z2 OTP. CRCLOCK/RESERVED */
DCSM_OTP_Z2_CRCLOCK : origin = 0x78214, length = 0x000004
/* Z2 OTP. RESERVED/JTAGLOCK */
DCSM_OTP_Z2_JTAGLOCK : origin = 0x78218, length = 0x000004
/* Z2 OTP. GPREG3/BOOTCTRL */
DCSM_OTP_Z2_BOOTCTRL : origin = 0x7821C, length = 0x000004
/* DCSM Z2 Zone Select Contents (!!Movable!!) */
/* Z2 OTP. Z2 password locations / Flash and RAM partitioning */
DCSM_ZSEL_Z2_P0 : origin = 0x78220, length = 0x000010
}
SECTIONS
{
dcsm_otp_z1_linkpointer : > DCSM_OTP_Z1_LINKPOINTER PAGE = 0
dcsm_otp_z1_pswdlock : > DCSM_OTP_Z1_PSWDLOCK PAGE = 0
dcsm_otp_z1_crclock : > DCSM_OTP_Z1_CRCLOCK PAGE = 0
dcsm_otp_z1_jtaglock : > DCSM_OTP_Z1_JTAGLOCK PAGE = 0, type = DSECT
dcsm_otp_z1_bootctrl : > DCSM_OTP_Z1_BOOTCTRL PAGE = 0, type = DSECT
dcsm_zsel_z1 : > DCSM_ZSEL_Z1_P0 PAGE = 0
dcsm_otp_z2_linkpointer : > DCSM_OTP_Z2_LINKPOINTER PAGE = 0, type = DSECT
dcsm_otp_z2_pswdlock : > DCSM_OTP_Z2_PSWDLOCK PAGE = 0, type = DSECT
dcsm_otp_z2_crclock : > DCSM_OTP_Z2_CRCLOCK PAGE = 0, type = DSECT
dcsm_otp_z2_jtaglock : > DCSM_OTP_Z2_JTAGLOCK PAGE = 0, type = DSECT
dcsm_otp_z2_bootctrl : > DCSM_OTP_Z2_BOOTCTRL PAGE = 0, type = DSECT
dcsm_zsel_z2 : > DCSM_ZSEL_Z2_P0 PAGE = 0, type = DSECT
}
/*
//===========================================================================
// End of file.
//===========================================================================
*/
/* this linker command file is to be included if user wants to use the DCSM feature on the device
* DCSM means Dual Zone Code Security Module.
* This linker command file works as an addendum ot the already existing Flash/RAM linker command file
* that the project has.
* The sections in the *_ZoneSelectBlock.asm source file is linked as per the commands given in the file
* NOTE - please note fill=0xFFFF, this helps if users include this file in the project by mistake and
* doesn't provide the needed proper *_ZoneSelectBlock.asm sources .
* Please refer to the Blinky DCSM example in the controlsuite examples for proper usage of this.
*
* Once users are confident that they want to program the passwords in OTP, the DSECT section type can be removed.
*
*/
MEMORY
{
PAGE 0 : /* Program Memory */
/* Z1 OTP. LinkPointers */
DCSM_OTP_Z1_LINKPOINTER : origin = 0x78000, length = 0x00000C
/* Z1 OTP. GPREG1/GPREG2 */
DCSM_OTP_Z1_GPREG : origin = 0x7800C, length = 0x000004
/* Z1 OTP. PSWDLOCK/RESERVED */
DCSM_OTP_Z1_PSWDLOCK : origin = 0x78010, length = 0x000004
/* Z1 OTP. CRCLOCK/RESERVED */
DCSM_OTP_Z1_CRCLOCK : origin = 0x78014, length = 0x000004
/* Z1 OTP. RESERVED/JTAGLOCK */
DCSM_OTP_Z1_JTAGLOCK : origin = 0x78018, length = 0x000004
/* Z1 OTP. RESERVED/BOOTCTRL */
DCSM_OTP_Z1_BOOTCTRL : origin = 0x7801C, length = 0x000004
/* DCSM Z1 Zone Select Contents (!!Movable!!) */
/* Z1 OTP. Z1 password locations / Flash and RAM partitioning */
DCSM_ZSEL_Z1_P0 : origin = 0x78030, length = 0x000010
/* Z2 OTP. LinkPointers */
DCSM_OTP_Z2_LINKPOINTER : origin = 0x78200, length = 0x00000C
/* Z2 OTP. GPREG1/GPREG2 */
DCSM_OTP_Z2_GPREG : origin = 0x7820C, length = 0x000004
/* Z2 OTP. PSWDLOCK/RESERVED */
DCSM_OTP_Z2_PSWDLOCK : origin = 0x78210, length = 0x000004
/* Z2 OTP. CRCLOCK/RESERVED */
DCSM_OTP_Z2_CRCLOCK : origin = 0x78214, length = 0x000004
/* Z2 OTP. RESERVED/JTAGLOCK */
DCSM_OTP_Z2_JTAGLOCK : origin = 0x78218, length = 0x000004
/* Z2 OTP. GPREG3/BOOTCTRL */
DCSM_OTP_Z2_BOOTCTRL : origin = 0x7821C, length = 0x000004
/* DCSM Z2 Zone Select Contents (!!Movable!!) */
/* Z2 OTP. Z2 password locations / Flash and RAM partitioning */
DCSM_ZSEL_Z2_P0 : origin = 0x78220, length = 0x000010
}
SECTIONS
{
dcsm_otp_z1_linkpointer : > DCSM_OTP_Z1_LINKPOINTER PAGE = 0
dcsm_otp_z1_pswdlock : > DCSM_OTP_Z1_PSWDLOCK PAGE = 0, type = DSECT
dcsm_otp_z1_crclock : > DCSM_OTP_Z1_CRCLOCK PAGE = 0, type = DSECT
dcsm_otp_z1_jtaglock : > DCSM_OTP_Z1_JTAGLOCK PAGE = 0, type = DSECT
dcsm_otp_z1_bootctrl : > DCSM_OTP_Z1_BOOTCTRL PAGE = 0, type = DSECT
dcsm_zsel_z1 : > DCSM_ZSEL_Z1_P0 PAGE = 0
dcsm_otp_z2_linkpointer : > DCSM_OTP_Z2_LINKPOINTER PAGE = 0, type = DSECT
dcsm_otp_z2_pswdlock : > DCSM_OTP_Z2_PSWDLOCK PAGE = 0, type = DSECT
dcsm_otp_z2_crclock : > DCSM_OTP_Z2_CRCLOCK PAGE = 0, type = DSECT
dcsm_otp_z2_jtaglock : > DCSM_OTP_Z2_JTAGLOCK PAGE = 0, type = DSECT
dcsm_otp_z2_bootctrl : > DCSM_OTP_Z2_BOOTCTRL PAGE = 0, type = DSECT
dcsm_zsel_z2 : > DCSM_ZSEL_Z2_P0 PAGE = 0, type = DSECT
}
/*
//===========================================================================
// End of file.
//===========================================================================
*/
我 在代码中启用了 DCSM 模块(通过 LFU 成功刷写)、这次失败、我永久启用了 pswdlock 并禁用了 CRClock。
0x78010 转 FFF0。 OTA 失败、令人惊讶的是重新命名代码仅能正常工作 DCSM 部分 LFU 失败
您好:
在对闪存进行编程时、起始地址必须至少为 64 位对齐。 您看到错误、因为该工具生成的某些 DCSM 段始于 未对齐的地址。 要解决此问题、在生成.txt 十六进制文件后、您可以合并所有相邻的未对齐段、以便使用 附加的 Python 脚本将它们作为一个对齐段发送。 此 脚本将包含在下一个 C2000Ware 版本中。
此致、
Alex