LINUX.ORG.RU
ФорумTalks

Linux на AVR? Да легко!

 , , ,


0

1


[Ъ]Некий Dmitry решил запустить Linux на восьмибитном AVR. Как вы надеюсь понимаете, задача из разряда невозможных. Но дуракам закон не писан и этот чудак сделал софтовый эмулятор ARM для AVR. Пишут, что линукс загружается аж за два часа, а эффективная рабочая частота где-то в районе 6,5 КГц[/Ъ]

где-то в районе 6,5 КГц

Какое-то слишком уж большое падение производительности, наверняка можно было бы выжать хотя бы мегагерц.

PolarFox ★★★★★
()

сделал софтовый эмулятор ARM для AVR

Ну это не Ъ.

Ramen ★★★★
()

Это не путь джедая, гнать фреймворкщика в шею! Истинный Ъ пропатчил бы ядро и собрал бы под AVR.

segfault ★★★★★
()
Ответ на: комментарий от PolarFox

Надо программно

  • Читать флеш.
  • Читать/писать SRAM.
  • Декодировать инструкции.
  • Исполнять 32-х битные инструкции на ВМ на 8-ми битном процессоре.

Мегагерц тут ну ни как не выжать.

Artificial_Thought ★★★★
() автор топика
Ответ на: комментарий от Artificial_Thought

Это невозможно, хотя бы потому что AVR — гарвардская архитектура.

Тогда он, как истинный джедай, должен был сказать, что это не нужно.

cipher ★★★★★
()

