在lpc1768上下载数据

时间:2013-08-04 07:22:45

标签: arm lpc

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

问题1:如何使用hex文件下载原始数据,使用jflash?

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

3 个答案:

答案 0 :(得分:1)

这似乎与我的问题类似:

Include binary file with GNU ld linker script

linking arbitrary data using GCC ARM toolchain

您可以将原始数据转换为目标文件,然后将其与代码链接以生成包含两者的hex文件,然后照常上传。链接器将定义特殊符号,告诉您数据在内存中的开始和结束位置。查看上面的链接以获取更多信息和示例。

答案 1 :(得分:0)

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

生成的代码将如下所示:

const unsigned char binary_data[] = {
    0x4D, 0x5A, 0x90, 0x00, //...
}

它最终将作为flash中的只读数据,除非您使用不常见的链接器skript,否则不会将其复制到RAM中。

可以在Makefile中自动生成二进制文件中的C代码。我在OpenOCD项目中见过这个例子。

答案 2 :(得分:0)

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

你是想尝试逆向工程吗?