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.
我从资料上看到F28377的BOOT MODE由GPIO84 和72决定,然后The boot mode pins are configurable by user by programming proper OTPKEY,意思应该是这两个脚可以换成别的脚,是吗。然后我的GPIO84和72用去做其他用处了,当时没考虑到BOOT的选择问题(现在芯片认为不是FLASH mode),我该怎么办
是的,你可以通过编程OTP里的BOOTCTRL寄存器任意指定两个GPIO来代替默认的GPIO72/84,请查看TRM的3.10 Boot Modes Supported on CPU1章节。
可以说的详细点吗,谢谢了
我在CMD里面找的的,是这个地方吗
DCSM_Z1 : origin = 0x05F000, length = 0x000030 /* Zone 1 Dual code security module registers */
DCSM_Z2 : origin = 0x05F040, length = 0x000030 /* Zone 2 Dual code security module registers */
DCSM_COMMON : origin = 0x05F070, length = 0x000010 /* Common Dual code security module registers */
DCSM_Z1_OTP : origin = 0x078000, length = 0x000020 /* Part of Z1 OTP. LinkPointer/JTAG lock/ Boot Mode */
DCSM_Z2_OTP : origin = 0x078200, length = 0x000020 /* Part of Z2 OTP. LinkPointer/JTAG lock */
该怎么改
请先看文档关于这个功能的详细描述,理解清楚了再操作。
上面提到的TRM (SPRUHM8) 的3.10 Boot Modes Supported on CPU1章节里,从The following modes are available when TRSTn = 0.开始,都是有关的详细说明。
你需要通过DCSM_Z1_ZoneSelectBlock.asm文件更改Z1-BOOTCTRL寄存器的值的配置:
C:\ti\controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Cpu1\blinky_with_DCSM\cpu01
好像不行的,如果把OTPBOOTCTRL里面的Z1-BOOTCTRL更改了,比如改为0x0203815A。 这样修改,是选择 GPIO1和GPIO2作为boot选择.
上电后,判断是0x5A会进入选择状态,依据 GPIO1和GPIO2的状态:
Boot Mode = 0 -> Parallel Boot Mode
Boot Mode = 1 -> SCIBOOT Mode
Boot Mode = 2 -> WAIT BOOT Mode
Boot Mode = 3 -> GET MODE (read OTP Boot Mode values)
如果这两个引脚上电时都为1, 才会进入get mode,然后才会根据0x81选择SCIBOOT1,可以通过GPIO28,GPIO28下载.
但是这么设置之后,由于是修改了OTP(不能在修改回来)烧录完程序之后,如果重新上电只能进入SCIBOOT1.没法进入直接flash运行程序.
除非是想每次都从SCIBOOT1,然后,先下载一个程序(比如到RAM),运行后,再去执行flash中的程序.
不太清楚TI这么设计的初衷.