VxWorks: доступ к области основной памяти

Я переношу код с Linux на Vxworks. Код требует открытия физической / основной памяти, а затем сопоставления физической и виртуальной памяти с помощью mmap.

В Linux доступ к основной памяти осуществляется

fd = open("/dev/mem", O_RDONLY);

Не могли бы вы сообщить мне, как это можно сделать в Vxworks.

заранее спасибо


person hazzelnuttie    schedule 06.08.2014    source источник


Ответы (1)


Это зависит от того, в какой среде программирования будет работать ваш перенесенный код.

Для режима ядра это намного проще, поскольку обычно вы можете получить доступ к любой части системной памяти в режиме только для чтения, если его область памяти отображается в таблице страниц. Для доступа к памяти в вашем коде не требуется специального API.

Для пользовательского режима (он же «Процесс в реальном времени», доступный только начиная с VxWorks 6.0) все немного сложнее. Вам нужно написать пару блоков кода, один из которых работает в режиме ядра, а другой - в пользовательском режиме. Пожалуйста, обратитесь к блоку комментариев в исходных кодах VxWorks для примера кода @ vxworks-6.9 / target / usr / src / os / mm / devMemLib.c (например, VxWorks 6.9).

person binelf    schedule 07.08.2014
comment
Код работает в пользовательском режиме .. Спасибо за информацию - person hazzelnuttie; 21.08.2014