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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> выполнение кода не из flash
TarasG
сообщение Jun 5 2008, 11:00
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 72
Регистрация: 25-02-08
Пользователь №: 35 378



Вопрос скорее теоретический, т.к. не относится к какой-то конкретной задаче. Просто мне интересно, реально ли на AVR сделать что-то вроде микрокомпьютера, чтоб можно было выполнять программы, записанные, скажем, во внешней EEPROM. Я знаю о возможности самопрограммирования, когда можно загружать программы с любого носителя в flash-память, а потом выполнять. Но меня смущает ограниченность циклов перезаписи - всего 1000. Ни у кого нет мыслей по этому поводу?
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jun 5 2008, 11:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 TarasG - одна мысля - для отладки вам 1000 вроде бы хватит или 2е возьмёте , а потом то всё равно пустите изделие, а считывать EEPROM можно много раз wink.gif
Go to the top of the page
 
+Quote Post
vmp
сообщение Jun 5 2008, 11:27
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Я знаю как минимум два способа.
1. Взять FPSLIC (атмеловский чип с AVR+FPGA в одном флаконе, программа лежит в ОЗУ) или ещё какой-то камень для USB (не помню название) с внешней памятью.
2. Написать интерпретатор и выполнять программу интерпретатором.
Go to the top of the page
 
+Quote Post
GDI
сообщение Jun 5 2008, 11:28
Сообщение #4


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Это смахивает на контроллеры для автоматизации, у них подобное(или оно самое) реализовано через целевую платформу которая работает в контроллере, а пользовательские программы располагаются в еепром и оттуда выполняются, не вижу невозможности это реализовать и в АВР.
Есть же BASCOM, да и джава вроде для АВР тоже есть.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jun 5 2008, 11:40
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Выполнять программу из внешней памяти в AVR - нельзя. Но, её (программу) можно переписать из внешней памяти во flash, и уже потом выполнять. Ограничение на 1000 циклов - не такое уж и маленькое, ведь программа во внешней памяти, наверное, не часто будет обновляться. При смене программы 1 раз каждый день (что крайне редко встречается на практике) - ресурса хватит на 3 года. Можно проверять, что она (программа) уже записана во flash, и повторную запись не производить, таким образом ресурс будет тратиться только при смене программы во внешней памяти.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Jun 5 2008, 12:04
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
Ограничение на 1000 циклов

Если я не ошибаюсь, в нынешних ревизиях чипов, количество циклов записи во Flash - 10 000
Go to the top of the page
 
+Quote Post
GDI
сообщение Jun 5 2008, 12:35
Сообщение #7


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Кстати у атмела есть апноут на хранение неких изменяющихся данных во flash, т.е. некое превращение внутреннего flash в еепром.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
TarasG
сообщение Jun 5 2008, 13:56
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 72
Регистрация: 25-02-08
Пользователь №: 35 378



Вариант с виртуальной машиной, конечно, интересный. Но есть у него один существенный недостаток - потеря быстродействия sad.gif
Даже 10000 циклов - мало, если предположить, что пользователь сам быдет устанавливать и запускать программы. Т.е. это может быть 100 запусков программ в день, т.е. всего 100 дней будет жить чип sad.gif
FPSLIC - очень интересное решение. Я так понял, это at94 серия? Только вот интересно, сколько такое решение может стоить?

Цитата(vmp @ Jun 5 2008, 14:27) *
или ещё какой-то камень для USB (не помню название) с внешней памятью.

Кстати, это наиболее интересный вариант. Т.е. всё-таки есть AVRы, поддерживающие запуск программы из ОЗУ? Жаль, что названия не помните...
Go to the top of the page
 
+Quote Post
vmp
сообщение Jun 5 2008, 14:17
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Цитата(TarasG @ Jun 5 2008, 17:56) *
Вариант с виртуальной машиной, конечно, интересный. Но есть у него один существенный недостаток - потеря быстродействия sad.gif
Зависит от задачи и от набора команд виртуальной машины. Если например нужно в основном считать плавающую арифметику, то потеря будет весьма незначительной. А если надо шевелить ножками - тогда да. Можете ещё почитать про Форт.
Цитата(TarasG @ Jun 5 2008, 17:56) *
FPSLIC - очень интересное решение. Я так понял, это at94 серия? Только вот интересно, сколько такое решение может стоить?
От 12 долларов. http://www.efo.ru/doc/Atmel/price.pl

Цитата(TarasG @ Jun 5 2008, 17:56) *
Т.е. всё-таки есть AVRы, поддерживающие запуск программы из ОЗУ? Жаль, что названия не помните...

