Pull to refresh

Comments 10

Антон, спасибо за статью. Я вижу примерно следующий минимальный план действий при портировании Embox на свою СнК:

  1. Разработка (портирование) драйвера PLIC под свой контроллер.

  2. Разработка (портирование) драйвера UART.

  3. Портирование примитивов для работы с машинным таймером.

  4. Портирование примитивов для работы с системным таймером.

  5. Создание правильного плана размещения сегментов в памяти (linker.ld), план адресации.

По последнему пункту не совсем понятно может ли Embox (или приложение в её оставе) исполняться прямо из Flash ? На нашей СнК есть поддержка XiP, т.е. NOR flash память мапится в адресное пространство 0xA0000000. Вопрос в том, кто скопирует сегмент .data в RAM, а так же проинициализирует .bss, .stack и .heap. Хотелось бы увидеть общую картину как располагаются в памяти разные части Embox.

Да, в первом приближении все так, нужен только машинный таймер, и как показано встатье, на первом этапе можно вообще без прерываний, только lds архитектурная подерка и UART ( какой то интерфейс чтобы видеть что есть результат) и build тоже стандартный

По последнему пункту не совсем понятно может ли Embox (или приложение в её оставе) исполняться прямо из Flash ? На нашей СнК есть поддержка XiP, т.е. NOR flash память мапится в адресное пространство 0xA0000000.

Да, можно исполнять прямо из flash. ROM регион

Вопрос в том, кто скопирует сегмент .data в RAM, а так же проинициализирует .bss, .stack и .heap.

Embox копирует секцию .data (если нужно) и зануляет .bss, устанавливает указатель стека (размер стека задается в конфиге), указатели стека для потоков устанавливаются отдельно Embox, кучу инициализирует тоже embox (если нужно).

Ой, lds.conf из которого генерится линкер скрипт (карта памяти ) :)

Для тех кто хотел в комментариях предложить автору раскрыть что такое Embox сообщаю:
Embox (англ. Essential toolbox for embedded development) — свободная кросс-платформенная операционная система реального времени (RTOS), разрабатываемая для встроенных систем.

Спасибо. Но подумал, если начинать с этого каждый раз, то до чего то осмысленного никогда не дойдем :)Прогаем АСУ-ТП ( МЭК 61131-3 языки) на базе отечественного MK (https://habr.com/ru/articles/881784/)

Да, залили, а что конкретно поправить?

Он лежит не в platform а в 'templates/' (обычно это общие для архитектуры темплейты)
`make confload-riscv/minimal`

PS Спасибо, что пробуете!

Sign up to leave a comment.

Articles