подбираем камень

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
kisssko
Открыл глаза
Сообщения: 52
Зарегистрирован: Пт янв 10, 2014 02:05:13
Откуда: Воронеж

Re: подбираем камень

Сообщение kisssko »

BCluster писал(а):А задача то какая? В современном мире, на такие камушки заморачиваться с тем, что вы описали, весьма странно :)
asm для таких процессоров вообще примерно тоже самое что и asm для настольных ПК. Зачем он нужен?
Даже если так, чем cortex хуже по системе команд? У классического ARM, без использования thumb далеко не идеальная система команд
Про задачу уже писал вкратце. Это что то вроде универсального PC, но компактного и маложрущего, но непременно под DOS-подобной ОС. Идеи и наброски этой ОС уже имеются. Девайс нужен для диагностики и экспериментов. Что то типа программируемого логического анализатора. Основная прелесть системы команд ARM в том, что на его ассемблере ОЧЕНЬ комфортно писать код. Лучше только был PDP-11 в своё время. Команд мало, они просты, но при этом очень гибки. Не надо для каждой команды лезть в мануал. Просто сиди, и пиши код! :) В отличие от x86, писать на ассемблере критичные участки кода для арм есть смысл. У десктопных x86 слабое место - интерфейс памяти, и вся оптимизация там сводится к минимизации произвольного доступа к ней. Вот поэтому и нет там особого смысла писать на ассемблере. У арм как раз раскрывается потенциал прииспользовании ассемблера. И компилятор не всегда эффективно использует всю гибкость. Thumb2 не то, чтобы сильно хуже, но уже с заковыками, и несколько менее удобна для ручного написания кода.
Да и вовсе не устаревшая классическая система комманд ARM. Вон, в Cortex-A во всю используется. Но такой проц, это слишком жирно - MMU не нужен, гигагерцы тоже. Около 100MHz хватит. Да и отличается Cortex-A от ARM7TDMI только расширениями, реализованными через сопроцессор. Система команд самого ядра почти не изменилась. Собственно, потому и предпочтительней ARM7DTMI. Возможностей хватает, излишества ни к чему. Хотя и на stm32f4xx посматриваю. :)

P.S. Собственно, тема создавалась в надежде, что кто то знаком с какими то малопопулярными камушками. А про то, что было перечислено здесь я и сам знаю. :(
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: подбираем камень

Сообщение oleg110592 »

а почему DOS? Работа с FAT будет? На ассемблере?
почти Windows уже готовая есть: https://www.youtube.com/watch?v=fjc0TsO3ktQ
Реклама
Аватара пользователя
kisssko
Открыл глаза
Сообщения: 52
Зарегистрирован: Пт янв 10, 2014 02:05:13
Откуда: Воронеж

Re: подбираем камень

Сообщение kisssko »

oleg110592 писал(а):а почему DOS? Работа с FAT будет? На ассемблере?
Потому что больше свободы действий программе. В первую очередь нужна поддержка запуска этих программ.
А всё остальное есть на десктопе, нетбуке, и малине. Всякая многозадачность там.
Поддержка FAT конечно же будет. И этот DOS будет почти весь на Си и полностью абстрагирован от переферии.
К нему будет некое подобие BIOS на PC. Он должен будет поддерживать базовую консоль и системный таймер,
а так же таблицу програмных прерываний. Ну и запускать ОС.
Основные особенности этого ДОС такие:
Диск A: - стандартный ROM-диск, readonly-образ fat зашитый во flash. Там будут находится ядро, и системные файлы и утилиты, шелл, а так же базовый набор библиотек.
Диск B: - стандартный RAM диск. Настраивается либо системным вызовом, либо командой шелла. Параметра всего 2 - адрес и размер. После нужно будет отформатировать.
Планируется так же простые модель драйверов и поддержка динамических библиотек.
Формат исполняемых файлов и библиотек - Raw Binary :) Все программы и библиотеки компилятся в позиционно-независимый код. Для ARM это удобно, на эффективность не сказывается.
Но тут в основном пока теории...
oleg110592 писал(а):почти Windows уже готовая есть: https://www.youtube.com/watch?v=fjc0TsO3ktQ
Да это не нужно совсем. Да и работает как то тормознуто. Явно быдлокода много. :(
Не, многозадачность не нужна. Но вот на какой нибудь простой, быстрый, и легковесный GUI-движок посмотрел бы, в плане портирования и оформления в виде библиотеки для программ.
На днях портировал TinyGL на stm32f407 Самый быстрый OpenGL-подобный софтварный 3д-рендерер.
Результат порадовал! чуть меньше 140 fps при отрисовке нескольких кубиков с разрешением 128x96.
Для игр, конечно не пойдёт, но как универсальная рисовалка каких нибудь векторных фигур - самое оно. Там же можно и в 2d рисовать.
И главный плюс - удобный opengl-подобный API. Да и по производительности для этих целей вряд ли что то лучше найти.
Так что универсальная рисовалка уже есть! :)
Ответить

Вернуться в «ARM»