реклама на сайте
подробности

 
 
> Возможно ли такое run code from SD with Atmega?
adruha
сообщение Apr 30 2011, 18:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 11-12-07
Из: Москва
Пользователь №: 33 203



Полазил не нашел ответа на свой вопрос, хотелось бы писать код программы и записывать его на SD а выполнять а Mege. Возможно ли такое, ткните пожалуйста пальцем где почитать?

Сообщение отредактировал adruha - Apr 30 2011, 18:23
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 23)
aaarrr
сообщение Apr 30 2011, 19:07
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Нет.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Apr 30 2011, 19:45
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Можно загрузить во внутреннюю память программ с SD, а там уже выполнять.
ЗЫ. А иначе все равно не бывает.
ЗЗЫ. Можно еще запустить на Меге виртуальную машину, а уже на SD хранить код виртуальной машины.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 30 2011, 19:55
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ArtemKAD @ Apr 30 2011, 23:45) *
Можно загрузить во внутреннюю память программ с SD, а там уже выполнять.

Можно. Хоть и не один раз, но все равно недолго.

Цитата(ArtemKAD @ Apr 30 2011, 23:45) *
ЗЗЫ. Можно еще запустить на Меге виртуальную машину, а уже на SD хранить код виртуальной машины.

Тогда уж проще взять другой процессор.
Go to the top of the page
 
+Quote Post
OKF
сообщение Apr 30 2011, 19:58
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 25-10-06
Пользователь №: 21 651



Смотря какой "код программы". В меге можно иметь программу, которая будет интерпретировать "код программы" на SD. Ищите Basic на меге, если такое устраивает.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Apr 30 2011, 20:01
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Тогда уж проще взять другой процессор.

Насколько я знаю нет других процессоров способных выполнять код в SD. Обычно все его куда-то сперва загружают (во флешь или оперативку).
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 30 2011, 20:05
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ArtemKAD @ May 1 2011, 00:01) *
Насколько я знаю нет других процессоров способных выполнять код в SD. Обычно все его куда-то сперва загружают (во флешь или оперативку).

Естественно. Просто вариант с загрузкой кода во флеш я бы вообще рассматривать всерьез не стал (если только он не загружается десяток-другой раз за все время жизни изделия).
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Apr 30 2011, 20:12
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Просто вариант с загрузкой кода во флеш я бы вообще рассматривать всерьез не стал (если только он не загружается десяток-другой раз за все время жизни изделия).

Почему? Гарантированный ресурс записи во флешь - более 10тыс. раз. Почему нельзя в серьез рассматривать?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 30 2011, 20:49
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ArtemKAD @ May 1 2011, 00:12) *
Почему? Гарантированный ресурс записи во флешь - более 10тыс. раз. Почему нельзя в серьез рассматривать?

Ну, если бы ресурс был 100K-1M, то еще можно было бы думать в этом направлении. А так он выбирается десятком записей в день за 2,5 года.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Apr 30 2011, 21:38
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
А так он выбирается десятком записей в день за 2,5 года.

10 раз каждый день заливать из SD-карты в МК новое ПО? Держателю SD-карты раньше плохо не станет?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 30 2011, 21:47
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ArtemKAD @ May 1 2011, 01:38) *
10 раз каждый день заливать из SD-карты в МК новое ПО? Держателю SD-карты раньше плохо не станет?

Так речь же идет не о том, чтобы заливать новое ПО (это как раз и делается десяток-другой раз за всю жизнь), а о подгрузке оверлеев. В таком разрезе AVR неприменим.
Впрочем, не совсем понятно, что именно нужно ТС - обычный загрузчик, или произвольное выполнение чего-то с карты.

Цитата(ArtemKAD @ May 1 2011, 01:38) *
Держателю SD-карты раньше плохо не станет?

Нормальный держатель, кстати, держит те же 10K циклов sm.gif
Go to the top of the page
 
+Quote Post
adruha
сообщение May 1 2011, 15:53
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 11-12-07
Из: Москва
Пользователь №: 33 203



