Search
Write a publication
Pull to refresh
23
0
Pavel Pankratov @PaPS_90

Ведущий инженер-программист

Send message

Я так полагаю, что речь идет о devicetree для Hard-CPU и ноде reserved-memory.

По идее, зарезервированный регион не должен нигде использоваться, если этого явно не указано. Например, для использования региона каким-либо драйвером, в его описании devicetree можно указать следущее:

memory-region = <&reserved>;

Таким образом драйвер будет явно привязан к этому региону по тегу.

Для того, чтобы использовать регион через DMA API, нужно назначить ему стандартный драйвер через:

compatible = "shared-dma-pool";

В случае с CMA, также указать:

linux,cma-default;

Вожможно, у вас в devicetree есть некое наложение по тегу региона или адресу. Попробуйте переименовать регион с "reserved" на что-нибудь другое, например "mb-reserved".

Что касается адреса, я описывал детально как выбирал его для конкретной платформы в первой части. В вашем случае он может отличаться, и, вероятно, должен отличаться, чтобы соответствовать иным требованиям.

Тест с затиранием памяти понятен. Конечно, если нарушить код загруженной ОС, или данные региона памяти, выделенного тому или иному драйверу, все пойдет не по лучшему сценарию. В тексте я делал акцент на важности исключения совместного использования региона обеими ОС. В вашем случае интересно разобраться все же почему зарезервированный регион попал в ведение ОС Hard-CPU.

Проект - отличное пособие для повышения квалификации младших инженеров. Позволяет освоить системный подход к разработке, ознакомиться со стеком технологий.

Если говорить о практическом интересе, тут все зависит от фантазии. Например, можно использовать как средство для моделирования многопроцессорных систем. Из опыта, сталкивался с похожим в Automotive, где в едином комплексе используется набор процессоров - интерфейсный, кластерный, развлекательной подсистемы, процессор-супервайзер. Каждый крутит свою ОС.

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Software Architect
Lead