[英]Remote Proc fails to load FreeRTOS Elf
我正在使用FreeRTOS的此端口,並將其加載到OMAP4430中的Cortex-M3上。 使用遠程proc框架可以正常工作,我可以使用RPMsg與之通信。
但是,有時rproc無法加載elf並給出以下錯誤:
rproc remoteproc1: bad phdr da 0x0 mem 0x10310
rproc remoteproc1: Failed to load program segments: -22
rproc remoteproc1: rproc_boot() failed -22
當elf文件的大小太大時,似乎會發生這種情況:當大小為377331字節時,就會發生這種情況,但是當我只是刪除一堆打印語句並將大小減小到342563字節時,就不會發生這種情況。
我已經將錯誤消息跟蹤到了這段代碼: http : //lxr.free-electrons.com/source/drivers/remoteproc/remoteproc_elf_loader.c?v=3.9#L188 。 似乎rproc_da_to_va無法在內存中找到足夠大的段來容納ELF。
如何確保有足夠的內存來容納ELF的大小? 我可以告訴內核我特別想要為這種事情預分配某個區域嗎? 有什么方法可以確保我的ELF的這一部分保持較小?
謝謝!
確保FreeRTOS配置常量configTEXT_SIZE
和configDATA_SIZE
與您的鏈接描述文件所要求的數量一致。 例如,如果您的鏈接描述文件包含
MEMORY
{
TEXT (rwx) : ORIGIN = 0x00000000, LENGTH = 1M
DATA (rwx) : ORIGIN = 0x80000000, LENGTH = 1M
}
那么您應該將configTEXT_SIZE
和configDATA_SIZE
設置為0x100000
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.