Цитата(aaarrr @ May 1 2011, 00:47) *
Так речь же идет не о том, чтобы заливать новое ПО (это как раз и делается десяток-другой раз за всю жизнь), а о подгрузке оверлеев. В таком разрезе AVR неприменим.
Впрочем, не совсем понятно, что именно нужно ТС - обычный загрузчик, или произвольное выполнение чего-то с карты.


Нормальный держатель, кстати, держит те же 10K циклов sm.gif



Мне нужно произвольное выполнение чего-то с карты
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 1 2011, 18:10
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(adruha @ May 1 2011, 19:53) *
Мне нужно произвольное выполнение чего-то с карты

Тогда нужен не AVR8.
Go to the top of the page
 
+Quote Post
501-q
сообщение May 17 2011, 10:15
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 24-02-09
Из: Екатеринбург
Пользователь №: 45 296



Цитата(adruha @ May 1 2011, 00:16) *
Полазил не нашел ответа на свой вопрос, хотелось бы писать код программы и записывать его на SD а выполнять а Mege. Возможно ли такое, ткните пожалуйста пальцем где почитать?


На AVR'е виртульная машина, на карточке -- её код. Форт в этом смысле, пожалуй, наилучшее решение. Говорят, у SUN'овских компьютеров так БИОС сделан.

Илья
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение May 17 2011, 19:45
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(501-q @ May 17 2011, 13:15) *
На AVR'е виртульная машина, на карточке -- её код. Форт в этом смысле, пожалуй, наилучшее решение. Говорят, у SUN'овских компьютеров так БИОС сделан.

Илья

Ну естественно так можно и с любым процом, но только интерпретация минимум в 5-10 раз уменьшит производительность. При том, что любой проц с ядром ARM сможет это делать и без интерпретации, при этом за те же деньги. Так вот вопрос, зачем обязательно брится топором?
Go to the top of the page
 
+Quote Post
501-q
сообщение May 18 2011, 01:52
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 24-02-09
Из: Екатеринбург
Пользователь №: 45 296



Цитата(SasaVitebsk @ May 18 2011, 01:45) *
Ну естественно так можно и с любым процом, но только интерпретация минимум в 5-10 раз уменьшит производительность. При том, что любой проц с ядром ARM сможет это делать и без интерпретации, при этом за те же деньги.


Человек хотел на меге. ARM -- это мега?!

Цитата(SasaVitebsk @ May 18 2011, 01:45) *
Так вот вопрос, зачем обязательно брится топором?


Ну, бриться не пробовал, а вот ногти в походах, бывало, топором срезал (ага, брать ножницы в поход всё как-то не соображу). Вопрос в заточке топора.

Илья
Go to the top of the page
 
+Quote Post
zombi
сообщение May 18 2011, 05:27
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ArtemKAD @ Apr 30 2011, 22:45) *
ЗЗЫ. Можно еще запустить на Меге виртуальную машину, а уже на SD хранить код виртуальной машины.

Именно так и работаем!
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение May 21 2011, 21:54
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Ну естественно так можно и с любым процом, но только интерпретация минимум в 5-10 раз уменьшит производительность. При том, что любой проц с ядром ARM сможет это делать и без интерпретации, при этом за те же деньги. Так вот вопрос, зачем обязательно брится топором?

Это какой такой "любой проц с ядром ARM" умеет исполнять код во внешней SD-карте? От того, что он умеет содержимое загрузить в оперативку (из которой еще и прога для своих нужд кусок отхавает) и там исполнить, это совсем не означает, что ARM научился "это делать и без интерпретации, при этом за те же деньги".
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 21 2011, 22:32
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ArtemKAD @ May 22 2011, 01:54) *
Это какой такой "любой проц с ядром ARM" умеет исполнять код во внешней SD-карте? От того, что он умеет содержимое загрузить в оперативку (из которой еще и прога для своих нужд кусок отхавает) и там исполнить, это совсем не означает, что ARM научился "это делать и без интерпретации, при этом за те же деньги".

