1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/QQxiaoming-vexpress_v2p_ca9

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

vexpress_v2p_ca9

Проект для разработки на «голом железе» (bare metal) на основе платы vexpress_v2p_ca9x4, созданной для работы с архитектурой ARM. Проект можно запустить в эмуляторе QEMU. Цель проекта — глубокое изучение процесса запуска, многоядерного управления, кэша, MMU и других связанных тем, а также освоение разработки низкоуровневых драйверов с использованием языка Rust.

История разработки

  • 2021.03.22: Создание проекта, базовая работа с последовательным портом выполнена корректно.
  • 2021.03.24: Добавлен код для загрузки с нескольких ядер.
  • 2021.04.11: Настроена MMU, на данный момент используется плоская адресация.
  • 2021.05.03: Завершена первоначальная миграция FreeRTOS (в настоящее время работает только на одном ядре).
  • 2021.06.13: Разработана предварительная схема распределения памяти, завершена начальная настройка MMU. Весь проект теперь использует виртуальные адреса вместо физических, что подготавливает почву для будущих пользовательских процессов.
  • 2021.06.20: Созданы базовые таблицы страниц для задач и переключение между ними в контексте. Требуется доработка, включая улучшение стратегии распределения памяти для таблиц страниц, использование элементов таблицы страниц TTBR1 для закрепления ядра и планирование вторичных таблиц страниц. (Распределение памяти вызывает сложности, не хочется усложнять реализацию. Также рассматривается возможность отказа от использования ELF-файлов для исполняемых файлов пользовательского режима, чтобы сделать всё как можно более лёгким. Кроме того, планируется разработать гибкий драйвер для пользовательского режима вместо жёстко встроенного в ядро. В настоящее время рассматривается наилучший способ предоставления ядром сопоставления адресов пользовательскому режиму. Коммуникация между процессами также является сложной задачей. При разработке кода ядра необходимо полностью отказаться от традиционных подходов к проектированию пользовательского режима и драйверов.)
+----------------------+ 0xFFFFFFFF  <------------+
|                      |                          |
|                      |                          |
|    PERIPH            |                          |
|                      |                          |
|                      |                          |
+----------------------+ 0xF0000000               |
|                      |                          |
|                      |                          |
|                      |                          |
+----------------------+                          |
|    SRAM  (32M)       |                          |
+----------------------+ 0xE0000000               | KERNEL(1G)
|                      |                          |
|                      |                          |
| DDR high addr (512M) |                          |
|                      |                          |
|                      |                          |
+----------------------+ 0xD0000000               |
|                      |                          |
|                      |                          |
| DDR low addr  (512M) |                          |
|                      |                          |
|                      |                          |
+----------------------+ 0xC0000000  <------------+
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|         3G           |                          | USER(3G)
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
+----------------------+ 0x00000000  <------------+
  • 2022.01.14: Планируется продолжить обновление проекта, начата работа над простой программой с интерфейсом командной строки. Welcome debugging vexpress_v2p_ca9 project!

V2PCA9@FreeRTOS>help help: Перечисляет все зарегистрированные команды. version: показывает версию. uname: по очереди выводит информацию о команде uname. echo: по очереди выводит переданную информацию. ps: показывает состояние каждой задачи FreeRTOS. free: показывает память каждой кучи FreeRTOS.

V2PCA9@FreeRTOS>

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Проект для голой машины, разработанный на базе отладочной платы vexpress_v2p_ca9x4 на основе ARM, можно запустить с помощью симулятора QEMU. Цель проекта — глубокое изучение файла запуска, многоядерного управления, кэша, MMU и других связанных тем, а также освоение разработки низкоуровневых драйверов с использованием языка Rust. В планах — созда... Развернуть Свернуть
C и 5 других языков
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/QQxiaoming-vexpress_v2p_ca9.git
git@gitlife.ru:oschina-mirror/QQxiaoming-vexpress_v2p_ca9.git
oschina-mirror
QQxiaoming-vexpress_v2p_ca9
QQxiaoming-vexpress_v2p_ca9
main