OSDev

для всех
Текущее время: 12 дек 2017, 05:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Режимы Mega2560
СообщениеДобавлено: 01 сен 2015, 10:11 
Аватара пользователя

Зарегистрирован: 01 сен 2015, 09:55
Сообщения: 6
Откуда: планета "Земля"
Всем привет. Кто ни будь интересовался режимами работы mega2560? У него есть защищённый режим? или это слишком круто для этой серии МК?
Думаю поэкспериментировать с Arduino mega2560.

_________________
Волна поднимается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 01 сен 2015, 10:32 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1315
Откуда: Зеленоград
Вообще-то защищённый режим есть только в процессорах архитектуры IA-32, в просторечии -- x86. В других архитектурах, если аналогичное имеется (что крайняя редкость, поскольку само появление защищённого режима -- следствие изначальной кривизны архитектуры и её расширения наиболее кривым же способом), носит другое название.

Что же до Атмеги, то в столь примитивном и слабом процессоре наличие режимов напрочь лишено смысла, а соответственно, их и нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 03 сен 2015, 08:52 
Аватара пользователя

Зарегистрирован: 01 сен 2015, 09:55
Сообщения: 6
Откуда: планета "Земля"
Хочу сделать примитивную ОС с разграничением прав доступа к памяти и ус-вам, а если нет аппаратной поддержки то как же разграничение прав доступа приложений? Они же всегда смогут обращаться к данным других программ. Или я что-то путаю?

_________________
Волна поднимается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 03 сен 2015, 09:04 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1315
Откуда: Зеленоград
Естественно, без аппаратной поддержки никакой защиты быть не может. Правда, права доступа в смысле проверки возможности открыть и использовать определённые объекты (например, события или файлы) через сервисы ОС сделать можно, но это "защита от честных людей": понятно, что без как минимум средств защиты памяти и режимов "пользователь/супервизор" (в разных архитектурах эта парочка именуется по-разному, но суть не меняется) нельзя запретить приложению обратиться куда угодно напрямик, минуя ОС.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 03 сен 2015, 09:37 
Аватара пользователя

Зарегистрирован: 01 сен 2015, 09:55
Сообщения: 6
Откуда: планета "Земля"
Получается что на подобного рода чипах операционная система берёт на себя просто функцию упрощённого интерфейса к различным устройствам? Типа пиши в файл, а ос сама интерпретирует эти данные и напечатает на принтере или отправит данный в UART а ответ запишет обратно в файл?

_________________
Волна поднимается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 03 сен 2015, 11:22 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1315
Откуда: Зеленоград
ОС везде выполняет те функции, которые в неё заложены программистом. Ничто не мешает сделать многопользовательскую многозадачную ОС на процессоре, лишённом средств аппаратной защиты -- и всё будет работать, вот только из-за отсутствия этой самой защиты система не сможет предотвратить "противоправные" действия приложений. Однако, если приложения "честные" и не содержат ошибок, всё будет работать отлично. Кстати говоря, такие системы существуют. Винда, Линух и Макось -- на этом мир не заканчивается, это лишь вершина айсберга, особенно если брать не только ныне здравствующие системы, но и существовавшие раньше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 03 сен 2015, 11:38 
Аватара пользователя

Зарегистрирован: 01 сен 2015, 09:55
Сообщения: 6
Откуда: планета "Земля"
SII писал(а):
ОС везде выполняет те функции, которые в неё заложены программистом. Ничто не мешает сделать многопользовательскую многозадачную ОС на процессоре, лишённом средств аппаратной защиты -- и всё будет работать, вот только из-за отсутствия этой самой защиты система не сможет предотвратить "противоправные" действия приложений. Однако, если приложения "честные" и не содержат ошибок, всё будет работать отлично. Кстати говоря, такие системы существуют...

Спасибо за ответ! А на какие "подобные" (существующие) системы стоит обратить внимание?

