roboforum.ru

Технический форум по робототехнике.

Исполнение инструкций с SD карты

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Исполнение инструкций с SD карты

Сообщение Сергей Казаков » 03 июл 2016, 22:05

Такая проблема- делаю игровую приставку на avr, которая читает игры с SD карты. Как исполнить инструкции (ассемблер или машинный код) из данного файла?
Последний раз редактировалось Сергей Казаков 11 июл 2016, 17:47, всего редактировалось 1 раз.
Сергей Казаков
 
Сообщения: 2
Зарегистрирован: 03 июл 2016, 21:48
прог. языки: с++, ассемблер
ФИО: Казаков Сергей Вадимович

Re: Исполнение инструкций с CD карты

Сообщение Madf » 04 июл 2016, 12:39

1. зачем дублировать темы? forum2/topic16620.html?view=unread#unread
2. если "avr" имеется ввиду МК фирмы Atmel, то - никак. Если вы делаете эмулятор игровой консоли, то алгоритм строите так, что машинный код для консоли можно обрабатывать как данные, тогда их хранить можно как и где угодно.

зы: вообще в инете есть уже готовые разработки...
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Исполнение инструкций с CD карты

Сообщение Myp » 04 июл 2016, 13:28

сложно будет сделать игру с картами, если даже не знаешь как они правильно называются.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Исполнение инструкций с CD карты

Сообщение Dmitry__ » 04 июл 2016, 15:06

У авр разделена память программ и память данных. Поэтому авр может выполнять команды только с внутр. флеш памяти. Но можно залить в авр загрузчик (есть открытые проекты), который будет копировать код с cd карты в память и потом исполнять его. Но лучше перейти на нормальные контроллеры типа арм :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Исполнение инструкций с CD карты

Сообщение Madf » 04 июл 2016, 15:32

Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Исполнение инструкций с CD карты

Сообщение elmot » 05 июл 2016, 13:47

Топовые Cortex M7 от stm умеют прозрачно исполнять код, лежащий в SPI flash памяти - там запилен специальный кэш-контроллер под это. Поскольку sd карты до определенной степени совместимы с spi flash, то вполне возможно, что там можно и напрямую исполнять.

Добавлено спустя 21 секунду:
Щютка, если чо.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Исполнение инструкций с CD карты

Сообщение Madf » 05 июл 2016, 14:55

ну файловую систему они вряд ли поддерживают, а на сд, напрямую мало кто работает с данными
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Исполнение инструкций с CD карты

Сообщение Сергей Казаков » 05 июл 2016, 15:23

Dmitry__ писал(а):У авр разделена память программ и память данных. Поэтому авр может выполнять команды только с внутр. флеш памяти. Но можно залить в авр загрузчик (есть открытые проекты), который будет копировать код с cd карты в память и потом исполнять его. Но лучше перейти на нормальные контроллеры типа арм :)

То есть я выбираю файл, затем ребутаю МК и после исполнения опять записываю изначальную прошивку?

Добавлено спустя 26 минут 32 секунды:
Dmitry__ писал(а):. Но лучше перейти на нормальные контроллеры типа арм :)

А на арм так можно?
Сергей Казаков
 
Сообщения: 2
Зарегистрирован: 03 июл 2016, 21:48
прог. языки: с++, ассемблер
ФИО: Казаков Сергей Вадимович

Re: Исполнение инструкций с CD карты

Сообщение Myp » 05 июл 2016, 16:05

пока не переименуете тему и не запомните как правильно называется SD карта
ничегошеньки у вас не выйдет.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Исполнение инструкций с CD карты

Сообщение Madf » 05 июл 2016, 17:05

Сергей Казаков писал(а):То есть я выбираю файл, затем ребутаю МК и после исполнения опять записываю изначальную прошивку?

Всё зависит от вашей фантазии (как напишите алгоритм).

зы: вообще бутовая область в авр небольшая, полноценно поддержку файловой системы на SD не получится сделать...впрочем и ОЗУ мало, даже у топовых, лучше натянуть внешнюю ОЗУ и в неё вливать данные с карты, а потом придумать аля "скриптовый" язык, который будет выполняться (пошагово) в внешней памяти. Кстати, если брать XMega серию A1, то там есть интегрированный контроллер внешней памяти (аля расширение).
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Исполнение инструкций с CD карты

Сообщение Angel71 » 05 июл 2016, 23:20

