主题中讨论的其他部分:UNIFLAASH,
您好,专家,
我收到了客户的请求,要求DCSM程序Z1使用唯一密码,Z2使用默认密码
请举例说明如何通过uniflash命令行对DCSM Z1和Z2进行编程?
我想在 下面的链接中使用sterie的方法,但看起来在 执行命令后,sterie遇到了问题
我 没有要重试的MCU ,专家能否确认这是使用uniflash命令行对DCSM进行编程的有效方法?
谢谢
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.
您好,专家,
我收到了客户的请求,要求DCSM程序Z1使用唯一密码,Z2使用默认密码
请举例说明如何通过uniflash命令行对DCSM Z1和Z2进行编程?
我想在 下面的链接中使用sterie的方法,但看起来在 执行命令后,sterie遇到了问题
我 没有要重试的MCU ,专家能否确认这是使用uniflash命令行对DCSM进行编程的有效方法?
谢谢
您好,Vincent:
您发布的主题与UniFlash 3.4 相关。 最新版本的UniFlash更新了命令行语法,因此看起来有点不同,但一般概念相似。
因此,在F28.0049万上编程Zone1密码的命令示例为:
> dslite -c <CCXML>-s Z1B0CSMPSWD0=1234ABCD -b Z1PasswordProgram -e.
请告诉我这是否适合您。
谢谢!
Ricky
感谢您的回复,
C:\ti\uniflash 5.1 .0\dslite.bat -- mode flash -c C:\users\cuniflarle_LYline\v -s Z1B0OSECGPREG1=5AFFFFFFFF -s Z123FF0OTPGPROC2\unifliflash _LYLINe\program.txt -v -s Z1B0OECGPREG1=5AF1F0=5AF1F0=123AF0PS1B0=ZPS1B0=ZPS0Z -s Z2B0GRABRAM=0000AAAA -s Z2B0EXEONLYSECT=0.0001万F -s Z2B0EXEONLYRAM=0万FF -s Z2B1GRABSEC=5555.5555万 -s Z2B1EXEONLYSECT=0万 -b Z1PasswordProgram -b Z1B1BPT=55.5555万
load setting参数不能正确加载设置文件,所以我最后在参数上键入完整的DCSM设置。看起来上面的命令可以将DCSM编程到MCU中。
我 遇到了另一个问题,闪存中有两个图像,一个图像位于B0 Sect 0-3,扇区的其余部分是第二个图像,
一旦我确认第二个映像的完整性,我就使用以下命令引导到第二个映像。
#Define Image1_AppCode (int (*)(void))Bzere_Sector4_start
(*Image1_AppCode)();
在对DCSM进行编程之前,它工作正常,现在我将Z1设置为使用exeonly保护第一个图像 ,而Z2使用exeonly保护第二个图像,
在引导至第二个映像之前,是否需要解锁Z2?
我使用了uniflash中的以下命令来编程DCSM设置,但它确实将设置编程到OTP中
C:\ti\uniflash 5.1 .0\dslite.bat -- mode flash -c C:\users\cuniflarle_LYline\v -s Z1B0OSECGPREG1=5AFFFFFFFF -s Z123FF0OTPGPROC2\unifliflash _LYLINe\program.txt -v -s Z1B0OECGPREG1=5AF1F0=5AF1F0=123AF0PS1B0=ZPS1B0=ZPS0Z -s Z2B0GRABRAM=0000AAAA -s Z2B0EXEONLYSECT=0.0001万F -s Z2B0EXEONLYRAM=0万FF -s Z2B1GRABSEC=5555.5555万 -s Z2B1EXEONLYSECT=0万 -b Z1PasswordProgram -b Z1B1BPT=55.5555万
但是两年前我在这个岗位上遇到了类似的问题。
其中MCU的闪存寄存器 在0x7.8014万和0x7.8014万中显示错误,如上面所示的链接。
我不确定这是否是MCU/Uniflash中的错误,因此我决定查找一个新的f28.0049万 MCU并 对DCSM进行编程,而不使用以下 commnad触摸pswdlockand crclock
C:\ti\uniflash 5.1 .0\dslite.bat -- mode flash -c C:\Users\incentilliin\Desktop\unifliflash _cmdline\TMS320F28.0049万.ccXML -e -g C:\Users\entyllin\Desktop\uniflash _LYline\program.txt -s Z1B0OWDF0 GPREG1=5AFFFFFFFF -s ZEX0OTPG1BFF=1BPS1B0PS1B0s=1BAF0FAZFAZPS1B0=ZFAZPS0FAZPS0=ZFA0FAZPS1B1B0PS1 b Z1GEOTE=0万 -b Z1PBLYProgram -b Z1B2BEXKPOINTERProgram -b Z1GB2解锁-b Z1B0EXKPOINTERProgram -b Z1GB2
程序之后,它仍然卡在引导ROM中,
1.加载引导ROM符号
2.将bootpin_config_key更改为0xA5
3.成功读取OTP并进入闪存启动的情况, 并将0x8万作为入口地址
4.返回0x8万作为起始地址