_________________
Волна поднимается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 03 сен 2015, 11:54 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1315
Откуда: Зеленоград
На 8-разрядных микроконтроллерах обычно ОС вообще не используют: нет в них особого смысла в силу как ограниченных ресурсов аппаратуры, так и специфики решаемых задач, хотя какая-нибудь недосистема вроде FreeRTOS, возможно, и имеется -- я не интересовался этим вопросом, так что ничего определённого не скажу. На 32-разрядных (в частности, на ARMах) систем довольно много, начиная от той же FreeRTOS и всяких разных других недоосей (и коммерческих, и свободных) и кончая встраиваемой версией Винды. Но действительно приличных систем, по моему мнению, сейчас вообще нет: либо недосистемы с крайне узким функционалом, либо неповоротливые монстры вроде Линуха и Винды.

Как ни странно, в относительно древние времена (в 1970-х) с системами было получше: ресурсы техники были значительно скромней, а серьёзные задачи решать приходилось, вот и думали, когда программы писали. Скажи сейчас, что полноценная многозадачность возможна на машине с несколькими десятками килобайт памяти, а система виртуальных машин (гипервизор, как сейчас это часто называют) работает на мегабайте -- не поверят, хотя именно так и было. Естественно, то были не персоналки, а совсем другие машины, но принципы-то одни и те же...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 03 сен 2015, 12:42 
Аватара пользователя

Зарегистрирован: 01 сен 2015, 09:55
Сообщения: 6
Откуда: планета "Земля"
Я думал попробовать на ARM, но посчитал это сложной затеей так как загрузчик UEFI сложен и требует подписей (поправьте если я не прав), а с ними на сколько я помню не очень хорошо дело обстоит, приходится использовать большие, трудно-настраиваемые загрузчики, а с 8 разрядными намного проще.
Есть у меня Cubieboard2, когда стал разбираться оказалось что либо Android, либо Linux Linaro со своим загрузчиком UEFI. С другой стороны есть виртуальные машины и я собрал небольшой проектик который может выводить с помощью BIOS некоторый текст, но x86 не сильно привлекает.

_________________
Волна поднимается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Режимы Mega2560
СообщениеДобавлено: 03 сен 2015, 23:11 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1315
Откуда: Зеленоград
Сама фирма ARM ничего не выпускает, она лишь разрабатывает процессоры и кой-какую периферию. Выпуском процессоров (условно говоря) занимается приличное количество других фирм, ну а платы на основе их лепят вообще все, кому не лень.

Про процессор я сказал "условно говоря", поскольку он сейчас включает кучу всякой периферии, а не только собственно процессорное ядро: UART, SPI, I2C, часто Ethernet и USB, ну и т.д. и т.п., не говоря уже о памяти.

Что же касается UEFI и прочего, то это к архитектуре процессора вообще никакого отношения не имеет. Возьмите, к примеру, обычные ПК. Все они построены вокруг процессоров архитектуры IA-32 (x86) производства разных фирм (не только Intel и AMD, но другие производители либо уже отошли в мир иной, либо завязали с этим поганым делом, либо производят специализированные варианты процов для промышленных систем, а не для бытовых ПК, поэтому обычный человек с ними никак не сталкивается). Современные ПК все поддерживают UEFI, но они пока ещё поддерживают и альтернативу в виде старого BIOS. Но технически ничто не мешает сделать компьютер на базе того же процессора без всяких UEFI, BIOS и прочих стандартных для ПК средств. Понятно, что это сразу сделает его несовместимым с существующими ПК, и именно поэтому таких компьютеров мы не видим, но технически это возможно.