Кстати автор мог бы придумать какую-нибудь лёгкую для эмуляции 32-бит архитектуру и написать для неё компилятор (:

PolarFox ★★★★★
()

Да, не оскудела талантами планета наша...

geekless ★★
()
Ответ на: комментарий от Artificial_Thought

хотя бы потому что AVR — гарвардская архитектура.

это не имеет значения, линух много на каких архитектурах работает

true_admin ★★★★★
()
Ответ на: комментарий от Artificial_Thought

Написать ещё-одну-никому-не-нужную ОС?

Конечно, лучше неписать ещё-один-никому-не-нужный эмулятор.

segfault ★★★★★
()
Ответ на: комментарий от true_admin

это не имеет значения, линух много на каких архитектурах работает

покажи хоть одну гарвардскую архитектуру на которой работает линупс

exception13 ★★★★★
()
Ответ на: комментарий от true_admin

Что-что? Не вижу в списке поддерживаемых архитектур ни одного гарварда. Все фон-нейманские.

Artificial_Thought ★★★★
() автор топика
Ответ на: комментарий от Artificial_Thought

В 30-х годах правительство США поручило Гарвардскому и Принстонскому университетам разработать архитектуру ЭВМ для военно-морской артиллерии. Победила разработка Принстонского университета (более известная как архитектура фон Неймана, названная так по имени разработчика, первым предоставившего отчет об архитектуре), так как она была проще в реализации.

Один массив памяти сделать проще, чем два раздельных.

PolarFox ★★★★★
()
Ответ на: комментарий от exception13

покажи хоть одну гарвардскую архитектуру на которой работает линупс

Не вижу в списке поддерживаемых архитектур ни одного гарварда. Все фон-нейманские.

exception13, Artificial_Thought

Это не значит что он там работать не может. C для avr есть, так что пол дела сделано.

true_admin ★★★★★
()
Ответ на: комментарий от exception13

и надеюсь вы знаете что такое гарвардская архитектура и чем отличается от фон неймановской?

Да. А ещё я писал на асме и С мелкие проги из разряда «помигать светодиодом», так что представление имею.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Он не может там работать потому что там раздельные адресные пространства для данных и программ. Он не сможет загрузить ничего в память программ. И ни одна программа не будет работать.

Artificial_Thought ★★★★
() автор топика
Ответ на: комментарий от true_admin

Код исполняется из отдельной памяти, которую в принципе можно считать RO. И это не считая мизерных объёмов этой самой памяти.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

ну, если ограничения в том что она RO то да, хрен что сделаешь. Но это не ограничение гарвардской архитектуры, это avr. У обычного компа данные на диске и память тоже в разных адресных пространствах, но это не мешает работать компу.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

У обычного компьютера программа исполняется оттуда же, где лежат данные. Программа с диска сначала загружается в память, а потом её уже передаётся управление. Здесь же программа никуда неоткуда не загружается, а сразу начинает исполняться из флешки.

Artificial_Thought ★★★★
() автор топика
Ответ на: комментарий от true_admin

Ну… другие гарвардские процессоры помимо avr — тоже унылые микроконтроллеры с жалкими килобайтами памяти, из которых программная в лучшем случае сделана в виде flash.

PolarFox ★★★★★
()
Ответ на: комментарий от Artificial_Thought

Ну, ОС, работающую в таких условиях представить всё-таки вполне возможно, хоть и без возможности запускать произвольные программы. Вопрос только в сложности превращения линукса в такую ОС. И в нужности.

Yareg ★★★
()
Ответ на: комментарий от Artificial_Thought

А ещё можно сделать одну юзерспейсную программу - интерпретатор какого-нибудь максимально лёгкого байткода. И компилятор произвольного кода в этот байт-код.

Yareg ★★★
()

Может торвальдсу написать? Пусть добавляет в поддерживаемые археттектуры

GNU-Ubuntu1204LTS ★★★
()

Может на домофоне поставить?там около 10 мегагерц

GNU-Ubuntu1204LTS ★★★
()
Ответ на: комментарий от GNU-Ubuntu1204LTS

8битный проц 6502 ( http://ru.wikipedia.org/wiki/6502 )

Процессор: 8-битный Ricoh, основанный на ядре 6502, содержащий в одном кристалле также заказной звуковой процессор и ограниченный контроллер DMA.
Региональные различия:
NTSC-версия, названная RP2A03, работает на частоте 1,79 МГц, этот процессор также использовался в PlayChoice-10 и Nintendo Vs. Series;

Основное (ОЗУ): 2 КБ, возможность использования дополнительной памяти, размещаемой на картридже

ПЗУ картриджа: до 49 128 байт (около 48 КБ) для ПЗУ, расширенного ОЗУ, и входа/выхода картриджа; возможно использование большего объёма памяти с помощью устройств управления расширенной памятью (мапперов)

Видеопамять: 2 килобайта, дополнительная память может быть предоставлена картриджем.

Внутренняя память PPU: 256 байт памяти позиций/атрибутов, палитры (позволяет выбирать цвета фона и спрайтов) на разных шинах PPU.

Внешняя память PPU: 2 килобайта ОЗУ для описания фонового изображения на плате самого NES, и дополнительно — 8 килобайт ПЗУ или ОЗУ на картридже (потенциально — любое разумное количество, с использованием переключения банков памяти).

Взято с http://ru.wikipedia.org/wiki/Nintendo_Entertainment_System#.D0.90.D0.BF.D0.BF...

ymuv ★★★★
()
Ответ на: комментарий от Artificial_Thought

Он не может там работать потому что там раздельные адресные пространства для данных и программ. Он не сможет загрузить ничего в память программ. И ни одна программа не будет работать.

Ну, например, в Intel MSC51 (8051, КР1816ВЕ51) можно переключать банки памяти программ, подменяя ПЗУ программ на ОЗУ программ, которую можно модифицировать. Я так изворачивался в одной из своих разработок :)

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

В AVR так нельзя. Хотя можно впрочем писать поблочно во флеш из программы.

Artificial_Thought ★★★★
() автор топика


Then 4 more hours to boot up the entire Ubuntu («exec init» and then login). Starting X takes a lot longer.



Интересно, как он свою запущенную убунту с иксами увидел, если девайс общается с внешним миром исключительно через последовательный порт? :)

Harald ★★★★★
()
Ответ на: комментарий от true_admin

Это не значит что он там работать не может. C для avr есть, так что пол дела сделано.

По факту всё ядро придется с нуля переписать. Наличия С недостаточно, да и С там нестандартный, с дополнительными фичами :)

Harald ★★★★★
()

вообще ARM - достаточно простая архитектура (по сравнению с x86), наверняка там больше времени на эмуляцию периферии ушло

Harald ★★★★★
()
Ответ на: комментарий от Artificial_Thought

Ты мне сейчас рассказываешь про avr, а не про гарвардскую архитектуру.

Вопрос в том можно ли написать ОС для этих процов при условии что у них достаточно ресурсов и нет глупых ограничений типа невозможности переключения контекстов.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.