首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >trace32 data.load.elf错误“验证地址NSX:0x8000的错误”

trace32 data.load.elf错误“验证地址NSX:0x8000的错误”
EN

Stack Overflow用户
提问于 2018-09-11 06:33:07
回答 2查看 955关注 0票数 0

这是我第一次使用Trace32,当我尝试执行这个命令时,我试图在arm目标上闪现一个简单的C程序(据我所知,这个命令会闪烁目标,但不确定?)

代码语言:javascript
复制
d.load.elf image.axf /Verify /ComPare

我得到以下错误:

在地址NSX:0x8000验证错误

我使用以下命令编译和链接代码:

代码语言:javascript
复制
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

如何闪现代码并对其进行调试?一步一步地执行每条指令

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-09-11 08:59:32

你不能编程闪存,如果它已经编程-它必须首先被擦除。请参阅Trace32文档的第93页。此外,试图compare的闪存与文件之前,你已经编程,它将永远失败!

您需要删除闪存,也需要启用闪存进行编程。例如:

代码语言:javascript
复制
FLASH.Erase ALL
FLASH.Program ALL
Data.load.elf image.axf /Verify
FLASH.Program off

注意,如果除了要编程/调试的代码之外,闪存中还有其他数据或引导加载程序,那么Erase.ALL可能是不合适的。

票数 0
EN

Stack Overflow用户

发布于 2018-09-13 17:13:43

如果您确实想编程内存,请不要使用load选项/ComPare

选项/ComPare的意思是:不要加载任何代码。相反,读取内存(在加载ELF的位置),并将内存内容与ELF文件进行比较。

如果要将应用程序加载到可写内存并验证加载是否成功,请执行以下操作:

代码语言:javascript
复制
Data.LOAD.Elf image.axf
Data.LOAD.Elf image.axf /ComPare

代码语言:javascript
复制
Data.LOAD.Elf image.axf
Data.LOAD.Elf image.axf /DIFF
IF FOUND()
( 
    PRINT %ERROR "Faild to load application image.axf at address " TRACK.ADDRESS() 
)

顺便说一句:我不会将这样的应用程序负载称为“闪烁”。在我看来,“闪烁”是关于编程非易失性内存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52269945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档