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

OSCHINA-MIRROR/home-coder-YeyotowOS

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

Модуль — функциональный компонент

soc — платформа интерфейса

rules.mk

2. Процесс выполнения исходного кода

  1. С помощью инструмента MiniTool в режиме nor выполнить запись: образ tinyboot (образ загрузчика) записать по адресу nand 0x0, а образ YeyotowOS (образ ядра) — по умолчанию на адрес 0x2800;
    Примечание: причина отдельной разработки tinyboot заключается в том, что в отсутствие MMU необходимо реализовать функцию перехода по исключению, и для этого нужно настроить обработку функции входа вектора таблицы. Официальный superboot не имеет доступного для модификации исходного кода.
  2. Переключить переключатель в режим nandflash для запуска;
  3. Через bootloader.bin перенести firmware.bin на загрузочный адрес 0x30000000 и перейти к выполнению кода ядра по адресу 0x30000000;
  4. Выполнить перенаправление кода ядра согласно определённым в скрипте компоновщика адресам различных сегментов;
  5. Выделить стеки для каждого режима работы ARM;
  6. Создать задачу ядра и загрузить её в планировщик выполнения CPU;
  7. Инициализировать внешние устройства на плате;
  8. Запустить пользовательские задачи.

Список поддерживаемых функций

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

  1. Поддержка запуска в режимах nor и nand;
  2. Поддержка shell, [tinyshell]#, поддержка удаления и истории;
  3. Поддержка отображения виртуального адреса MMU и простого управления таблицей страниц;
  4. Поддержка Cache;
  5. Поддержка приоритетов задач;
  6. Поддержка стека прерываний и вложенности;
  7. Поддержка последовательного порта;
  8. Поддержка протокола Xmodem;
  9. Поддержка GPIO;
  10. Поддержка tick;
  11. Поддержка простого управления памятью;
  12. Поддержка многоядерных многозадачных систем;
  13. Поддержка привязки задач к ядрам;
  14. Поддержка печати информации о состоянии процессора;
  15. Поддержка печати состояния прерывания;
  16. Поддержка семафоров;
  17. Поддержка мьютексов;
  18. Поддержка механизма сообщений;
  19. Поддержка операций DMA чтения и записи;
  20. Поддержка чтения и записи I2C и интерфейса RTC времени I2C, без потери времени при перезагрузке;
  21. Поддержка файловой системы;
  22. Поддержка прошивки системы;
  23. Поддержка сторожевого таймера Reset процессора;
  24. Поддержка загрузки TFTP;
  25. Поддержка сетевого протокола lwip.

Вклад участников

  1. Добавить автора проекта в WeChat: jxj-723;
  2. Форкнуть этот проект;
  3. Создать ветку Feat_xxx;
  4. Предложить использовать VSCode для редактирования кода;
  5. Отправить код;
  6. Создать Pull Request.
TODO Список функций
Завершить перенос tinyboot для firmware.bin Запустить и переключить задачи ОС Завершить переход по прерыванию
Завершить запуск и переключение задач ОС На основе MMU завершить базовое управление одноуровневой таблицей страниц
Завершить поддержку tinyshell Завершить запрос состояния процессора top Завершить запрос статуса прерывания ints
Завершить разделение памяти mems Многоядерное управление задачами Оптимизировать таймер tick при вложении
YeyotowOS работает на двух ядрах процессора Поддержка перезагрузки и горячего запуска reset Оптимизация исправления таймера tick при прерывании
Постоянно улучшать систему и существующие функции, оптимизировать интерфейс обслуживания прерываний, оптимизировать структуру кода в целом Запуск SylixOS на одном ядре, запуск YeyotowOS на другом ядре с собственным терминалом оболочки
Добавить в оболочку команды тестирования ядра, такие как тестирование семафора: semtest Реализовать драйвер i2c
Реализовать драйвер звуковой карты Реализовать драйверы eeprom и i2c framework
Функция регистрации прерывания должна поддерживать передачу параметров, иначе определение источника прерывания по номеру прерывания займёт время «ожидания состояния открытого прерывания», что может занять больше времени. Обратите внимание, что после поддержки передачи параметров все функции, такие как последовательный порт, должны быть изменены. Управление многоядерными операционными системами и многозадачными процессами
Использование TFTP для отладки: изменить tinyboot, чтобы поддерживать загрузку образа ядра через TFTP, отладка может больше не использовать инструмент MiniTools для прошивки, необходимо завершить драйвер DM9000 для сетевой карты, необходимо завершить базовый протокол TFTP и загрузить образ с хоста
Добавить слой устройства, использовать список ссылок для управления всеми устройствами, dev_open имя устройства для получения фактического дескриптора устройства; все драйверы устройств должны быть переписаны в виде структуры, включая как минимум имя устройства и набор операций устройства. Использовать TFTP для отладки: изменить tinyboot так, чтобы он поддерживал загрузку образа ядра через TFTP. Отладка может больше не требовать использования инструмента MiniTools для перепрошивки. Необходимо завершить разработку драйвера DM9000 для сетевой карты. Необходимо реализовать базовый протокол TFTP и возможность загрузки образа с хост-компьютера
Добавить буферную область слоя фреймворка устройства: временно не создавать модель устройства, просто добавить буфер блокировки отправки и получения пакетов в драйвере сетевой карты верхнего уровня, нижний уровень использует метод активного прерывания для отправки данных
TODO Список ошибок

| В прерывании UART в оболочке необходимо добавить printf("..\n"); для нормального вывода [Yeyotow#] | При нажатии клавиш и вводе команды help система зависает | | Текущая версия bug: Task1 Task2 не может выводить информацию | | --- | | | | |

Кодовые навыки Gitee

  1. Использование Readme_XXX.md для поддержки разных языков, например Readme_en.md, Readme_zh.md.

  2. Официальный блог Gitee — blog.gitee.com.

  3. Вы можете перейти по адресу https://gitee.com/explore, чтобы узнать об отличных открытых проектах на Gitee.

  4. GVP — это аббревиатура от «Наиболее ценные открытые проекты Gitee», так называются лучшие открытые проекты, отобранные Gitee.

  5. Официальное руководство по использованию от Gitee доступно по ссылке https://gitee.com/help.

  6. «Звёзды Gitee» — это рубрика, в которой демонстрируется великолепие членов Gitee, доступна по ссылке https://gitee.com/gitee-stars/.

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

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

Введение

Yeyotow Kernel. Развернуть Свернуть
GPL-2.0
Отмена

Обновления

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

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/home-coder-YeyotowOS.git
git@api.gitlife.ru:oschina-mirror/home-coder-YeyotowOS.git
oschina-mirror
home-coder-YeyotowOS
home-coder-YeyotowOS
mini2440