Устарели, не рекомендуются для новых разработок.
AT43USB320A - Full speed USB microcontroller with a 12 MIPS AVR, 3 function endpoints, an embedded 4-port Hub and a UART. http://www.atmel.com/dyn/resources/prod_do...nts/doc1443.pdf
AT43USB355 - Full-speed USB microcontroller with a 12 MIPS AVR, 3 function endpoints, a 2-port Hub and 12-channel 10-bit ADC, PWM and 24 Kbytes of program SRAM or mask ROM.
http://www.atmel.com/dyn/resources/prod_do...nts/doc2603.pdf
Можно еще тут покопаться:
http://www.atmel.com/dyn/products/devices.asp?family_id=688
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 5 2008, 15:48
Сообщение #10


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Ну если есть такое большое желание поизвращаться - посмотрите сюда www.systemsemi.com на камень под названием M3000. Есть версии (причем, те, которые в QFP) с интерфейсом к внешней памяти программ.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
TarasG
сообщение Jun 5 2008, 15:58
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 72
Регистрация: 25-02-08
Пользователь №: 35 378



Цитата(vmp @ Jun 5 2008, 17:17) *
Зависит от задачи и от набора команд виртуальной машины. Если например нужно в основном считать плавающую арифметику, то потеря будет весьма незначительной. А если надо шевелить ножками - тогда да. Можете ещё почитать про Форт.

Я имею ввиду например программную реализакию ядра AVR, позволяющую загружать и выполнять программы из внешних носителей, не перезаписывая flash. очевидно, что в таком случае производительность значительно упадёт, т.к. основная программа (эмулятор, зашитый в flash) сначала должна сначала распознать команду, и только потом выполнить её.
Цитата(vmp @ Jun 5 2008, 17:17) *
От 12 долларов. http://www.efo.ru/doc/Atmel/price.pl

Да, это в принципе не так уж и много. Только вот у себя я что-то не могу их найти. Да и покупать его чисто ради "желания поизвращаться" как-то неохота smile.gif Попробую я наверно "поизвращаться" с виртуальными машинами. Это по крайней мере не требует капиталовложений smile.gif
Go to the top of the page
 
+Quote Post
vmp
сообщение Jun 5 2008, 16:30
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Цитата(TarasG @ Jun 5 2008, 19:58) *
Я имею ввиду например программную реализакию ядра AVR, позволяющую загружать и выполнять программы из внешних носителей, не перезаписывая flash. очевидно, что в таком случае производительность значительно упадёт, т.к. основная программа (эмулятор, зашитый в flash) сначала должна сначала распознать команду, и только потом выполнить её.

В случае программной реализации какая разница, на каком ядре она выполняется? Запустите ее на PC и получите скорость выше реального кристалла. Если нужно отдельное устройство - поставьте микроконтроллер уровня ARM. Тот же SAM7S например. Цена того же порядка, что и AVR. Частота - 50 МГц. Или ещё какой-нибудь.
Go to the top of the page
 
+Quote Post
TarasG
сообщение Jun 5 2008, 16:51
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 72
Регистрация: 25-02-08
Пользователь №: 35 378



Собственно, вопрос то был не в смысле "как такое сделать?", а скорей "способны ли AVR на это?". И я имею ввиду не МК вообще, а именно AVR с их системой команд и главное средствами разработки.
Выводы можно сделать следующие:
1. AVR на это способны. Но только в FPSLIC исполнении.
2. AVR семейств mega, tiny и т.п. не подходят для такого рода задач.
3. Если что, смотреть надо в стороне не-AVR (например, ARM).
Спасибо за обсуждение.
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Jun 5 2008, 19:00
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Как альтернативу FPSLIC-у с аппаратным ядром AVR внутри (12$, сложно достать) можно рассмотреть еще вариант другой (нормальной, современной) FPGA с софтовым ядром AVR. Скажем младший из третьих циклонов имеет похожую цену, при этом достать намного проще, и помимо ядра AVR туда еще много чего влезет. XILINX также имеет подходящие FPGA по схожей цене. Ядро есть готовое, бесплатное на opencores-ах (там вроде код под ксайлинкс, для альтеры править придется)

Согласен, далеко не самое простое решение, для реализации придется вплотную знакомится с FPGA, но тоже ведь вариант.
Хотя я бы выбрал архитектуру, изначально работающую с внешней памятью программ. MCS51 или ARM или чтото еще.
Go to the top of the page
 
+Quote Post
TarasG
сообщение Jun 5 2008, 19:06
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 72
Регистрация: 25-02-08
Пользователь №: 35 378



Цитата(Artem_Petrik @ Jun 5 2008, 22:00) *
Хотя я бы выбрал архитектуру, изначально работающую с внешней памятью программ. MCS51 или ARM или чтото еще.

Вобщем, примерно такой вывод я и сделал.
Go to the top of the page
 
+Quote Post

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

 


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


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