mpc5746r jtag 密码 问题 1: 我用 void debug_lock()函数锁定了 Jtag,然后如何用其他函数解锁 Jtag? 问题 2: Lauterbach 可以通过 sys.option.KEYCODE连接 MPC5746R,但不能对闪存编程,谁能举例说明? void debug_lock() { /*************************/ /* 程序密码 */ /*************************/ /* 编程 JTAG 密码 */ flash_program(0x00400120,JTAG_PASSWORD_0,JTAG_PASSWORD_1); flash_program(0x00400128,JTAG_PASSWORD_2,JTAG_PASSWORD_3); flash_program(0x00400130,JTAG_PASSWORD_4,JTAG_PASSWORD_5); flash_program(0x00400138,JTAG_PASSWORD_6,JTAG_PASSWORD_7); /* 编程 PASS 第 0 组密码 */ flash_program(0x00400140, PASSWORD_PG0_0, PASSWORD_PG0_1); flash_program(0x00400148, PASSWORD_PG0_2, PASSWORD_PG0_3); flash_program(0x00400150, PASSWORD_PG0_4, PASSWORD_PG0_5); flash_program(0x00400158, PASSWORD_PG0_6, PASSWORD_PG0_7); /* 编程 PASS 第 1 组密码 */ flash_program(0x00400160, PASSWORD_PG1_0, PASSWORD_PG1_1); flash_program(0x00400168, PASSWORD_PG1_2, PASSWORD_PG1_3); flash_program(0x00400170, PASSWORD_PG1_4, PASSWORD_PG1_5); flash_program(0x00400178, PASSWORD_PG1_6, PASSWORD_PG1_7); /* 编程 PASS 第 2 组密码 */ flash_program(0x00400180, PASSWORD_PG2_0, PASSWORD_PG2_1); flash_program(0x00400188, PASSWORD_PG2_2, PASSWORD_PG2_3); flash_program(0x00400190, PASSWORD_PG2_4, PASSWORD_PG2_5); flash_program(0x00400198, PASSWORD_PG2_6, PASSWORD_PG2_7); /* 编程 PASS 第 3 组密码 */ flash_program(0x004001A0, PASSWORD_PG3_0, PASSWORD_PG3_1); flash_program(0x004001A8, PASSWORD_PG3_2, PASSWORD_PG3_3); flash_program(0x004001B0, PASSWORD_PG3_4, PASSWORD_PG3_5); flash_program(0x004001B8, PASSWORD_PG3_6, PASSWORD_PG3_7); /*************************/ /* PROGRAM PASS DCFs */ /*************************/ /* 密码组 0 - 程序锁 */ DCF_program(0x00000000, 0x00100100); /* LOCK0_PG0 */ DCF_program(0x00000000, 0x00100104); /* LOCK1_PG0 */ DCF_program(0x00000000, 0x00100108); /* LOCK2_PG0 */ DCF_program(0x40000000, 0x0010010C); /* LOCK3_PG0 [DBL=1] */ /* 密码组 1 - 程序锁 */ DCF_program(0x00000000, 0x00100110); /* LOCK0_PG1 */ DCF_program(0x00000000, 0x00100114); /* LOCK1_PG1 */ DCF_program(0x00000000, 0x00100118); /* LOCK2_PG1 */ DCF_program(0x00000000, 0x0010011C); /* LOCK3_PG1, [DBL=0] */ /* 密码组 1 - 程序锁 */ DCF_program(0x00000000, 0x00100120); /* LOCK0_PG2 */ DCF_program(0x00000000, 0x00100124); /* LOCK1_PG2 */ DCF_program(0x00000000, 0x00100128); /* LOCK2_PG2 */ DCF_program(0x00000000, 0x0010012C); /* LOCK3_PG2, [DBL=0] */ /* 密码组 1 - 程序锁 */ DCF_program(0x00000000, 0x00100130); /* LOCK0_PG3 */ DCF_program(0x00000000, 0x00100134); /* LOCK1_PG3 */ DCF_program(0x00000000, 0x00100138); /* LOCK2_PG3 */ DCF_program(0x00000000, 0x0010013C); /* LOCK3_PG3, [DBL=0] */ /**************************/ /* 程序审查 DCF */ /**************************/ DCF_program(0x00000000, 0x001000B0); /* 启用 != 0x55AA 的审查 */ /*************************/ /* 程序生命周期 */ /*************************/ /* 从客户交付到原始设备制造商生产的提前生命周期 */ flash_program(0x00400218, 0x55AA50AF, 0x55AA50AF);/* Invalidate CustomerDel*/ flash_program(0x00400220, 0x55AA50AF, 0x55AA50AF);/* 验证 OEMProduction*/ } Re: MPC5746R JTAG PASSWORD 你好
您的脚本无法启动擦除。这通常是因为调试器的闪存初始化不正确。
检查 flash.list,查看块是否已正确初始化,是否未受写保护。
您也可以使用劳特巴赫中嵌入的脚本来擦除设备。你可以在税务摊销收益下拉菜单中找到它 mpc5xxx。
但一般情况下,如果在使用第三方工具时出现问题,我们建议联系劳特巴赫支持中心。
随函附上我对 MPC5746R 设备进行闪存擦除的简单脚本。
顺祝商祺!
Peter Re: MPC5746R JTAG PASSWORD 运行该脚本后,劳特巴赫显示"FLASH 擦除错误" 和函数 void debug_lock(): void debug_lock() { /*************************/ /* 程序密码 */ /*************************/ /* 编程 JTAG 密码 */ flash_program(0x00400120,JTAG_PASSWORD_0,JTAG_PASSWORD_1); flash_program(0x00400128,JTAG_PASSWORD_2,JTAG_PASSWORD_3); flash_program(0x00400130,JTAG_PASSWORD_4,JTAG_PASSWORD_5); flash_program(0x00400138,JTAG_PASSWORD_6,JTAG_PASSWORD_7); /* 编程 PASS 第 0 组密码 */ flash_program(0x00400140, PASSWORD_PG0_0, PASSWORD_PG0_1); flash_program(0x00400148, PASSWORD_PG0_2, PASSWORD_PG0_3); flash_program(0x00400150, PASSWORD_PG0_4, PASSWORD_PG0_5); flash_program(0x00400158, PASSWORD_PG0_6, PASSWORD_PG0_7); /* 编程 PASS 第 1 组密码 */ flash_program(0x00400160, PASSWORD_PG1_0, PASSWORD_PG1_1); flash_program(0x00400168, PASSWORD_PG1_2, PASSWORD_PG1_3); flash_program(0x00400170, PASSWORD_PG1_4, PASSWORD_PG1_5); flash_program(0x00400178, PASSWORD_PG1_6, PASSWORD_PG1_7); /* 编程 PASS 第 2 组密码 */ flash_program(0x00400180, PASSWORD_PG2_0, PASSWORD_PG2_1); flash_program(0x00400188, PASSWORD_PG2_2, PASSWORD_PG2_3); flash_program(0x00400190, PASSWORD_PG2_4, PASSWORD_PG2_5); flash_program(0x00400198, PASSWORD_PG2_6, PASSWORD_PG2_7); /* 编程 PASS 第 3 组密码 */ flash_program(0x004001A0, PASSWORD_PG3_0, PASSWORD_PG3_1); flash_program(0x004001A8, PASSWORD_PG3_2, PASSWORD_PG3_3); flash_program(0x004001B0, PASSWORD_PG3_4, PASSWORD_PG3_5); flash_program(0x004001B8, PASSWORD_PG3_6, PASSWORD_PG3_7); /*************************/ /* PROGRAM PASS DCFs */ /*************************/ /* 密码组 0 - 程序锁 */ DCF_program(0x00000000, 0x00100100); /* LOCK0_PG0 */ DCF_program(0x00000000, 0x00100104); /* LOCK1_PG0 */ DCF_program(0x00000000, 0x00100108); /* LOCK2_PG0 */ DCF_program(0x40000000, 0x0010010C); /* LOCK3_PG0 [DBL=1] */ /* 密码组 1 - 程序锁 */ DCF_program(0x00000000, 0x00100110); /* LOCK0_PG1 */ DCF_program(0x00000000, 0x00100114); /* LOCK1_PG1 */ DCF_program(0x00000000, 0x00100118); /* LOCK2_PG1 */ DCF_program(0x00000000, 0x0010011C); /* LOCK3_PG1, [DBL=0] */ /* 密码组 1 - 程序锁 */ DCF_program(0x00000000, 0x00100120); /* LOCK0_PG2 */ DCF_program(0x00000000, 0x00100124); /* LOCK1_PG2 */ DCF_program(0x00000000, 0x00100128); /* LOCK2_PG2 */ DCF_program(0x00000000, 0x0010012C); /* LOCK3_PG2, [DBL=0] */ /* 密码组 1 - 程序锁 */ DCF_program(0x00000000, 0x00100130); /* LOCK0_PG3 */ DCF_program(0x00000000, 0x00100134); /* LOCK1_PG3 */ DCF_program(0x00000000, 0x00100138); /* LOCK2_PG3 */ DCF_program(0x00000000, 0x0010013C); /* LOCK3_PG3, [DBL=0] */ /**************************/ /* 程序审查 DCF */ /**************************/ DCF_program(0x00000000, 0x001000B0); /* 启用 != 0x55AA 的审查 */ /*************************/ /* 程序生命周期 */ /*************************/ /* 从客户交付到原始设备制造商生产的提前生命周期 */ flash_program(0x00400218, 0x55AA50AF, 0x55AA50AF);/* Invalidate CustomerDel*/ flash_program(0x00400220, 0x55AA50AF, 0x55AA50AF);/* 验证 OEMProduction*/ } Re: MPC5746R JTAG PASSWORD 你好
问题 1:
我用 void debug_lock()函数锁定了 Jtag,然后如何用其他函数解锁 Jtag?
不知道什么是 debug_lock ();但是要取消审查设备,你只需将 0x55AA 的 DCF 记录添加到审查 DCF 中即可。
问题 2:
Lauterbach 可以通过 sys.option.KEYCODE连接 MPC5746R,但不能对闪存编程,谁能举例说明?
嗯,这很奇怪。你在编程脚本中执行RESET吗?某些设备在执行 RESET 时出现丢失密钥的问题。
试试这个脚本。我已经从中删除了RESET功能。
请进一步参阅 PASS AN,了解审查制度是如何运作的。这个设备也是一样的。
https://www.nxp.com/docs/en/application-note/AN12092.pdf
顺祝商祺!
Peter
查看全文