Господи, далось вам это "исполнение во внешней SD-карте"! Вы же не требуете от PC исполнения программы непосредственно на HDD?
А вот загрузить и выполнить без интерпретации - да, какой-нибудь ARM или MSP может, а AVR8 - нет.
Go to the top of the page
 
+Quote Post
EugenyAM
сообщение May 22 2011, 04:04
Сообщение #20


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 14-10-08
Из: Omsk
Пользователь №: 40 929



Цитата(aaarrr @ May 22 2011, 05:32) *
Господи, далось вам это "исполнение во внешней SD-карте"! Вы же не требуете от PC исполнения программы непосредственно на HDD?
А вот загрузить и выполнить без интерпретации - да, какой-нибудь ARM или MSP может, а AVR8 - нет.


Из 8-битников STM8 умеют исполнять код в ОЗУ. Единое адресное пространство кода и данных - сильная вещь.
EEPROM, кстати тоже в нем находится. Периферия будет даже в чем-то помощнее, чем у меги.

Сообщение отредактировал EugenyAM - May 22 2011, 04:05
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение May 22 2011, 08:25
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Единое адресное пространство кода и данных - сильная вещь. EEPROM, кстати тоже в нем находится.

Куда уж сильнее - размер почти каждого адреса(в т.ч. и EEPROM) становится 16 (а то и 24) битным... В результате разбухает как адресация так и коды операций многие из которых гораздо больше 2 байт(хотя есть несколько 1 байтовых которые по факту требуют предварительно команд загрузки). Результат - гораздо больший код, что приводит к тому, что программа которая реально помещается в 4кБ AVR никак не может влезть в 4кБ STM8. В лучшем случае - полуторократное увеличение размера кода...
Цитата
Периферия будет даже в чем-то помощнее, чем у меги.

Осталось придумать в чем...
Go to the top of the page
 
+Quote Post
EugenyAM
сообщение May 22 2011, 17:28
Сообщение #22


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 14-10-08
Из: Omsk
Пользователь №: 40 929



Цитата(ArtemKAD @ May 22 2011, 15:25) *
Куда уж сильнее - размер почти каждого адреса(в т.ч. и EEPROM) становится 16 (а то и 24) битным...

Обращение к EEPROM в этом случае происходит напрямую, что экономит как код, так и такты. На 16 МГц дополнительные такты ожидания не нужны. Просто объявляем переменную по адресу EEPROM и работаем стандартными средствами.

Цитата(ArtemKAD @ May 22 2011, 15:25) *
Результат - гораздо больший код, что приводит к тому, что программа которая реально помещается в 4кБ AVR никак не может влезть в 4кБ STM8. В лучшем случае - полуторократное увеличение размера кода...

Цена STM8 при одинаковом объеме Flash ниже AVR раза в 3. т.е. можно поставить камень с большим объемом Flash без увеличения цены. Внутри семейства полная Pin-to-pin совместимость одинаковых корпусов)

Цитата(ArtemKAD @ May 22 2011, 15:25) *
Осталось придумать в чем...

STM8S
Например 16-битный таймер с расширенными возможностями. Аналогов у AVR не имеет.
Прерывания может вырабатывать любой пин любого порта по изменению уровня. Каждый порт имеет свой вектор. Аналог PCINT у AVR только на некоторых портах и не на всех кристаллах.
Приоритетная система вложенных прерываний. Отсутствует у AVR.
АЦП может иметь до 16 входов (зависит от корпуса).
У АЦП есть функции автоматического преобразования группы нескольких входов с прерыванием по последнему и функция мультивыборки по одному входу - полезна для измерений с усреднением.
Есть регистры верхнего и нижнего порога с выдачей прерывания при выходе значения за границы.
Аналоговый Watchdog при выходе значения за границы.
Подсистема тактирования позволяет переключать источники на лету, есть режим автоматического перехода на RC-генератор при отказе кварца.
Все фьюзы можно настроить из программы после разблокировки записи.
EEPROM также имеет блокировку записи.
UART поддерживает протоколы LIN, IrDA.
Встроенный BootLoader через UART (SPI, CAN)
Аппаратный бипер. В AVR для аналогичной функции требуется выделение целого таймера.
Таймеры AWU и Window Watchdog. Пока не использовал, но в определенных ситуациях могут быть полезными.
Есть уникальный 96-битный серийный номер процессора.
Все команды ядра CPU доступны во всех камнях без ограничений (включая умножение и деление).
(-) Нет аналогового компаратора (есть почти во всех AVR)
(-) Нет дифференциальных входов АЦП (ATMega16,32,64,128)
(-) Нет интерфейса внешней памяти (ATMega8515, ATMega128)
ну и если отвлечься от периферии...
(-) Нет библиотеки, аналога V-USB sm.gif
(-) Нет компилятора GCC (для кого-то это может стать препятствием к освоению, а для кого-то отсутствие компилятора CodeVision sm.gif )
(-) Нет корпусов DIP sm.gif

