如何通过 ram 将数据从 u-boot 引导加载程序传递到 QNX 应用程序?

How to pass data from u-boot bootloader to QNX application via ram?

在 ATSAMA5d3x 模块上使用 QNX 6。5.x 将 u-boot 作为引导加载程序。

我们希望通过 RAM 从引导加载程序将大约 1.5kb 的数据传递到 QNX,而不是尝试通过闪存传递。

有没有一种机制可以告诉 QNX 保留一块 RAM 区域而不去碰它?这将使我们能够从 QNX 应用程序中对其进行 mmap 以从中读取数据,而无需 QNX 将其用于堆或以其他方式将其清零。

您是否曾使用另一种方法将此类数据传递到 QNX 中?

QNX startup-* 程序允许使用 -r 参数来保留一块物理地址 space。您可以在 bootstrap 图像(mkifs 的来源)的 .build 文件中提供启动参数。

示例:

[image=0x22000000]
[virtual=armle-v7,raw +compress] .bootstrap = {
    # reserve 4k at paddr 0x20000000 and don't clear it
    startup-atsama5d3x-ek -vvv -r 0x20000000,4096,1
    # reset of boot code goes here
}
[+script] .script = {
    # and so on
}
# and so forth

参考:http://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.utilities/topic/s/startup_options.html