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.
28388D默认的boot引脚是GPIO72和GPIO84
由于设计失误,没有向官方控制卡那样对这两个两个引脚加上下拉电阻及拨码开关
上图为28388D控制卡的boot模式选择部分的设计
看到TRM手册中有如下描述:
从相关章节的描述看 上述的操作不是太复杂 不过我没有在C2000ware里找到相关的例程
我想将启动模式修改成这部分描述的那样,不靠外部管脚配置,只有一种启动模式,Flash启动就可以,我的应用里对启动没有太多要求
问题1.请问TI工程师,C2000Ware里面有5.4.3.1.章节对应的例程吗?对diverlib目前使用还不是太熟,找相关的上层函数有些吃力
问题2.修改启动模式要操作OTP,一次性可编程是指只能对该区域修改一次吗,即便是操作失误?
问题3.如果将boot模式修改为5.4.3.1章节描述的那这样,会影响JTAG在线连接器件(C281、C282、CLA及CM)吗?会影响工程的JTAG调试吗?
您好,
1. 您参考一下Table 5-9. CPU1 BOOTPINCONFIG Bit Fields:
spruii0d_TMS320F2838x Real-Time Microcontrollers With Connectivity Manager TRM (Rev. D)
按照5.4.3.1 Zero Boot Mode Select Pins所述修改相应寄存器位即可;
2. 是的;
3. 不会。
C:\ti\c2000\C2000Ware_4_01_00_00\driverlib\f2838x\examples\c28x\boot
C:\ti\c2000\C2000Ware_4_01_00_00\libraries\boot_rom\f2838x
这两个路径下的例程您可以参考一下。
您好 您指出的两个路径下的工程
C:\ti\c2000\C2000Ware_4_01_00_00\driverlib\f2838x\examples\c28x\boot 是关于secure flash boot的
C:\ti\c2000\C2000Ware_4_01_00_00\libraries\boot_rom\f2838x是关于bootlaoder相关的例程,这个我没有太仔细的看,不知道理解的对不对,看到文件夹下的子文件夹比较多
对我来讲 这两个路径下的工程似乎都是复杂些,我最终找到了\TI\c2000ware\C2000Ware_4_01_00_00\driverlib\f2838x\examples\c28x\dcsm文件夹下的dcsm_security_tool例程
导入工程后,勾选dcsm_security_tool.syscfg的Configure Boot Setting可以比较方便的调整boot方式
不过今天手边没有28388的控制卡,但是有一块28379的LaunchPad,28379也有一个类似的dcsm_security_tool工程:
我把ZONE 1的boot control pin1也改成了GPIO84,在active ram的模式下编译并烧录工程,
问题1. 不过虽然是在active ram下编译和烧录的,看到烧录过程中缺擦除了flash,默认的launchpad例程被擦除了,这是为什么呢?
烧录完成后CCS的状态如下:
问题2. 请问例程烧录后的这个状态 是正常的吗?
随后,我重新烧录了LaunchPad例程,从最终的调试结果看,boot确实和GPIO72无关了
将拨码开关中间off(默认三个都是on的状态)即将GPIO72置为0,每次按电路板的复位按键,例程都能跑起来,不会卡在SCIboot模式,证明改动是生效的,这样改动以后,boot flash只和GPIO84的状态相关。
调试过程中遇到这样一个现象,将GPIO84对应的拨码同样置为off,连接usb线缆,代码可以正常跑起来,但是按复位键之后,就无法启动了。复位后无法启动应该是因为GPIO84置低,但是将GPIO84置低后每次连接USB线缆代码能正常启动是为什么呢?这是问题3.
当我想改回之前boot模式的默认配置时,再次烧录dcsm_security_tool工程出现如下错误:
问题4.请问这是因为OTP只能被操作一次导致的吗?不过我不确定调试的时候是不是仅仅烧录了一次该工程,记不太清楚了
1. 您可以看一下工程的配置,看是否选择了擦除Flash;
2. 正常的。首先,右上角的变量应该是调试其它工程添加的;其次,在暂停时,PC指向某些函数内部,但是这些函数中没有办法打断点,或者其它的原因,所以就会出现屏幕中间左边的信息;
3. 调试的boot流程和standalone的boot流程不一样,在spruhm8i_TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual (Rev. I)的4.8 Device Boot Flow Diagrams有详细介绍。
4. 如果使用的是仿真器,那么操作的就是仿真OTP,可以多次修改;如果操作的是芯片的OTP,则只能修改一次:
对于您的答复1 您能说明下是在哪里查看吗 我在工程属性里没有找到
对于您的答复3,我觉得之所插上仿真器能启动,可能是由于以下原因吧:
第一、仿真器连接状态下我看了下EMU OTP的内容如下:
key是5A 模式是00 满足黄色高亮的“If an emulator is not connected with the boot mode selected to "Get Mode" boot,”,即仿真器连接状态下的模式不是get mode
第二、OTP的内容如下
0B 说明设置了flash启动模式,0x5555,说明启动相关的俄pin1和pin0都是GPIO84,但是我在插USB线的时候 断开了GPIO84的拨码,因此满了绿色高亮的“invalid OTP configured boot mode”
以上两点,导致了flash启动成功。
1.
2. 连接仿真器之后应该是查看EMU_BOOTCTRL。boot pin select, key, 以及boot mode都是查看EMU_BOOTCTRL(0x0D00开始的32位)。
高亮这部分的意思是,如果通过boot pin没有选择另外3种boot mode,而是选择的"Get mode",那么无效的EMU_BOOTCTRL.key或bmode value将会引起flash mode。