STM8L - вся периферия STM8S, плюс
Часы реального времени с отдельным батарейным питанием,
4 канала DMA.
АЦП имеет разрядность 12 бит.
Есть один канал ЦАП тоже 12 бит.
2 аналоговых компаратора (у AVR - один)
IrDA модулятор.
Модуль шифрования AES.

Сообщение отредактировал EugenyAM - May 22 2011, 17:31
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение May 22 2011, 20:28
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Обращение к EEPROM в этом случае происходит напрямую, что экономит как код, так и такты. На 16 МГц дополнительные такты ожидания не нужны. Просто объявляем переменную по адресу EEPROM и работаем стандартными средствами.

Даже так? :D
Тогда открой даташит на любой STM8 и посмотри сколько времени пишется одна ячейка EEPROM. Почти до 7 мс. Скажи, что станет с другими ячейками если в них попытаться записать не дождавшись окончания записи предыдущей?!
Так что там не нужно ждать?!
ЗЫ. Для справки - EEPROM переменная в Си всегда "Просто объявляем переменную по адресу EEPROM и работаем стандартными средствами". Но в реализации процедуры всегда в начале идет ожидание завершения предыдущей операции этим модулем. Т.к. модуль физически один и он работает медленнее чем возможны к нему обращения особенно при высокой тактовой.
Цитата
Цена STM8 при одинаковом объеме Flash ниже AVR раза в 3. т.е. можно поставить камень с большим объемом Flash без увеличения цены.

Думаешь? Берем мои любимые Atmega48 с сегодняшней ценой в 0,9$. Вы можете предложить STM8 с 4кБ за 0,3$ ? Или все-же приходится брать "аналог" STM8 за 1,2$ ?
Цитата
Например 16-битный таймер с расширенными возможностями. Аналогов у AVR не имеет.

В смысле? Стандартный 16 битный таймер чем не аналог? Не говоря уже о 16 битных таймерах xMega...
Цитата
Приоритетная система вложенных прерываний. Отсутствует у AVR.

Присутствует в старших AVR.
Цитата
АЦП может иметь до 16 входов (зависит от корпуса).

??? Смысл? АЦП все равно один (в старших AVR - могут быть два).
Цитата
У АЦП есть функции автоматического преобразования группы нескольких входов с прерыванием по последнему и функция
.....
Встроенный BootLoader через UART (SPI, CAN)

В старших AVR практически все есть.
Цитата
Аппаратный бипер. В AVR для аналогичной функции требуется выделение целого таймера.

Дык когда Beep-ер не нужен он стоит без дела. А вот таймер в хозяйстве вещь полезная всегда. Кроме того пищалка на 3 тона - сегодня это не смешно. Проще поставить таки биппер!
Цитата
STM8L - вся периферия STM8S, плюс
Часы реального времени с отдельным батарейным питанием,
4 канала DMA.
АЦП имеет разрядность 12 бит.
Есть один канал ЦАП тоже 12 бит.
2 аналоговых компаратора (у AVR - один)
IrDA модулятор.
Модуль шифрования AES.

Сравни с xMega....
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 23 2011, 07:05
Сообщение #24


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Давайте внимательно прочтём название темы и перестанем уклоняться в холивар.
Модератор.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01629 секунд с 7
ELECTRONIX ©2004-2016