Я использую this port of FreeRTOS, и я загружаю его на Cortex-M3 в OMAP4430. Это отлично работает с использованием структуры удаленного proc, и я могу использовать RPMsg для связи с ним.Remote Proc не может загрузить FreeRTOS Elf
Иногда, однако, rproc не удается загрузить эльф и выдает следующую ошибку:
rproc remoteproc1: bad phdr da 0x0 mem 0x10310
rproc remoteproc1: Failed to load program segments: -22
rproc remoteproc1: rproc_boot() failed -22
Это, кажется, происходит, когда размер эльфа файл становится слишком большим: это происходит, когда размер 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 оставалась небольшой?
Спасибо!