Arm 在lpc1768上下载数据

Arm 在lpc1768上下载数据,arm,lpc,Arm,Lpc,有一个来自C项目的十六进制文件。 我想在LPC1768的flash上下载这个十六进制文件,其中包含一些我在运行时代码中使用的原始数据(用于初始化代码中的数据)。 我知道当我把它写在电路板上时,在运行时,LPC1768会从内存中的闪存中复制数据 问题1:如何使用jflash下载十六进制文件的原始数据 问题2:如何找到原始数据复制到内存中的位置,以便在运行时使用它?这与我的问题类似: 您可以将原始数据转换为对象文件,然后将其与代码链接,生成包含这两个文件的十六进制文件,然后像往常一样上载。链接器

有一个来自C项目的十六进制文件。 我想在LPC1768的flash上下载这个十六进制文件,其中包含一些我在运行时代码中使用的原始数据(用于初始化代码中的数据)。 我知道当我把它写在电路板上时,在运行时,LPC1768会从内存中的闪存中复制数据

问题1:如何使用jflash下载十六进制文件的原始数据


问题2:如何找到原始数据复制到内存中的位置,以便在运行时使用它?

这与我的问题类似:


您可以将原始数据转换为对象文件,然后将其与代码链接,生成包含这两个文件的十六进制文件,然后像往常一样上载。链接器将定义特殊符号,告诉您数据在内存中的开始和结束位置。查看上面的链接了解更多信息和示例。

您可以将二进制数据转换为
C
,例如使用。然后只需将生成的
C
代码添加到项目中

生成的代码如下所示:

const unsigned char binary_data[]={
0x4D、0x5A、0x90、0x00、/。。。
}
它将在flash中以只读数据结束,除非您使用不寻常的链接器SKcript,否则不会复制到RAM中

从二进制文件生成
C
代码可以在生成文件中自动完成。例如,我在项目中看到了这一点。

您可以考虑使用下载十六进制文件到闪存中。它只下载十六进制。但是,您可能无法调试代码


您是否正在尝试对某些内容进行反向工程???

没有链接器(分别使用jtag下载十六进制文件和二进制数据)有没有办法做到这一点?好吧,您可以编写一个简单的程序,将您的数据附加到选定的空地址范围的十六进制文件,然后上载这样的十六进制文件。十六进制文件的格式非常简单,但我不知道。当你将数据附加到十六进制文件时,你必须指定数据在内存中的最终地址,只需确保它是一个空范围并且对你的微控制器有效。上传十六进制文件后,您可以访问该地址的数据。