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

 
 
> И еще чуть-чуть места, Что задействовать под память программ?
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
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 27)
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
haker_fox
сообщение Oct 15 2009, 03:56
Сообщение #16


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

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



Цитата(BORIV @ Oct 14 2009, 20:07) *
Прочитайте хотя бы даташит, перед тем, как других учить.

Прошу прощения! Я действительно допустил ошибку.

Однако, топикстартеру по-прежнему следует обратить внимание на кристаллы с большим ресурсом памяти FLASH.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
BORIV
сообщение Oct 15 2009, 06:23
Сообщение #17


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

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



Контроллер 2313 прекрасно сбалансирован и очень дёшев. А если всё время не хватает памяти, следует в первую очередь обратить внимание на стиль программирования. Адептам языков высокого уровня это не объяснишь.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 15 2009, 07:04
Сообщение #18


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

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



Цитата(BORIV @ Oct 15 2009, 15:23) *
Контроллер 2313 прекрасно сбалансирован и очень дёшев.

Сбалансирован для определенного ряда задач.
Цитата(BORIV @ Oct 15 2009, 15:23) *
А если всё время не хватает памяти, следует в первую очередь обратить внимание на стиль программирования.

И на задачу, которую пытаемся реализовать на данном кристалле - тоже.
Цитата(BORIV @ Oct 15 2009, 15:23) *
Адептам языков высокого уровня это не объяснишь.

ЯВУ тут непричем.


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


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

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



Цитата(haker_fox @ Oct 15 2009, 11:04) *
Сбалансирован для определенного ряда задач.

И на задачу, которую пытаемся реализовать на данном кристалле - тоже.

ЯВУ тут непричем.


Поясню что я хотел сказать.
Если других ресурсов кристалла, кроме памяти программ, для решаемой задачи достаточно, то и памяти должно хватить.
Естественно, подразумеваются задачи для микроконтроллера, задачи по управлению чем-то на основании чего-то.

Языки "низкого уровня", как Вы их хотите, повидимому, назвать, позволяют "успешно программировать" не особенно вникая во внутренности кристалла и его особенности, что Вы с коллегами наглядно и продемонстрировали, не зная возможностей базового кристалла семейсва Tiny.

Я нисколько не против применения языков высокого уровня. Только и задача должна быть соответствующая. Для ATtiny2313, я бы их не советовал.
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Oct 15 2009, 08:05
Сообщение #20


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Цитата(Xenia @ Oct 13 2009, 01:43) *
Однако совместимых по ногам с 2312 не существует.
Существуют, но не AVR.
AT89LP4052. Только RESET инвертировать. 4 кБ.
В DIP-20, но с другой цоколёвкой, "51" есть даже с 8 кБ флэши - P89LPC9221.
(Прошу не рассматривать вышесказанное как пиар 51 wink.gif )


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 15 2009, 11:46
Сообщение #21


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

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



Цитата(BORIV @ Oct 15 2009, 16:57) *
Если других ресурсов кристалла, кроме памяти программ, для решаемой задачи достаточно, то и памяти должно хватить.
Естественно, подразумеваются задачи для микроконтроллера, задачи по управлению чем-то на основании чего-то.

Несогласен. Пусть ресурсы, кроме памяти, тини нас устраивают. Хватает портов, таймеров и проч. Но необходимо разместить множество константных данных: таблицы, строки и т.п. Что делать? Ставить внешнюю память для этого? Ну или просто алгоритм задачи объемный? И даже периферии тини12 (раритет) хватит. А памяти - нет.
Цитата(BORIV @ Oct 15 2009, 16:57) *
Языки "низкого уровня", как Вы их хотите, повидимому, назвать

Что-то я не припоминаю, чтобы говорил о языках низкого уровня, т.е об ассемблере.
Цитата(BORIV @ Oct 15 2009, 16:57) *
позволяют "успешно программировать" не особенно вникая во внутренности кристалла и его особенности

Это не так! ЯВУ (Вы, видимо, его назвали "языком низкого уровня") нисколько не позволяет замаскировать внутринности кристалла. Никто не освобождает от необходимости записывать данные в регистры ввода-вывода, обрабатывать прерывывания и т.д.
Цитата(BORIV @ Oct 15 2009, 16:57) *
что Вы с коллегами наглядно и продемонстрировали, не зная возможностей базового кристалла семейсва Tiny.

Еще раз повторяю: это была ошибка. Просто ошибка. Это случается со всеми. И это не повод говорить о не знании.
Цитата(BORIV @ Oct 15 2009, 16:57) *
Я нисколько не против применения языков высокого уровня. Только и задача должна быть соответствующая. Для ATtiny2313, я бы их не советовал.

Да не в задаче дело. ЯВУ может быть использован как для реализации мигалки светодиодом, так и для DES алгоритма. И ЯВУ можно применть для тини. Умеренно естественно! Но если программа на ЯВУ не помещается в память тини, это тоже не повод говорить, что ЯВУ плох.


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


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

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



Цитата(haker_fox @ Oct 15 2009, 15:46) *
Да не в задаче дело. ЯВУ может быть использован как для реализации мигалки светодиодом, так и для DES алгоритма. И ЯВУ можно применть для тини. Умеренно естественно! Но если программа на ЯВУ не помещается в память тини, это тоже не повод говорить, что ЯВУ плох.

