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.
Support:
cware2000:C2000Ware_3_04_00_00
因为需要使用emif通讯,所以想将芯片的boot模式改为zero boot mode .按照论坛中的介绍:TMS320F28388D: How to set the boot mode of the chip to “Zero boot mode select pins” - C2000 microcontrollers forum - C2000︎ microcontrollers - TI E2E support forums
非常麻烦,我想直接通过修改寄存器的值进行配置。但是我发现寄存器中的值修改不了。不知道为什么。
如果是TI官方的话出厂应该不会编程过OTP。我看到bmsp0的值是90,正常应该是0xFF,也就是255。有可能已经被修改过了。
你可以看一下芯片TRM的5.4.3 Boot Mode Example Use Cases,里面有举例如何修改Zero Boot Mode Select Pins
按照5.4.3 Boot Mode Example Use Cases说明,重新买了两个开发板
并且对应上图中的这两个寄存器中的值为FFFFFFFF初始值。
按照5.4.3 Boot Mode Example Use Cases操作说明执行如下操作
1、
#define ZEROBOOT 0x5F008 //Z1-BOOTPINCONFIG 改写为 0x78008也试过
#define BOOTDEF 0x5F00C //Z1-BOOTDEF-LOW 改写为 0x7800C也试过
2、
typedef struct bootconfigdef
{
uint32_t bmsp0:8;
uint32_t bmsp1:8;
uint32_t bmsp2:8;
uint32_t key:8;
} BOOTPINCONFIG;
typedef struct BootDefStru
{
uint32_t BOOT_DEF0:8;
uint32_t BOOT_DEF1:8;
uint32_t BOOT_DEF2:8;
uint32_t BOOT_DEF3:8;
}BOOTDEFStru;
BOOTPINCONFIG* BootpinConfig=(BOOTPINCONFIG*)ZEROBOOT ; //映射地址
BOOTDEFStru *BootDef = (BOOTDEFStru*)BOOTDEF;
3、main函数的初始化中设置
asm(" EALLOW");
BootpinConfig->key = 0x5A;
BootpinConfig->bmsp0 = 0xFF;
BootpinConfig->bmsp1 = 0xFF;
BootpinConfig->bmsp2 = 0xFF;
BootDef->BOOT_DEF0 = 0x03;
BootDef->BOOT_DEF1 = 0XFF;
BootDef->BOOT_DEF2 = 0XFF;
BootDef->BOOT_DEF3 = 0XFF;
asm(" EDIS");
结果:
值并未发生改变,不知道为何,应该是个挺简单的过程,辛苦帮忙分析一下。
你好,推荐你试一下TI的C2000 DCSM Security Tool工具。
你可以先参考一下例程:C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f2838x\examples\c28x\dcsm
和文档4.2 ZONE1/ZONE2 Header Submodule的说明:https://www.ti.com.cn/cn/lit/an/spracp8a/spracp8a.pdf
我按照文档配置的如下DCSM模块,但是因为是要写入OTP的,所以没有测试,你可以参考测试一下: