本帖最后由 pvtang 于 2017-3-7 11:23 编辑
我采用M051BSPv3.01.001的demo实现了LDROM跳转到APROM,APROM跳转到LDROM。
但是一模一样的移植代码,在前人的代码里面就是跑不起来!
在Keil中的步骤:
1. LDROM代码下载时,在2楼那张图界面 Falsh Select 选择LDROM,Download 选择是Erase Sectors ,Configure 的BootOption选择 LDROM 。
2. APROM代码下载时,在2楼那张图界面 Falsh Select 选择APROM,Configure 的BootOption选择 LDROM。
//这个放在APROM工程运行
void Jump2LDROM(void)
{
SYS_UnlockReg();
outpw(&SYS->RSTSRC, 3);//clear bit
outpw(&FMC->ISPCON, inpw(&FMC->ISPCON) |0x03);
outpw(&SCB->AIRCR, (V6M_AIRCR_VECTKEY_DATA | V6M_AIRCR_SYSRESETREQ));
/* Trap the CPU */
while(1);
}
//这个放在LDROM工程运行
void Jump2APROM(void)
{
SYS_UnlockReg();
outpw(&SYS->RSTSRC, 3);//clear bit
outpw(&FMC->ISPCON, inpw(&FMC->ISPCON) & 0xFFFFFFFC);
outpw(&SCB->AIRCR, (V6M_AIRCR_VECTKEY_DATA | V6M_AIRCR_SYSRESETREQ));
/* Trap the CPU */
while(1);
}
//两个程序运行前都要时钟的初始化,开使能位
CLK->AHBCLK |= CLK_AHBCLK_ISP_EN_Msk;
FMC->ISPCON |= FMC_ISPCON_ISPEN_Msk;
ICP工具下载也是一样的,载入LDROM和APROM程序,配置位选择从LDROM启动,烧写的时候勾线,LDROM,APROM,配置位,下载就行辣。
BTW:吐槽一波,官方文档《IAP Application Note V1.10》,好像是没有更新。想做大公司,技术大家都差不太多,文档等支持工作还是得跟上来!
|