当前位置:首页 > 单片机 > 单片机
[导读]bootloader设置:static void check_boot_mode(void){uint32_t JumpAddress;void(*Jump_To_Application)(void);if (((*((__IO uint32_t*)(APP_SEGA_START_ADDRESS+8))) & 0x2FFE0000 ) == 0x20000000){JumpAddress =

bootloader设置:

static void check_boot_mode(void)

{

uint32_t JumpAddress;

void(*Jump_To_Application)(void);

if (((*((__IO uint32_t*)(APP_SEGA_START_ADDRESS+8))) & 0x2FFE0000 ) == 0x20000000)

{

JumpAddress = *(__IO uint32_t*) (APP_SEGA_START_ADDRESS + 12);

Jump_To_Application = (void *)JumpAddress;

__set_MSP(*((__IO uint32_t*) (APP_SEGA_START_ADDRESS+8)));

Jump_To_Application();

}

}

application设置:

const uint8_t eh[8] __attribute__((at(0x08004000)));这个是使应用代码加载首地址向后推移8字节;

下图是应用代码加载地址和内存设置:

下面是中断向量表映射配置:

#define APPLICATION_ADDRESS (uint32_t)0x08004008

__IO uint32_t VectorTable[48] __attribute__((at(0x20000000)));

for(i = 0; i < 48; i++)

{

VectorTable[i] = *(__IO uint32_t*)(APPLICATION_ADDRESS + (i<<2));

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