Что же до ARM, то там UEFI отнюдь не господствует. Более того, подавляющее большинство решений на базе этой архитектуры вообще не имеет никакого аналога UEFI/BIOS и полностью доступно программисту для самостоятельного творчества. Единственное, что для этого абсолютно необходимо, -- это доступная документация на процессор. Вот с этим и бывают проблемы. Если для микроконтроллеров на базе ARM документация всегда открыта (иначе и быть не может: они используются в огромном числе узкоспециализированной аппаратуры, а поэтому стандартные решения там, как правило, неэффективны или вовсе невозможны), то с мощными микропроцессорами ситуация иная: производители очень часто не выкладывают никакой документации, предоставляя её лишь крупным клиентам. Грубо говоря, Samsung выпускает свои телефоны на своих процессорах, и, естественно, их разработчики имеют всю документацию, но если я захочу сделать что-то на их процессоре, то купить сам процессор я смогу, а вот получить документацию -- очень вряд ли (а вот какая-нибудь Sony или там то, что осталось от Нокии в Микрософте -- запросто). Из производителей микропроцессоров на современных ядрах (серия Cortex-A с разными номерами), насколько знаю, только Freescale, TI и Atmel предоставляют практически всю необходимую документацию (правда, графические процессоры у них тоже не документированы, но без них-то жить можно -- для программного построения изображений в видеобуфере вся необходимая информация имеется). nVidia сначала документацию не давала, сейчас частично открыла; во всяком случае, описания процов Tegra2, 3 и 4 я видел -- но вот ерраты (Errata -- документ, содержащий описание известных ошибок в железе) на них не выложено, что очень затруднит работу с этими процессорами, поскольку ошибок во всех них (у всех фирм) огромное число (индусы не только быдлокод быдлокодят -- они и железо проектируют, и, естественно, примерно с таким же качеством).

Линух (как и Андроид, который -- тот же Линух, подпиленный Гуглом) используется лишь на небольшой части достаточно мощных процессоров, причём в большинстве случаев загрузкой занимается не UEFI, а более простые загрузчики, главным образом UBOOT. Если документация на процессор есть, ничто не мешает сделать всё своё, начиная от загрузчика (лишь самый первый загрузчик, находящийся в ПЗУ процессора, остаётся тем же самым, но его функции сводятся к поиску устройства, с которого можно загрузить код, и передаче ему управления, ну а в микроконтроллерах и такой загрузчик, даже если имеется, может не использоваться -- если во флэш-ПЗУ уже прошит код пользователя, а сам проц сконфигурирован с помощью внешней коммутации определённых ног таким образом, чтобы сразу стартовал пользовательский код).

На Вашей плате стоит процессор AllWinner A20, и очень похоже, что документацию сия фирма простым смертным не даёт. Так что поиграться с ним на низком уровне у Вас по этой причине не получится. Это не следствие недоступности самой архитектуры ARM и т.п., а следствие неудачного выбора платы -- но без опыта ж не знаешь, на что обращать внимание.

Насчёт сложности по сравнению с 8-разрядными процессорами Вы, конечно, правы, но это неизбежно: за возможности приходится платить. Лично я для освоения АРМов порекомендовал бы начать с микроконтроллеров с ядрами серии Cortex-M (новые) или со старыми ядрами ARM7 или ARM9, но не с новыми Cortex-A. Причина -- как раз в большой сложности микропроцессоров на Cortex-A. Здесь, правда, следует учесть, что, хотя и Cortex-M, и Cortex-A называются ARMами, на самом деле первые кардинально отличаются по системной архитектуре от вторых, поэтому и системное ПО для них будет сильно отличаться в ряде аспектов (как минимум загрузка, обработка прерываний, управление памятью -- ну и ввод-вывод, конечно, но он вообще разный у процессоров разных производителей, а иногда и у разных серий одного производителя). А вот древние ядра полностью совместимы с Cortex-A снизу вверх (т.е., к примеру, код, за исключением драйверов устройств и загрузчика, можно "в лоб" перенести с процессора на ядре ARM7 на процессор на ядре Cortex-A, и он сразу будет работать -- естественно, не используя дополнительные возможности, появившиеся в Cortex-A). Поэтому, если интересуют именно "настоящие" АРМы, начинать лучше со старья.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB