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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> И еще чуть-чуть места, Что задействовать под память программ?
idle1
сообщение Oct 12 2009, 22:23
Сообщение #1


Участник
*

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



Реально ли использовать EEPROM для памяти программ (исполняемого кода) в добавок к основным 0x03FF(2Kb)? В tiny2313?
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 12 2009, 22:43
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(idle1 @ Oct 13 2009, 02:23) *
Реально ли использовать EEPROM для памяти программ (исполняемого кода) в добавок к основным 0x03FF(2Kb)? В tiny2313?


Думаю, что нереально. Доступ к EEPROM гораздо продолжительнее, чем FLASH, чтобы на программа могла бы там работать с нормальной тактовой частотой. А главное, что это и технически невозможно.

Да и тиня эта не способна модифицировать свой программый код, в отличие от старших моделей AVR (типа ATmega). Поэтому даже оверлей тут невозможно организовать (обменивать код между FALSH и EEPROM по мере надобности).

Самое разумное, что можно посоветовать в том случае, когда не хватает памяти для кода - взять МК с большим объемом памяти. Однако совместимых по ногам с 2312 не существует.

И последнее. Если памяти не хвататает чуток, то еще можно переписать свою программу на ассемблере, если до этого она у вас была написана под С. Startup-блок можно еще удалить, который инициирует регистры, и делать это самим. Ну вот в общем и все, что приходит в голову.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 13 2009, 05:58
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(idle1 @ Oct 13 2009, 07:23) *
Реально ли использовать EEPROM для памяти программ (исполняемого кода) в добавок к основным 0x03FF(2Kb)? В tiny2313?

Нет. В арихтектуре AVR это абсолютно невозможно и исключено. Самым правильным решением является закладка МК с запасом памяти программ. Например, 20 - 50%.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
BORIV
сообщение Oct 13 2009, 07:18
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 131
Регистрация: 5-05-06
Пользователь №: 16 820



Цитата(Xenia @ Oct 13 2009, 02:43) *
Да и тиня эта не способна модифицировать свой программый код, в отличие от старших моделей AVR (типа ATmega). Поэтому даже оверлей тут невозможно организовать (обменивать код между FALSH и EEPROM по мере надобности).

С чего Вы это взяли? Команды записи EEPROM присутствуют. Обмен сделать можно, только долго будет.
Go to the top of the page
 
+Quote Post
idle1
сообщение Oct 13 2009, 07:56
Сообщение #5


Участник
*

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



Цитата(BORIV @ Oct 13 2009, 11:18) *
С чего Вы это взяли? Команды записи EEPROM присутствуют. Обмен сделать можно, только долго будет.

EEPROM писать то не проблема, а вот как с флеш дела обстоят? haker_fox на мой взгляд прав.
Здесь я хотел убедиться в правильности своего мнения.
Go to the top of the page
 
+Quote Post
BORIV
сообщение Oct 13 2009, 08:42
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 131
Регистрация: 5-05-06
Пользователь №: 16 820



Цитата(idle1 @ Oct 13 2009, 11:56) *
EEPROM писать то не проблема, а вот как с флеш дела обстоят? haker_fox на мой взгляд прав.
Здесь я хотел убедиться в правильности своего мнения.


Извиняюсь, описался: команды записи флеш присутствуют. Ничто не мешает кусок из EEPROM перекинуть во флеш, если время не критично. (Использовал флеш для сохранения данных, редко изменяемых.)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 13 2009, 09:03
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(BORIV @ Oct 13 2009, 11:42) *
Извиняюсь, описался: команды записи флеш присутствуют. Ничто не мешает кусок из EEPROM перекинуть во флеш, если время не критично.
И сколько займет код для такого перекидывания? И на сколько проходов программы по обмениваемым кускам хватит ресурса флеш?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
BORIV
сообщение Oct 13 2009, 09:16
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 131
Регистрация: 5-05-06
Пользователь №: 16 820



Цитата(Сергей Борщ @ Oct 13 2009, 13:03) *
И сколько займет код для такого перекидывания? И на сколько проходов программы по обмениваемым кускам хватит ресурса флеш?


Я отвечал на неправильное утверждение в посте №2. Целесообразно ли применять такое решение, зависит от конкретной задачи. В 99% случаев - нецелесообразно.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 13 2009, 09:58
Сообщение #9


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Да там и EEPROM-то немного. Но помочь может, всё завиcит от логики программы.
Можно поместить в EEPROM какие-то таблицы, которые были во флеше. А если таких таблиц нет - сделать :-)
Например, какой-то развесистый switch превратить в набор функций, вызываемых по индексу, таблицу сохранить в EEPROM.
До такого у меня не доходило, таблицы во флеше же и сохранял - уже это помогало.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 13 2009, 12:45
Сообщение #10


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Как бы размер кода по киданию оверлея не оказался тем самым критическим размером, которого не хватает)))


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
tourist
сообщение Oct 13 2009, 13:34
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 6-04-09
Из: Донецк
Пользователь №: 47 247



На сколько я знаю для tiny2313 нельзя сделать bootloader, а Вы пишите:
Цитата(BORIV @ Oct 13 2009, 11:42) *
команды записи флеш присутствуют.

Как так? laughing.gif
Или я чего-то не допонял...


--------------------
Go to the top of the page
 
+Quote Post
BORIV
сообщение Oct 13 2009, 15:22
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 131
Регистрация: 5-05-06
Пользователь №: 16 820



Цитата(tourist @ Oct 13 2009, 17:34) *
На сколько я знаю для tiny2313 нельзя сделать bootloader, а Вы пишите:

Как так? laughing.gif
Или я чего-то не допонял...

Обложка даташита: -2K Bytes of in-System Self Programmable Flash.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 13 2009, 23:37
Сообщение #13


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(BORIV @ Oct 14 2009, 00:22) *
Обложка даташита: -2K Bytes of in-System Self Programmable Flash.

Читайте что такое ISP.
Кратко: это технология, которая позволяет программировать микросхему, не вынимая ее из устройства, т.е. не демонтируя с печатной платы, т.е. в системе.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 14 2009, 00:13
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Вообще-то нужно различать ISP (In-System-Programming) и IAP (In-Application-Programmig).
Первый термин означает, что программу в память МК можно загрузить извне, без выпаивания его из устройства. Практически все современные МК имеют подобную возможность. Для этого могут использоваться совершенно разные интерфейсы JTAG, UART, SPI, USB и т.п. Но в любом случае при программировании МК используется загружаемая извне или уже встроенная в виде ROM или запрограммированной части Flash, специальная программа (исполняемый код), называемая Bootloader. Эта программа "знает как" и "умеет" программировать Flash-память данного конкретного МК.
IAP же означает, что МК может модифицировать свою собственную Flash-память, выполняя в самом МК пользовательскую программу, загруженную в память программ. Причем IAP может работать исключительно с использованием встроенной программы Bootloader, а может и не использовать ее, если имеется такая аппаратно-программная возможность и алгоритмы программирования описаны в документации. МК, фигурирующий у топикстартера (ATtiny2313), совершенно точно поддерживает ISP. А вот насчет IAP я что-то не уверен. Но поскольку я не являюсь большим знатоком семейства AVR, то не буду утверждать этого однозначно.
Go to the top of the page
 
+Quote Post
BORIV
сообщение Oct 14 2009, 11:07
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 131
Регистрация: 5-05-06
Пользователь №: 16 820



Цитата(haker_fox @ Oct 14 2009, 03:37) *
Читайте что такое ISP.
Кратко: это технология, которая позволяет программировать микросхему, не вынимая ее из устройства, т.е. не демонтируя с печатной платы, т.е. в системе.


А слово SELF Вам ничего не говорит?
Прочитайте хотя бы даташит, перед тем, как других учить.
Go to the top of the page
 
+Quote Post

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

 


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


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