Программный стек для конкретного компьютера

Я работаю над проектом, и моя команда отвечает за программный стек конкретного оборудования.

У меня в руках только набор инструкций процессора, и мне нужно разработать с его помощью полный программный стек.

Нужно ли мне что-то еще, кроме набора инструкций для ассемблера?

Обратите внимание, что я не в курсе организации аппаратной части этого компьютера.


person anichhangani    schedule 25.02.2013    source источник
comment
ISTM, что вам, по крайней мере, нужно знать, как поместить двоичные инструкции в место, где процессор может их выполнить, и как заставить его начать их обработку.   -  person 500 - Internal Server Error    schedule 26.02.2013
comment
Просто чтобы добавить к комментарию 500 - Internal Server Error, карта памяти, вероятно, будет полезна. Где ваши обработчики прерываний и таблица векторов (при использовании прерываний)? Как насчет видео, диска или других операций ввода-вывода? Кроме этого, я могу только порекомендовать, чтобы компилятор работал как можно раньше (см. compilers.iecc.com/crenshaw для простого примера на PASCAL)   -  person psema4    schedule 26.02.2013
comment
Можете ли вы уточнить, что вы подразумеваете под стеком программного обеспечения?   -  person Dougvj    schedule 26.02.2013
comment
У вас есть полная спецификация указанного стека программного обеспечения? Возможно ли это технически без ввода-вывода, то есть без взаимодействия с оборудованием, о котором вы ничего не знаете?   -  person Alexey Frunze    schedule 26.02.2013
comment
Стек программного обеспечения @Dougvj включает в себя: ассемблер, виртуальную машину, компилятор и операционную систему. Программное обеспечение, которое нам нужно, будет довольно простым (никаких причудливых вещей).   -  person anichhangani    schedule 26.02.2013


Ответы (1)


Очень короткий ответ: «вероятно, невозможно без дополнительной информации».

По крайней мере, вам нужно будет знать, где расположены различные типы памяти, что вам нужно инициализировать в самом процессоре [этого обычно нет в Руководстве по набору инструкций]. Типичные примеры: вектор прерываний, таймеры, контроллеры памяти и т. д., которые часто являются частью самого процессора, но не частью набора инструкций.

Очевидно, программный стек для цифровых наручных часов довольно прост. Стек программного обеспечения для полной системы домашних развлечений с возможностью потоковой передачи зашифрованного видео, а также просмотра веб-страниц будет довольно большим. Стек программного обеспечения для мобильного телефона еще больше. Требования к наручным часам и создание аппаратного обеспечения, необходимого для этого [не говоря о том, что вы можете легко сделать их достаточно маленькими, но игнорируя это, поскольку это вопрос программного обеспечения, а не аппаратного обеспечения], вероятно, займут максимум несколько дней. На создание смартфона, способного хотя бы с некоторым успехом конкурировать с топовыми продуктами на рынке сегодня, у большой команды очень опытных разработчиков программного обеспечения уйдет пара лет. Очевидно, что между этими относительно крайними примерами существует множество других программных систем.

person Mats Petersson    schedule 25.02.2013
comment
Поскольку это небольшой проект в нашем университете, и мы делаем его для развлечения, первая фаза нашего программного обеспечения будет довольно простой. Стек программного обеспечения включает в себя: ассемблер, виртуальную машину, компилятор и операционную систему. Программное обеспечение, которое нам нужно, будет довольно простым (никаких причудливых вещей). Также я подумал, что если набор инструкций аппаратного обеспечения уже задан, организация и внутренняя работа компьютера не будут необходимы с точки зрения программиста, поскольку нам просто нужно писать на нем программы. - person anichhangani; 26.02.2013