embedded - trace32 data.load.elf 错误“验证地址 NSX:0x8000 处的错误”
问题描述
这是我第一次使用 Trace32,当我尝试执行此命令时,我试图在 arm 目标上刷新一个简单的 C 程序(据我所知,此命令会刷新目标但不确定?)。
d.load.elf image.axf /Verify /ComPare
我收到以下错误:
验证地址 NSX:0x8000 处的错误
我使用以下命令来编译和链接代码:
armclang --target=aarch64-arm-none-eabi hellofunc.c hellomake.c -g -fdata-
sections -ffunction-sections -c
armlink --entry=0x8594 hellofunc.o hellomake.o --output=image.axf
如何刷新代码并进行调试?逐步执行每条指令
谢谢
解决方案
如果闪存已经编程,则不能对其进行编程 - 必须先将其擦除。请参阅Trace32 文档的第 93 页。此外,在您编程之前尝试compare
将文件写入闪存总是会失败!
您需要擦除闪存并启用闪存进行编程。例如:
FLASH.Erase ALL
FLASH.Program ALL
Data.load.elf image.axf /Verify
FLASH.Program off
请注意,如果除了要编程/调试的代码之外,您还有其他数据或闪存中的引导加载程序,则 Erase.ALL 可能不合适。
推荐阅读
- java - 如何在一行中输入多次?
- pywinauto - OpenProcess 在 wait_cpu_usage_lower 中失败
- python - 获取traceback.print_stack()的帧输入参数的正确方法
- neo4j - Neo4J Louvain 算法使用不同的排序方法返回不同的结果
- python - 如何根据索引将列表的值替换为另一个列表的值
- sql - 相同的查询,不同的结果;子查询问题
- android - 如何在 iOS 设备上设置仅查看的边距?
- javascript - 如何使用数组对象内的数组进行过滤
- xamarin.forms - 是否可以从模式中导航回来,然后在同一个导航操作中进一步返回?
- javascript - 如何将 JS 模块 (.mjs) 导入 QML