Сергей Казаков, для начала не помешает прекратить задавать такие вопросы, а заняться изучением программирования на ассемблере и си под авр или мк с какой архитектурой захотите, изучить архитектуру и т.д. скорей всего вам это лень, раз задаёте такие вопросы, т.е. вводите в поисковике "avr game console", находите опенсорс проекты и не маетесь.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Исполнение инструкций с CD карты

Сообщение elmot » 06 июл 2016, 00:01

Сергей Казаков писал(а):
Dmitry__ писал(а):У авр разделена память программ и память данных. Поэтому авр может выполнять команды только с внутр. флеш памяти. Но можно залить в авр загрузчик (есть открытые проекты), который будет копировать код с cd карты в память и потом исполнять его. Но лучше перейти на нормальные контроллеры типа арм :)

То есть я выбираю файл, затем ребутаю МК и после исполнения опять записываю изначальную прошивку?


Перегружать не надо. Пишешь в отдельную область и отдаешь туда управление.

Dmitry__ писал(а):. Но лучше перейти на нормальные контроллеры типа арм :)

А на арм так можно?

Как два пальца об асфальт. АРМ - фон-неймановская архитектура, память общая. Считал в память-исполнил. Да и чипы при примерно той же цене по своим параметрам порвут avr8 как тузик грелку.

Кстати - приставка - это вывод на видео? или куда?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Исполнение инструкций с CD карты

Сообщение Dmitry__ » 06 июл 2016, 00:45

Ну на заданные мне вопросы тут ответили, отвечу на другие :)
Madf писал(а):зы: вообще бутовая область в авр небольшая, полноценно поддержку файловой системы на SD не получится сделать...впрочем и ОЗУ мало

1к бута в авр это просто праздник в сравнении с 2к в мсп430. В мсп430 средняя команда занимает 5-6 байт :cry: Вот где я помучился со своим загрузчиком, правда загрузчик по эфиру...
Да и можно расширять загрузчик до любых размеров, отьедая основную память, а в самом загрузчике запретить себя портить.
Для sd есть очень маложрущие файловые системы от чана:
http://elm-chan.org/fsw/ff/00index_e.html
Есть еще миниатюрнее.

Загрузчиков под авр много, разных, хороших. Только под ардуины их наклепали штук 5. Есть с криптографией - гуглить "avr aes".
https://habrahabr.ru/post/224383/
http://microsin.net/programming/AVR/avr231-aes-bootloader.html
http://we.easyelectronics.ru/AVR/zagruzchik-dlya-mikrokontrollerov-avr.html
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Исполнение инструкций с CD карты

Сообщение Madf » 06 июл 2016, 13:00

Дим, я как бы в теме, но всё равно спасибо.)
На счет SD карты, проблема была в том, что минимально для работы с ней, нужно около 512 байт буфера, чтобы элементарно была возможность работать с её блоком/страницей, ещё нужно место под переменные + вообще память для переработки файловой системы. В общем к чему это я, что все эти наработки не работают на удобных, мелких МК типа Attiny, чтение на "лету" SD карты не встречал (без запоминания буфера).
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Исполнение инструкций с CD карты

Сообщение Dmitry__ » 06 июл 2016, 15:42

Madf писал(а):На счет SD карты, проблема была в том, что минимально для работы с ней, нужно около 512 байт буфера, чтобы элементарно была возможность работать с её блоком/страницей

Нууууу, а говоришь в теме. :)
Вообще не встречал такой проблемы, тем более если с карточки надо только читать.
Очень экономное использование RAM (44 байта на рабочую область + некоторое количество на стек).
Очень маленький объем программного кода (2 .. 4 килобайта).

http://microsin.net/programming/file-systems/petit-fatfs-file-system.html
Плеер wav на тиньке:
http://ra4nal.qrz.ru/wav85.shtml
Memory Usage (R0.03)
Код: Выделить всёРазвернуть
                   АVR             x86
Compiler           gcc(WinAVR)     VC6
_WORD_ACCESS       1               1
Code (default)     2020            1589
Code (!_USE_READ) -428             -236
Code (_USE_DIR)   +564             +415
Code (_USE_LSEEK) +490             +228
Code (_USE_WRITE) +516             +323
RAM (bss)         2                4
RAM (work)        42               44

http://elm-chan.org/fsw/ff/pf/appnote.html
На pic, компилицо в 163 байта озу со всеми проигрывателями :)
http://www.labkit.ru/html/autocontrol?id=455
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

След.

Вернуться в Микроконтроллеры

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

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