如何在 ARM Cortex M0 设备中使用 JLink 对引导加载程序区域进行编程

Posted

技术标签:

【中文标题】如何在 ARM Cortex M0 设备中使用 JLink 对引导加载程序区域进行编程【英文标题】:How to program the bootloader area with JLink in an ARM Cortex M0 device 【发布时间】:2021-08-24 07:09:54 【问题描述】:

我正在尝试使用 JLink 和 JFlash 对 NUC240SE3AE 设备的引导加载程序区域进行编程,但出现错误消息:

"ERROR: Selected Data (0x100000 - 0x100FFF) does not fit into selected flash sectors." 

芯片确实实现了该区域,但正如我在 Segger 的设备数据库中发现的那样:

此设备只有一个闪存库,

缺少主应用程序区域和引导加载程序的第二个区域。

所以我的问题是:有解决方法吗?如何对闪存区域进行编程?

【问题讨论】:

你在 Segger 论坛上问过吗?根据我的经验,他们的工程师反应迅速,Segger 定期发布软件和固件更新(包括 Beta 版本)。 forum.segger.com/index.php/Board/3-J-Link-Flasher-related 【参考方案1】:

MCU的技术参考手册System Memory Map部分证明内存范围0x100000 - 0x100FFF没有实现。

这意味着 flasher 或 linker 的配置不正确。请提供这两个配置以供进一步调查。 另外,固件来源是什么?

【讨论】:

我多年来一直在使用这个部件。在 0x001000000-0x00101FFF 之间闪存中有一个称为 LDROM 的区域。请再次检查手册。它位于文件 TRM_NUC230_240_Series_EN_Rev1.03.pdf 的第 178 页上。可以用 Keil 和 nuvoton 自己的工具编程,但不能用 Segger 的命令行工具。 那么请提供 JFlash 配置以供进一步调查。屏幕截图也会有所帮助。

以上是关于如何在 ARM Cortex M0 设备中使用 JLink 对引导加载程序区域进行编程的主要内容,如果未能解决你的问题,请参考以下文章

基于ARM Cortex M0 核心的巨微MS1793S低功耗蓝牙芯片

单片机行业经常提到的M0 M1 M2 M3 M4 M7指的是啥

灵动微电子ARM Cortex M0 MM32F0010 Timer定时器中断定时功能的配置

ARM

ARM (Cortex M3) 的应用内编程如何工作?

如何在 Cortex M0+ 上使用链接描述文件复制中断向量表?