gpt4 book ai didi

c - 从固件启动引导加载程序

转载 作者:行者123 更新时间:2023-11-30 15:36:12 25 4
gpt4 key购买 nike

我希望能够直接从代码启动引导加载程序,而无需将引脚置于高电平并重置微 Controller 来访问它。下面的想法是引导加载程序二进制文件存储在字符数组中。当 Start_BootLoader() 被调用时,引导加载程序被复制到 SRAM 中并执行。

但是,代码复制到 RAM 中,但当它尝试在我复制到的位置执行代码时,它什么也不做。

微。是 Energy Micro EFM32380f1024。我使用的下面的代码基于 Energy Micro 的应用说明 AN0042。

void Start_Bootloader(void)
{
/* Diable interrupts */
INT_Disable();

__set_MSP( ( 0x20000000 + sizeof( bootloader ) + 0x400 ) & 0xFFFFFFF0 );

/* Load the entire bootloader into SRAM. */

memcpy( (void*)0x20000000, bootloader, sizeof( bootloader ) );

/* Start executing the bootloader. */

BOOT_jump( *(uint32_t*)0x20000000, *(uint32_t*)0x20000004 );
}

最佳答案

代码附带了 ROM 和 RAM 链接器设置 - 但只有 RAM 版本可能适用于您的情况。尝试从二进制文件中读取第二个字(32 位小端) - 它应该指向 0x20000000 范围内的奇数地址,因为它是新的 PC 值。

关于c - 从固件启动引导加载程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22618959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com