Разработка non-x86 [закрытой] Операционной системы

Существуют определенные биты кода, который не будет работать над средством моделирования (использующий iPhone Keychain, например), но почти для всех приложений, средство моделирования будет работать точно как iPhone.

Однако нет абсолютно никакой замены для тестирования на физическом устройстве.

8
задан mdec 8 October 2009 в 11:02
поделиться

10 ответов

Разработка ОС (RT) - нетривиальная задача. Хотя это очень познавательно. Мой вам совет: начните с аппаратной независимости. ПК - хорошая отправная точка, поскольку он предлагает множество возможностей ввода-вывода и хорошую отладку. Если вы создаете приложение типа виртуальной машины, вы можете создать что-то с простыми возможностями платформы (вывод на консоль, некоторые кнопки / индикаторы - хорошее начало). Кроме того, вы можете использовать файлы, например, для вывода времени (расписаний). Если вы начнете на «голом железе», вам придется начинать с нуля. Отладка светодиода (включение / выключение / мигание) очень сложна и требует много времени. Мой второй совет - заранее определите область действия: планировщик, механизмы связи или файловые системы, которые вас интересуют? Выполнение всего может легко закончиться проектом на всю жизнь.

Самек, Миро, Практические диаграммы состояний UML на C / C ++ содержат несколько интересных разделов, посвященных микроядру. Это одна из моих любимых книг. Расширенные проекты микроконтроллеров PIC на C: от USB до RTOS с серией PIC 18F кажется, покрывает некоторые из ваших интересов; Но я еще не читал. Операционные системы: внутреннее устройство и принципы проектирования также могут дать хорошее понимание. Он охватывает все аспекты от планировщика до сетевого стека. Удачи!

7
ответ дан 5 December 2019 в 07:12
поделиться

Контики может быть хорошей вещью для исследования. Он очень маленький, работает на микроконтроллерах и имеет открытый исходный код. Он имеет большой уклон в сторону сетей и связи, но, возможно, вы можете пропустить эти части и сосредоточиться на ядре.

2
ответ дан 5 December 2019 в 07:12
поделиться
1
ответ дан 5 December 2019 в 07:12
поделиться

Похоже, вы должны получить копию книги Жана Лабросса MicroC / OS .

Похоже, он только что обновил ее.

http: //micrium.com/page/press_room/news/id:40

http://micrium.com/page/home

Это хорошо документированная книга, описывающая внутреннюю работу RTOS, написанную на C и перенесенную ко многим встроенным процессорам. Вы также можете запустить его на x86, а затем выполнить кросс-компиляцию на другом процессоре.

4
ответ дан 5 December 2019 в 07:12
поделиться

Если вы выберете ARM, возьмите копию Руководства разработчика системы ARM (Sloss, Symes, Wright). Ссылка на Amazon

В главе 11 обсуждается реализация простой встроенной операционной системы с подробными пояснениями и примерами кода.

2
ответ дан 5 December 2019 в 07:12
поделиться

ARM и AVR - это мел и сыр - у вас очень широкий кругозор!

Вы могли бы создать совершенно другую и более сложную ОС для ARM, чем AVR (если, возможно, вы не говорите об AVR32 - это совершенно другая архитектура?).

AVR будет гораздо более ограничивающим, чем задача. может быть просто тривиальным для объема вашей диссертации. Даже указание ARM не сильно сужает его; у младших частей ARM есть небольшая внутренняя память, нет MMU и простые периферийные устройства; части более высокого уровня имеют MMU, кеши данных / инструкций, часто GPU, иногда FPU, аппаратное выполнение байт-кода Java и многие другие сложные периферийные устройства. Термин «ARM» охватывает ARM7, ARM9, ARM11, Cortex M3, Cortex M8, плюс ряд архитектур, предназначенных для использования на ASIC и FPGA - так что, возможно, вам нужно немного сузить его?

Если вы выберете ARM, взгляните на эти ресурсы . В особенности «Руководства для инсайдеров» от Hitex и «Сборка ARM с нуля с помощью GNU», они помогут вам «поднять» доску и сформировать отправную точку для вашей ОС.

2
ответ дан 5 December 2019 в 07:12
поделиться

Silly as it may sound, I was recently interested in the Arduino platform to learn some hacking tricks with the help of more experienced friends. There was also this thread for a guy interested in writing an OS for it (although not his primary intention).

I think the Arduino is very basic and straightforward as an educational tool for such endeavors. It may worth the try checking it out if it fits the bill.

2
ответ дан 5 December 2019 в 07:12
поделиться

Первое, что я рекомендую, - это значительно сузить тему вашей диссертации. Операционные системы широко распространены, они хорошо изучены и разработаны. Какую новую идею вы надеетесь реализовать?

Тем не менее, AvrX - это очень микроядро, которое я профессионально использовал на микроконтроллерах AVR. Написано в сборке. Один человек начал переносить его на C, но не закончил перенос. Было бы полезно либо завершить перенос на C и / или создать порт C для архитектуры AVR32.

1
ответ дан 5 December 2019 в 07:12
поделиться

An OS shall not be tightly coupled to any processor so ARM or x86 doesn't matter. Это будет более обширная тема, если мы начнем обсуждать, встроена ли ARM, а x86 - нет. В любом случае, есть много мест, где процессоры x86 используются для разработки встроенного программного обеспечения.

Я полагаю, что большая часть кода ядра будет просто языком C. Существует множество бесплатных ОС, которые уже доступны, например, встроенная Linux, бесплатная версия Itron, minix и т. Д. Это будет непростая задача.

Но, с другой стороны, что вы можете попробовать, так это перенести встроенный Linux на платформы, на которых он еще не работает. Это будет действительно полезно для мира.

1
ответ дан 5 December 2019 в 07:12
поделиться

RTOS почти никогда не зависит от архитектуры. Обратитесь к любой архитектуре RTOS, доступной в сети, и вы заметите, что уровень абстракции CPU / Hardware абстрагируется от CPU. Специфические части платы (которые имеют дело с периферийными устройствами, такими как com-порты, таймеры и т. Д.) Абстрагируются с помощью пакета поддержки платы.

Для начала, чтобы понять, как работает многопоточность в ОСРВ, попробуйте реализовать простой код переключения контекста для ЦП по вашему выбору; это будет включать код для создания контекста потока, сохранения контекста и восстановления сохраненного контекста. Этот код сформирует основу вашего уровня абстракции оборудования. Первоначальная разработка может быть легко выполнена с помощью программного симулятора для выбранного процессора.

Я согласен с автором, предложившим прочитать книгу Жана Лабросса uCOS-II.

1
ответ дан 5 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: