TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C28346外扩程序存储器加密方案

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

Jones Chen:

1. 对于外扩芯片,很难实现加密。除非用单独的加密芯片。

2. 如果用加密芯片,需要在BootLoader中进行解密。其实这也不是最安全的,因为BootLoader也是可能被绕过去的。

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

user1450658:

回复 Jones Chen:

如果无法对程序进行加密的话,那使用28346进行系统设计则会很不安全。

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

Jones Chen:

回复 user1450658:

其实C5000, C6000 只要是Flash不在片内的都存在相同的问题。

如果希望选择片内Flash,可以考虑F28335.

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

user1450658:

回复 Jones Chen:

正是有些应用场合28335的150MHz主频不够,所以才考虑28346的,但是没想到会有这样的问题。

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

BIN YAO1:

回复 Jones Chen:

请问  如何通过I2C模式将程序写入EEPROM中呢?  刚接触DSP  很多问题不是很懂

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

Jones Chen:

回复 BIN YAO1:

通过IIC写EEPROM,可以参考下面的代码历程:

Uint16 I2C_Self_Test(void)

{

 Uint16 temp,devID,len;

 Uint32 i,j,start_addr,num_page;

 Uint16 status;

 if (HAL_I2C_hnd.boardRev==BOARD_REV_PREV_D)

   return HAL_I2C_ST_NO_EEPROM;

 devID = I2C_AT24C1024B_CHIP_1;    // first Chip

 len   = I2C_AT24C1024B_PAGE_SIZE; // number of bytes

 num_page = I2C_AT24C1024B_CAPACITY/I2C_AT24C1024B_PAGE_SIZE;

 start_addr = 0x0;

 for (j=0;j<num_page;j++)

 {

   I2C_hnd.test_addr = start_addr;

   //generate the ramp data pattern

   for (i=0;i<len/2;i++)

   {

     temp = 2*i + ( (2*i +1)<<8);

     i2c_test_data[i] = temp;

   }

   // write data to EEPROM

   status = I2C_Write_DataBuf(devID,start_addr,len,i2c_test_data,0);

   if (status!=HAL_I2C_ST_SUCCESS)

     return status;

   memset(i2c_test_data,0xFF,sizeof(i2c_test_data));

   // read the data back

   status = I2C_Read_DataBuf(devID,start_addr,len,i2c_test_data,0);

   if (status!=HAL_I2C_ST_SUCCESS)

     return status;

   // verify the data

   for (i=0;i<len/2;i++)

   {

     temp = 2*i + ( (2*i +1)<<8);

     if (temp!=i2c_test_data[i])

       return HAL_I2C_ST_WRITE_READ_FAIL;

   }

   start_addr +=len;

 }

 return HAL_I2C_ST_SUCCESS;

}

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

BIN YAO1:

回复 Jones Chen:

TI的例程中也有一个通过I2C将数据写入EEPROM中的,请问两者有什么区别吗?  另外,如果我想将例程中的LEDBlink写入EEPROM中,怎么样将程序而不是数据写入EEPROM?

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

Jones Chen:

回复 BIN YAO1:

两个程序都是差不多的。你参考哪个都可以。

需要将程序变成2进制码,像放数据一样存放到EEPROM中。

 

问题描述:

1、由于28346芯片不带片内FLASH,所以芯片上电后需要通过Boot ROM从片外的FLASH/EEPROM导入程序代码;

2、由于程序代码需要保存在片外的FLASH/EEPROM中,所以就必须考虑在外扩存储器中代码的安全,为此我参考了TI的文档《Programming
External Nonvolatile Memory Using SDFlash for TMS320C28x Devices》、《TMS320x2834x
Delfino Boot ROM Reference Guide》、《tms320c28346 data
manual》,这些文档提供了如何实现外扩程序存储器的方案,但是关于代码安全只是在《tms320c28346 data
manual》中提到说经过加密后28346片内的某些内存区域不可以通过外部方式访问。如下图所示。也没有提及如何保护外部存储器中代码的安全。
疑问:

1、对于TMS320C28346这款芯片,如何保证外扩程序存储器FLASH/EEPROM中代码的安全?

2、如果选用带加密的FLASH/EEPROM来存储程序(当然我现在还没有找到这种芯片),那么28346在上电load程序时,28346如何进行解密呢?

 

BIN YAO1:

回复 Jones Chen:

是用hex2000将.out文件转换为.a00文件吗?  如何使用.a00文件呢?  而且例程中的I2C有字长限制的吧,不能超过FIFO的长度?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C28346外扩程序存储器加密方案
分享到: 更多 (0)