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

关于F28035在线升级程序的问题

最近在做F28035在线升级,查阅了写资料。大概思路如下:

分两个程序:A、启动程序; B、应用程序。

然后CMD文件,Flash主要分为2部分,扇区A存放启动程序、扇区B存放应用程序。各自常量都放在自己的分区

A程序:程序CMD的Begin部分为:BEGIN       : origin = 0x3F7FF6, length = 0x000002       (这是系统默认的启动存放位置)

B程序:程序CMD的Begein部分为:BEGIN       : origin = 0x3E8000, length = 0x000002      (这是存放应用程序扇区的起始地址)

[如下:应用程序CMD部分:

FLASHD : origin = 0x3E8002, length = 0x009FFE  /**40K –2Words*/
FLASHC : origin = 0x3F2000, length = 0x002000 /**8K**/
FLASHB : origin = 0x3F4000, length = 0x002000 /**8K** Boot-Pro*/
FLASHA : origin = 0x3F6000, length = 0x001F80 /* on-chip FLASH 7K+896words*/

CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x3E8000, length = 0x000002
CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */

]

我问题是:

1、正常扇区D,起始地址该是origin = 0x3E8000 ,为啥要加2,变为origin = 0x3E8002,Begin就不能和扇区D重复吗。反正擦除时候,是整个

扇区都要擦除,包括Begin部分。

2、由于每个扇区为8K(1024*8=8192),每次擦除/写入至少为一个扇区8K,那接收上位机二进制代码程序,缓存数组变量,深度至少要为8192,这样才能一次写入一页,如果分多次写,那岂不是后面每次写入时候,都要把前面的擦除掉。但是数组8192太大了,Saram根本不够啊。网上找资料都是存储深度为512,那都是怎么做的哦。

3、基本都是一上电,就判断是否串口升级,不是就跳入应用程序,这是否要求上位机反应很快,否则就升不了级了。

user5089339:4、还有,升级之前,启动程序已经初始化了串口或者CAN,以及一个必要函数:DINT;//Disable CPU interruptsInitPieCtrl();//Initialize PIE control registers to default state
IER = 0x0000;//Disable CPU interruptsIFR = 0x0000;//Clear all CPU intrrupt flags
InitPieVectTable();/*****************/memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
那在升级软件里面是否还有必要呢?

最近在做F28035在线升级,查阅了写资料。大概思路如下:

分两个程序:A、启动程序; B、应用程序。

然后CMD文件,Flash主要分为2部分,扇区A存放启动程序、扇区B存放应用程序。各自常量都放在自己的分区

A程序:程序CMD的Begin部分为:BEGIN       : origin = 0x3F7FF6, length = 0x000002       (这是系统默认的启动存放位置)

B程序:程序CMD的Begein部分为:BEGIN       : origin = 0x3E8000, length = 0x000002      (这是存放应用程序扇区的起始地址)

[如下:应用程序CMD部分:

FLASHD : origin = 0x3E8002, length = 0x009FFE  /**40K –2Words*/
FLASHC : origin = 0x3F2000, length = 0x002000 /**8K**/
FLASHB : origin = 0x3F4000, length = 0x002000 /**8K** Boot-Pro*/
FLASHA : origin = 0x3F6000, length = 0x001F80 /* on-chip FLASH 7K+896words*/

CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x3E8000, length = 0x000002
CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */

]

我问题是:

1、正常扇区D,起始地址该是origin = 0x3E8000 ,为啥要加2,变为origin = 0x3E8002,Begin就不能和扇区D重复吗。反正擦除时候,是整个

扇区都要擦除,包括Begin部分。

2、由于每个扇区为8K(1024*8=8192),每次擦除/写入至少为一个扇区8K,那接收上位机二进制代码程序,缓存数组变量,深度至少要为8192,这样才能一次写入一页,如果分多次写,那岂不是后面每次写入时候,都要把前面的擦除掉。但是数组8192太大了,Saram根本不够啊。网上找资料都是存储深度为512,那都是怎么做的哦。

3、基本都是一上电,就判断是否串口升级,不是就跳入应用程序,这是否要求上位机反应很快,否则就升不了级了。

Susan Yang:您可以参考一下F281x的串口烧程参考方案,这个是有详细例程的:

www.ti.com/…/spraaq2.pdf

以及

www.ti.com/…/sprabv4c.pdf

最近在做F28035在线升级,查阅了写资料。大概思路如下:

分两个程序:A、启动程序; B、应用程序。

然后CMD文件,Flash主要分为2部分,扇区A存放启动程序、扇区B存放应用程序。各自常量都放在自己的分区

A程序:程序CMD的Begin部分为:BEGIN       : origin = 0x3F7FF6, length = 0x000002       (这是系统默认的启动存放位置)

B程序:程序CMD的Begein部分为:BEGIN       : origin = 0x3E8000, length = 0x000002      (这是存放应用程序扇区的起始地址)

[如下:应用程序CMD部分:

FLASHD : origin = 0x3E8002, length = 0x009FFE  /**40K –2Words*/
FLASHC : origin = 0x3F2000, length = 0x002000 /**8K**/
FLASHB : origin = 0x3F4000, length = 0x002000 /**8K** Boot-Pro*/
FLASHA : origin = 0x3F6000, length = 0x001F80 /* on-chip FLASH 7K+896words*/

CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x3E8000, length = 0x000002
CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */

]

我问题是:

1、正常扇区D,起始地址该是origin = 0x3E8000 ,为啥要加2,变为origin = 0x3E8002,Begin就不能和扇区D重复吗。反正擦除时候,是整个

扇区都要擦除,包括Begin部分。

2、由于每个扇区为8K(1024*8=8192),每次擦除/写入至少为一个扇区8K,那接收上位机二进制代码程序,缓存数组变量,深度至少要为8192,这样才能一次写入一页,如果分多次写,那岂不是后面每次写入时候,都要把前面的擦除掉。但是数组8192太大了,Saram根本不够啊。网上找资料都是存储深度为512,那都是怎么做的哦。

3、基本都是一上电,就判断是否串口升级,不是就跳入应用程序,这是否要求上位机反应很快,否则就升不了级了。

user5089339:

回复 Susan Yang:

没找到答案。

赞(0)
未经允许不得转载:TI中文支持网 » 关于F28035在线升级程序的问题
分享到: 更多 (0)