基于IAP技術(shù)的ADuC702x固件升級(jí)方案
Bootloader程序下載需要注意以下兩點(diǎn):
本文引用地址:http://cafeforensic.com/article/119691.htm?、盉ootloader程序大小不能超過(guò)20kB;
?、睟ootloader程序固化時(shí),選擇“Erase Sectors”,不要選擇“Erase Full Chip”擦除整個(gè)存儲(chǔ)空間。
用戶應(yīng)用程序設(shè)計(jì)與固化
一、用戶應(yīng)用程序設(shè)計(jì)
首先在Keil軟件下新建一個(gè)工程,并選擇芯片型號(hào)為ADuC702x,且不拷貝startup文件。然后分別添加對(duì)應(yīng)源文件,在Keil環(huán)境中配置用戶應(yīng)用程序起始地址為0x00085000,大小0xA600;SRAM起始地址為0x00010040,大小為0x1FC0。
二、用戶應(yīng)用程序固化
用戶應(yīng)用程序固化也有兩種方式:UART和JTAG。JTAG下載可以使用ULINK系列仿真器;UART固化程序需要根據(jù)通訊協(xié)議格式編寫(xiě)PC機(jī)程序,下文中進(jìn)行具體描述。
用戶應(yīng)用程序下載需要注意以下兩點(diǎn):
1. 用戶應(yīng)用程序大小不能超過(guò)41.5kB;
2. 用戶應(yīng)用程序初始化時(shí),需要將中斷向量表拷貝到SRAM,然后將其映射到SM,代碼如下:
#dene SM_Start_Addr 0x00010000
unsigned long load_addr = SM_Start_Addr ;
unsigned char i ;
unsigned int VVVTEMP ;
for(i=0 ;i<32 ;i++)
{
VVVTEMP = load(0x85000+i*2) ;
*((unsigned char *)load_addr++) = (unsigned char)(VVVTEMP>>0) ;
*((unsigned char *)load_addr++) = (unsigned char)(VVVTEMP>>8) ;
}
REMAP = 0x01 ;//將REMAP寄存器最低位置1
評(píng)論