idle1 0 12 октября, 2009 Опубликовано 12 октября, 2009 · Жалоба Реально ли использовать EEPROM для памяти программ (исполняемого кода) в добавок к основным 0x03FF(2Kb)? В tiny2313? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 36 12 октября, 2009 Опубликовано 12 октября, 2009 · Жалоба Реально ли использовать EEPROM для памяти программ (исполняемого кода) в добавок к основным 0x03FF(2Kb)? В tiny2313? Думаю, что нереально. Доступ к EEPROM гораздо продолжительнее, чем FLASH, чтобы на программа могла бы там работать с нормальной тактовой частотой. А главное, что это и технически невозможно. Да и тиня эта не способна модифицировать свой программый код, в отличие от старших моделей AVR (типа ATmega). Поэтому даже оверлей тут невозможно организовать (обменивать код между FALSH и EEPROM по мере надобности). Самое разумное, что можно посоветовать в том случае, когда не хватает памяти для кода - взять МК с большим объемом памяти. Однако совместимых по ногам с 2312 не существует. И последнее. Если памяти не хвататает чуток, то еще можно переписать свою программу на ассемблере, если до этого она у вас была написана под С. Startup-блок можно еще удалить, который инициирует регистры, и делать это самим. Ну вот в общем и все, что приходит в голову. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба Реально ли использовать EEPROM для памяти программ (исполняемого кода) в добавок к основным 0x03FF(2Kb)? В tiny2313? Нет. В арихтектуре AVR это абсолютно невозможно и исключено. Самым правильным решением является закладка МК с запасом памяти программ. Например, 20 - 50%. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Борив 0 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба Да и тиня эта не способна модифицировать свой программый код, в отличие от старших моделей AVR (типа ATmega). Поэтому даже оверлей тут невозможно организовать (обменивать код между FALSH и EEPROM по мере надобности). С чего Вы это взяли? Команды записи EEPROM присутствуют. Обмен сделать можно, только долго будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
idle1 0 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба С чего Вы это взяли? Команды записи EEPROM присутствуют. Обмен сделать можно, только долго будет. EEPROM писать то не проблема, а вот как с флеш дела обстоят? haker_fox на мой взгляд прав. Здесь я хотел убедиться в правильности своего мнения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Борив 0 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба EEPROM писать то не проблема, а вот как с флеш дела обстоят? haker_fox на мой взгляд прав. Здесь я хотел убедиться в правильности своего мнения. Извиняюсь, описался: команды записи флеш присутствуют. Ничто не мешает кусок из EEPROM перекинуть во флеш, если время не критично. (Использовал флеш для сохранения данных, редко изменяемых.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба Извиняюсь, описался: команды записи флеш присутствуют. Ничто не мешает кусок из EEPROM перекинуть во флеш, если время не критично.И сколько займет код для такого перекидывания? И на сколько проходов программы по обмениваемым кускам хватит ресурса флеш? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Борив 0 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба И сколько займет код для такого перекидывания? И на сколько проходов программы по обмениваемым кускам хватит ресурса флеш? Я отвечал на неправильное утверждение в посте №2. Целесообразно ли применять такое решение, зависит от конкретной задачи. В 99% случаев - нецелесообразно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба Да там и EEPROM-то немного. Но помочь может, всё завиcит от логики программы. Можно поместить в EEPROM какие-то таблицы, которые были во флеше. А если таких таблиц нет - сделать :-) Например, какой-то развесистый switch превратить в набор функций, вызываемых по индексу, таблицу сохранить в EEPROM. До такого у меня не доходило, таблицы во флеше же и сохранял - уже это помогало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба Как бы размер кода по киданию оверлея не оказался тем самым критическим размером, которого не хватает))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tourist 0 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба На сколько я знаю для tiny2313 нельзя сделать bootloader, а Вы пишите: команды записи флеш присутствуют. Как так? :laughing: Или я чего-то не допонял... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Борив 0 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба На сколько я знаю для tiny2313 нельзя сделать bootloader, а Вы пишите: Как так? :laughing: Или я чего-то не допонял... Обложка даташита: -2K Bytes of in-System Self Programmable Flash. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба Обложка даташита: -2K Bytes of in-System Self Programmable Flash. Читайте что такое ISP. Кратко: это технология, которая позволяет программировать микросхему, не вынимая ее из устройства, т.е. не демонтируя с печатной платы, т.е. в системе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 14 октября, 2009 Опубликовано 14 октября, 2009 · Жалоба Вообще-то нужно различать ISP (In-System-Programming) и IAP (In-Application-Programmig). Первый термин означает, что программу в память МК можно загрузить извне, без выпаивания его из устройства. Практически все современные МК имеют подобную возможность. Для этого могут использоваться совершенно разные интерфейсы JTAG, UART, SPI, USB и т.п. Но в любом случае при программировании МК используется загружаемая извне или уже встроенная в виде ROM или запрограммированной части Flash, специальная программа (исполняемый код), называемая Bootloader. Эта программа "знает как" и "умеет" программировать Flash-память данного конкретного МК. IAP же означает, что МК может модифицировать свою собственную Flash-память, выполняя в самом МК пользовательскую программу, загруженную в память программ. Причем IAP может работать исключительно с использованием встроенной программы Bootloader, а может и не использовать ее, если имеется такая аппаратно-программная возможность и алгоритмы программирования описаны в документации. МК, фигурирующий у топикстартера (ATtiny2313), совершенно точно поддерживает ISP. А вот насчет IAP я что-то не уверен. Но поскольку я не являюсь большим знатоком семейства AVR, то не буду утверждать этого однозначно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Борив 0 14 октября, 2009 Опубликовано 14 октября, 2009 · Жалоба Читайте что такое ISP. Кратко: это технология, которая позволяет программировать микросхему, не вынимая ее из устройства, т.е. не демонтируя с печатной платы, т.е. в системе. А слово SELF Вам ничего не говорит? Прочитайте хотя бы даташит, перед тем, как других учить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться