你(们)好
需要代码保护。 还需要能够使用引导加载程序通过 UART 更新固件。 为此、我决定使用 DCSM。
第一个实验成功但未完成。 完成了什么。
第一 个实验。
在文件 F2805x_DCSM_Z1_ZoneSelectBlock.asm 和 F2805x_DCSM_Z2_ZoneSelectBlock.asm 中、我仅更改了 Z1-CSMPSWD0 - CSMPSWD3和 Z2-CSMPSWD0 - CSMPSWD3。 看起来是这样的:
.sect "Dcsm_otp_Z1"
长整型0xFFFFFFFF;Z1-LINKPOINTER
长整型0xFFFFFFFF;OTPSECLOCK
长整型0xFFFFFFFF;引导模式
.sect "Dcsm_zsel_Z1"
长0xFFFFFFFF;Z1-EXEONLYRAM
长0xFFFFFFFF;Z1-EXEONLYSECT
长整型0xFFFFFFFF;Z1-GRABRAM
长0xFFFFFFFF;Z1-GRABSECT
长整型0x8844FFFA;Z1-CSMPSWD0 (128位密码的 lsw)
长0xAFEEF4;Z1-CSMPSWD1
长整型0xCC55FF21;Z1-CSMPSWD2
长0x3245FF66;Z1-CSMPSWD3 (128位密码的 MSW)
.sect "Dcsm_otp_Z2"
长整型0xFFFFFFFF;Z2-LINKPOINTER
长整型0xFFFFFFFF;OTPSECLOCK
.sect "Dcsm_zsel_Z2"
长0xFFFFFFFF;Z2-EXEONLYRAM
长0xFFFFFFFF;Z2-EXEONLYSECT
长整型0xFFFFFFFF;Z2-GRABRAM
长整型0xFFFFFFFF;Z2-GRABSECT
长整型0x44FF56FA;Z2-CSMPSWD0 (128位密码的 LSW)
长0x35F54FFC;Z2-CSMPSWD1
长整型0x95FF77FF;Z2-CSMPSWD2
长整型0xFFFDEFFA;Z2-CSMPSWD3 (128位密码的 MSW)
我还在文件 f28055.gel 中写入这些密码、并写入 Debug Configurations > Target > F28055 Flash Settings 中。
在这些设置下、一切都正常。 我对器件进行编程、然后再次启动并编程。 没有按键、我就无法读取闪存。
2.第二个实验。
我在 Z1中更改了 GRABSECT、在 Z1中也更改了引导模式。 它看起来是这样的。
.sect "Dcsm_otp_Z1"
长整型0xFFFFFFFF;Z1-LINKPOINTER
长整型0xFFFFFFFF;OTPSECLOCK
long 0xFEC5F9F4;引导模式
.sect "Dcsm_zsel_Z1"
长0xFFFFFFFF;Z1-EXEONLYRAM
长0xFFFFFFFF;Z1-EXEONLYSECT
长整型0xFFFFFFFF;Z1-GRABRAM
长0x99ECF67F;Z1-GRABSECT
长整型0x8844FFFA;Z1-CSMPSWD0 (128位密码的 lsw)
长0xAFEEF4;Z1-CSMPSWD1
长整型0xCC55FF21;Z1-CSMPSWD2
长0x3245FF66;Z1-CSMPSWD3 (128位密码的 MSW)
.sect "Dcsm_otp_Z2"
长整型0xFFFFFFFF;Z2-LINKPOINTER
长整型0xFFFFFFFF ;OTPSECLOCK
.sect "Dcsm_zsel_Z2"
长0xFFFFFFFF;Z2-EXEONLYRAM
长0xFFFFFFFF;Z2-EXEONLYSECT
长整型0xFFFFFFFF;Z2-GRABRAM
长0x99ECF67F;Z2-GRABSECT
长整型0x44FF56FA;Z2-CSMPSWD0 (128位密码的 LSW)
长0x35F54FFC;Z2-CSMPSWD1
长整型0x95FF77FF;Z2-CSMPSWD2
长整型0xFFFDEFFA;Z2-CSMPSWD3 (128位密码的 MSW)
我还使用 新数据更改了调试配置>目标> F28055闪存设置。
我成功对器件进行编程一次、程序启动。 当我第二次尝试重新编程时、器件被擦除、我无法对其进行编程的程度越高。 在所有实验中、使用了一个芯片和 XDS100V2。
3.Еhird 实验。
我使用了另一个器件、使用 XDS100V2进行了最新的更改编程。 器件已编程并成功启动。 我在被调试的器件上使用 CCS 的存储器浏览器读取闪存后立即执行。 器件已复位、不再启动且未编程。
不幸的是,我无法独立理解我需要做的事情的原因和方法。
请告诉我如何实现我的目标?