Тогда согласитесь, что не стоит говорить о том, что не хватает памяти, если "мигалка светодиодом" на ЯВУ не помещается.

Все упоминают задачи, которые гораздо сложнее "мигалки светодиодами", хоть бы пару примеров привели.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Oct 15 2009, 21:55
Сообщение #23


Гуру
******

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



В данном случае, как мне кажется, это вы не знаете о чём говорите. Выигрыш программирования на ASM по сравнению с тем же Си от IAR, к примеру не превышает 10% при хорошем знании того и другого. И то это при условии, что значительно лучше используются регистры. При объёмных данных думаю компилятор вас уделает.

В данном случае обсуждение бессмысленно на мой взгляд. Есть МК ATMega8(88), которая стоит те же деньги, занимает на плате меньше места, располагает большими ресурсами и имеет 8К памяти. При желании меняется как на м48 так и на м168, со всеми вытекающими.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 15 2009, 23:31
Сообщение #24


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

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



Цитата(BORIV @ Oct 16 2009, 03:52) *
Тогда согласитесь, что не стоит говорить о том, что не хватает памяти, если "мигалка светодиодом" на ЯВУ не помещается.

Так про это никто, кроме Вас пока и не говорит в этом топике.
Цитата(BORIV @ Oct 16 2009, 03:52) *
Все упоминают задачи, которые гораздо сложнее "мигалки светодиодами", хоть бы пару примеров привели.

Контроллер коллекторного двигателя постоянного тока, система управления трехзвенным манипулятором... подходит? rolleyes.gif



Цитата(SasaVitebsk @ Oct 16 2009, 06:55) *
При объёмных данных думаю компилятор вас уделает.

+1.
Цитата(SasaVitebsk @ Oct 16 2009, 06:55) *
В данном случае обсуждение бессмысленно на мой взгляд.

+1.


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


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

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



Ну, если Мега8 занимает меньше места на плате, чем тини2313 и контроллер коллекторного двигателя постоянного тока- это не контроллер светодиода опторазвязки, дискутировать действительно ... .
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Oct 16 2009, 09:26
Сообщение #26


Гуру
******

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



Цитата(BORIV @ Oct 16 2009, 11:16) *
Ну, если Мега8 занимает меньше места на плате, чем тини2313 и контроллер коллекторного двигателя постоянного тока- это не контроллер светодиода опторазвязки, дискутировать действительно ... .

Откройте pdf и посмотрите:
Atmega8(TQFP) 9.23*9.23 (мм)
Attiny2312(SOIC) 10*12.7 (мм)

Дип корпус уже умер, а до mlf мы ещё не дошли. В своё время отказ от 2313 произошёл только из-за её размеров и сопоставимых возможностей. В настоящий момент t2313 мы не применяем. Только м48/м8/м88. Цена на м8 опустилась ниже 1$. При последнем применении цена на t2313 была выше чем на m8. Причина думаю в популярности m8.

Каждая задача по своему сложная. Бывают достаточно сложные "контроллеры светодиодов". Никто и не возражает. Но вот вам на вскидку недавно делал HART модем. Там у меня два фильтра 5-го порядка и перемножение сигналов. Никто не спорит, я это запросто напишу и на ASM. Но при экспериментах я экспериментировал с этими фильтрами. Я их за день перебирал 10-15 штук. Моделировал на PC и вставлял. Смотрел качество восстановления. Экспериментировал с АРУ и прочим. И не надо мне рассказывать сколько за день я бы проверил фильтров на ASM. Сколько я бы ошибок сделал при переносе на ASM. Я просто знаю.

Для примера - у меня есть бутлоадер с Wake протоколом, шифрованием и полной идентификацией. Всё это влазит в 1к на Си. В открытых исходниках я видел бутлоадер с шифрацией без протокола и идентификации ~700 байт. Учитывая что сам Wake занимает байт 200 с идентификацией - стоит задуматься. Правда?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 17 2009, 00:59
Сообщение #27


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

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



Цитата(SasaVitebsk @ Oct 16 2009, 18:26) *
И не надо мне рассказывать сколько за день я бы проверил фильтров на ASM. Сколько я бы ошибок сделал при переносе на ASM. Я просто знаю.

Просто возникает ощущение, что уважаемый BORIV, особенно после этого
Цитата(BORIV @ Oct 16 2009, 03:52) *
Все упоминают задачи, которые гораздо сложнее "мигалки светодиодами", хоть бы пару примеров привели.

не часто сталкивается с задачами "сложнее мигалки светодиодами". Чтож, это вполне нормально!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
YAM
сообщение Oct 18 2009, 15:27
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Мне, при нехватке места в памяти программ в attiny2313 очень помогло переопределение переменных на неиспользуемые регистры, особенно те, которые имеют битовый доступ, например типа GPIOR0, GPIOR1, GPIOR2. После такого перераспределения память программ освободиласть почти на 25% от ее первоначального размера.. Кроме этого была нехватка ОЗУ, register utilization в этом очень помогла...


--------------------
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 - 19:06
Рейтинг@Mail.ru


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