NXP MCU 技术william hill官网
直播中

蔡鼎瑾

7年用户 1016经验值
私信 关注
[问答]

如何将多个.elf文件刷入S32K116?

我正在尝试使用 pegdb 控制台、bootloader.elf 和 app.elf 将 2 个 .elf 文件闪存到 S32K116。
以下是我正在执行的步骤:使用命令“ pegdbserver_console.exe -startserver -device= NXP_S32K1xx_S32K116F128M4”

启动 gdb 服务器
然后使用 arm-none-eabi-gdb.exe,我连接到 S32K116 并尝试使用命令“ arm-none-eabi-gdb.exe --command=load_sw.txt”刷新 .elf 文件

load_sw.txt 的内容是:
    设置样式启用关闭
    文件 bootloader.elf
    目标远程 localhost:7224
    设置分页关闭
    echo \n \t [OK] STEP-1:连接到设备 \n
    load bootloader.elf
    echo \n \t [OK] STEP-2:FLASHED BOOTLOADER \n
    load app.elf
    echo \n \t [OK] STEP-3 : FLASHED APPLICAtiON \n
    continue
    quit
执行命令时,我只能看到应用程序正在运行,因为引导加载程序不会打印其日志。我的猜测是我遗漏了一些东西,所以 app.elf 覆盖了内存区域。可以看到.ld文件中定义的内存区域
应用内存区:
MEMORY
{
/* Flash */
m_interrupts (RX) : ORIGIN = 0x0000C000, LENGTH = 0x000000C0
m_flash_config (RX) : ORIGIN = 0x0000C200, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x0000C210, LENG TH = 0x00013FFF
/* SRAM_L */
m_custom (RW) : ORIGIN = 0x1FFFFC00, LENGTH = 0x00000400
/* SRAM_U */
m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x000020C0
m_data_2 (RW) : ORIGIN = 0x200020C0, L英文 = 0x00001740
}
------
引导加载程序内存区域:
MEMORY
{
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x000000C0
m_flash_config (RX) : ORIGIN = 0x00000200, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00000210, LENG TH = 0x00000BBEF
/* SRAM_L */
m_custom (RW) : ORIGIN = 0x1FFFFC00, LENGTH = 0x00000400
/* SRAM_U */
m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x000020C0
m_data_2 (RW) : ORIGIN = 0x200020C0, L英文 = 0x00001740
}
你认为这个问题可能是什么问题?
在模块中保留第一个加载的 .elf 内存区域时我是否遗漏了什么,或者我在指定内存区域时犯了错误?

更多回帖

发帖
×
20
完善资料,
赚取积分