大家好:
我 的用户引导加载程序项目切换到 应用程序项目时遇到问题。
有人可以帮助我吗? 谢谢
My App 项目随 TI-RTOS 一起运行
应用项目.cmd
入口点符号:"_c_int00" 地址:00003501
内存
{
闪存(RX):origin = 0x00000000,length = 0x0003d800
SRAM (rwx):origin = 0x20000000,length = 0x00008000
}//
段中的段分配
{
.text:> FLASH
.const:> FLASH
.cinit:>闪存
.pinit:> FLASH
init_array:> FLASH
.data :> SRAM
.bss:> SRAM
.sysmem:> SRAM
.stack:> SRAM
}
引导加载程序 projcet .cmd
入口点符号:"_c_int00" 地址:0003dd7d
#define APP_BASE 0x0003d800
#define RAM_BASE 0x20000000
//系统内存映射*/
MEMORY
{
/*存储在内部闪存中并从内部闪存执行的应用程序*/
闪存(RX):origin = app_BASE,length = 0x00002800
/*应用程序使用内部 RAM 进行数据*/
SRAM (rwx):origin = 0x20000000,length = 0x00008000
}//
段中的段分配
{
.intvecs:> app_base
.text:> FLASH
.const:> FLASH
.cinit:>闪存
.pinit:> FLASH
init_array:> FLASH
.vtable:> RAM_base
.data :> SRAM
.bss:> SRAM
.sysmem:> SRAM
.stack:> SRAM
}
__stack_top =__stack + 512;
如何切换这些项目?
以下是我的代码、但不起作用
void JumpToBootLoader (void) { // //禁用所有处理器中断。 而不是禁用它们 //一次一个,直接写入 NVIC 即可禁用所有功能 //外设中断。 // HWREG (NVIC_DIS0)= 0xffffffff; HWREG (NVIC_DIS1)= 0xffffffff; // //将控制权返回给引导加载程序。 这是对 SVC 的调用 //引导加载程序中的处理程序。 // (*(void (*)(void))(*(uint32_t *) 0x0003dd7d))); }
void JumpToBootLoader (void) { // //禁用所有处理器中断。 而不是禁用它们 //一次一个,直接写入 NVIC 即可禁用所有功能 //外设中断。 // HWREG (NVIC_DIS0)= 0xffffffff; HWREG (NVIC_DIS1)= 0xffffffff; // //将控制权返回给引导加载程序。 这是对 SVC 的调用 //引导加载程序中的处理程序。 // (*(void (*)(void))(*(uint32_t *) 0x00003501)))(); }