5. 之后进入非法中断
但是,如果我在返回EntryAddr之前使用MCU寄存器解锁DCSM Z1,它将不会出现引导到 我的闪存映像的问题
当Z1 作为EXEONLY确保闪存扇区安全时,我是否无法运行闪存映像?
您好,
</s>402.9437万在对DCSM进行编程之前,它工作正常,现在我将Z1设置为使用exeonly保护第一个图像 ,而Z2使用exeonly保护第二个图像,
在引导至第二个映像之前,是否需要解锁Z2?
[/引述]否,代码应能够跳转至安全功能,避免不安全,因此无需解锁Z2。
[/quote]当108.7362万当 EONLY28.0049万EONLY作为403.3714万作为闪403.3714万闪存区是安全的时,我是否不能运行闪存映像? [/引述]不,这应该不重要。 您的堆栈在哪里? 确保未将其放入任何安全的RAM中。
此致,
Vivek Singh
MEMORY
{
PAGE 0 :
/* BEGIN is used for the "boot to Flash" bootloader mode */
BEGIN : origin = 0x080000, length = 0x000002
RAMM0 : origin = 0x0000F5, length = 0x00030B
BOOT_FLASH : origin = 0x080002, length = 0x003FFE /* on-chip Flash */ /* BANK0_SEC0 ~ BANK0_SEC3 */
RAMLS0 : origin = 0x008000, length = 0x000800
RESET : origin = 0x3FFFC0, length = 0x000002
PAGE 1 :
BOOT_RSVD : origin = 0x000002, length = 0x0000F3 /* Part of M0, BOOT rom will use this for stack */
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
RAMLS1 : origin = 0x008800, length = 0x003800
RAMGS : origin = 0x00C000, length = 0x008000
}
SECTIONS
{
codestart : > BEGIN, PAGE = 0, ALIGN(4)
.text : > BOOT_FLASH, PAGE = 0, ALIGN(4)
.cinit : > BOOT_FLASH, PAGE = 0, ALIGN(4)
.pinit : > BOOT_FLASH, PAGE = 0, ALIGN(4)
.switch : > BOOT_FLASH, PAGE = 0, ALIGN(4)
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */
.stack : > RAMGS, PAGE = 1
.ebss : >>RAMLS1 | RAMGS , PAGE = 1
.esysmem : > RAMGS, PAGE = 1
.econst : > BOOT_FLASH, PAGE = 0, ALIGN(4)
ramgs0 : > RAMGS, PAGE = 1
ramgs1 : > RAMGS, PAGE = 1
.TI.ramfunc : LOAD = BOOT_FLASH,
RUN = RAMLS0,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 0, ALIGN(4)
}
/*
//===========================================================================
// End of file.
//===========================================================================
*/
我已经将堆栈放在RAMGS部分,并且我没有阻止DCSM中的任何RAM。
B0扇区0 - 3 与 Z1中的EXEONLY相同。
我已经和@的FAE Wayne Huang (台湾)谈过了,他 建议使用安全,而不是仅执行,现在看起来它已经成功地运行到应用中了。
我还 没有 对Z1B0PSWDLOCK部分进行编程, 刘慧 卿 能否请您看看为什么
-b Z1B0AllProgram -b Z1B1AllProgram -b Z2B0AllProgram -b Z2B1AllProgram是否要将设备模块?
您好,Ricky,是否可以在-b Z1OTPSECLOCKProgram -b Z2OTPSECLOCKProgram中添加这两个命令
在以下内容的末尾?
b Z1B0LINKPOINTERProgram -b Z1OTPBOTOTOTTCTRL程序-b Z1B0GRAB UNDERB -B Z1GBE程序-b Z1B0GRAB程序-b Z1GBE程序-b
</s>403.8991万我不知道"AllProgram"操作的编织设备。 它应该只按顺序执行每个可用的安全编程操作。
[/引述]但我确实确认它会使设备积木
文森特
添加"-b Z1OTPSECLOCKProgram"和"-b Z2OTPSECLOCKProgram"将执行Z1和Z2 OTPSECLOCK编程。 所有-b操作将按您提供的顺序执行。 如果需要,您可以询问Vivek,这是否是对设备上的OTPSECLOCK和其它安全字段进行编程的首选方法。
对于"AllProgram"功能,如果您仍有运行命令的控制台输出,或者尝试连接到设备时收到的错误消息,Vivek也许可以帮助您了解设备发生了什么。
谢谢!
Ricky