Страница 1 из 2
Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 13:00:38
mr_smit
Например, имеется ATMega8, прошивка "раздулась" до 32 кВ. Можно ли поставить какую нибудь дополнительную память которая бы "приплюсовалась" к уже имеющимся в меге 8 кВ ?
Re: Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 13:14:58
anatol378
Re: Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 13:16:18
ibiza11
На сколько мне известно, нет у AVRок нет такой возможности.
Re: Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 13:39:34
mr_smit
ibiza11 писал(а):На сколько мне известно, нет у AVRок нет такой возможности.
Понятно. Спасибо. Жаль...
Re: Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 17:01:21
>TEHb<
Однако можно в контроллере написать прошивку так, чтобы та выполняла команды уже из внешней памяти, хоть с MMC. Правда я не очень хорошо представляю как, но мне это кажется вполне себе возможным.
Re: Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 17:05:16
Rimsky
но мне это кажется вполне себе возможным.
Поверьте мне, это Вам только кажется. Для МК такой подход не реален.

Re: Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 17:13:12
GP1
есть вариант:
берем мегу48 пишем, разраслось - переходим на мегу88, разраслось еще - на мегу168, полная совместимость снизу-вверх
вот только чего можно было накидать на 32к
может стоит ревизию программы сделать, да обрезание лишнего сделать? глядишь и в мегу8 все влезет.
Re: Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 18:09:00
mr_smit
GP1 писал(а):
...вот только чего можно было накидать на 32к
Это я только в качестве примера привел. Переборщил немного

Re: Можно ли увеличить память под прошивку?
Добавлено: Ср сен 08, 2010 21:30:41
Kavka
Хе, с внешней памяти выполнять... Типа, оверлейного подхода, как в ДОСе, что-ли?
Когда надо - прошиваем нужный участок ФЛЭШа и переходим туда.
Мнда, только ФЛЭШ так долго не протянет.
А память внешнюю к АВРкам можно прицепить, только не "программную" а для данных.
У некоторых 100-ногих мег есть выделенные ноги дли подключения внешней памяти.
Например, к 640 меге можно прицепить до 64Кб статической памяти и она будет на прямую адресуема из программы. Ну за вычетом собственной памяти меги.
Re: Можно ли увеличить память под прошивку?
Добавлено: Чт сен 09, 2010 08:24:45
Jack_A
Rimsky писал(а):но мне это кажется вполне себе возможным.
Поверьте мне, это Вам только кажется. Для МК такой подход не реален.

Это только на первый взгляд, если решать задачу "в лоб". Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC, считывая ее как данные и потом покомандно интерпретируя. Как Basic для БК-010-01. Тогда смена программы сведется к простой замене карточки.
Но чтобы это сделать, надо иметь определенный уровень выше среднего. Кто это может сделать - делает, и уже в форум такого вопроса не задает

Re: Можно ли увеличить память под прошивку?
Добавлено: Чт сен 09, 2010 14:27:58
Rimsky
Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC
Где то я уже такое говно видел. По моему в мастерките. Типа модульный конструктор с интерпретатором типа языка бейсика для начинающих. Я думаю те ребята, которые серьезно занимаются электроникой и делаю вещи, а не тратят время на всякую херню типа интерпретаторов, даже о этом и не подумают.
Re: Можно ли увеличить память под прошивку?
Добавлено: Пт сен 10, 2010 17:22:31
Int_13h
mr_smit писал(а):Например, имеется ATMega8, прошивка "раздулась" до 32 кВ. Можно ли поставить какую нибудь дополнительную память которая бы "приплюсовалась" к уже имеющимся в меге 8 кВ ?
такая возможность есть только если код выполняется из памяти (RAM), а не из флеша так что берите ARM и флешку на несколько гигабайт - подгружаете код в RAM и будет вам щастье, а до кучи можно ещё и сжатие сделать чтоб больше кода вместилось в флеш, ну по мойму 51е тоже так могут если память не изменяет, интерпретаторы не слишком эффективный метод особенно по скорости, да и вообще 8 битки использовать для ресурсоёмких задач это изврат, когда есть быстрые и дешовые ARMы от NXP или если уж так полюбились AVR есть Xmega (8/16бит) как минимум и AVR32 (но по цене они проигрывают филлипсовским ARMмам).
Re: Можно ли увеличить память под прошивку?
Добавлено: Пт сен 10, 2010 20:46:52
Jack_A
Rimsky писал(а):Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC
Я думаю те ребята, которые серьезно занимаются электроникой и делаю вещи, а не тратят время на всякую херню типа интерпретаторов, даже о этом и не подумают.
Ну зачем так категорично, не говоря уж об - грубо? Все зависит от конкретной задачи, условий эксплуатации - я имею в виду, если чел не просто лепит что-то для себя, а делает серьезную вещь именно для промышленного применения ( хоть форум и любительский, но неужели никто тут не делал серьезных вещей?)
Я в далеких 80-х делал такую систему, причем не для микроконтроллеров, а на миниЭВМ СМ-4. Хоть там архитектура фон-Неймановская, и на первый взгляд, такой подход мало применим к Гарвардской архитектуре микроконтроллеров, но это если не вдумываться.
У нас в системе был транслятор, преобразовывавший исходный текст программы контроля в компактный псевдокод, который уже и исполнялся собственно интерпретатором. А в чем преимущество - спросите? Огромное! Пользователи системы, простые инженеры, не знающие азов программирования, ЖЕНЩИНЫ - писали работоспособные программы контроля РЭА! - потому что на языке, близком к естественному. Кстати о быстродействии. Поскольку интерпретатору не нужно тратить время каждый раз на анализ текста, достаточно в 3-5 команд принять параметры и уже затем исполнять их с максимально возможной скоростью - быстродействие было просто изумительным. Во всяком случае, компьютер не тормозил процесс, большая часть времени уходила на ожидание завершения процессов измерения.
Мне, напрмер, вполне вероятным представляется контроллер, управляющий какой-нибудь линией. При смене технологии не нужно тащить МК на перепрошивку - достаточно сменить карточку с псевдокодом, который может быть сделан кросс-компилятором на ПК.
Кажется, я про это уже рассказывал, только не помню -- где и кому

Хотя каждый имеет право на свое мнение. Только вот мнение, что "то, чего я не понимаю - гуано" - ошибочно всегда.
Re: Можно ли увеличить память под прошивку?
Добавлено: Пт сен 10, 2010 20:54:22
wss60
Делал я такое правда осталось только часть исходников
Код: Выделить всё
unsigned int cmd_api=0,adress_cmd;
unsigned int prog[]=
{
1,0,1,4,
2,0,1,8,
0,0,500,12,
2,0,0,16,
0,0,500,20,
3,0,0,4
};
/***command,data,addr***/
void command(unsigned int adress_){
switch(prog[adress_]){
case 0: delay_ms(prog[cmd_api+2]); //delay //delay
cmd_api=prog[cmd_api+3];break; //set addr
case 1: set_ddr(prog[cmd_api+1] , prog[cmd_api+2]); //DDR
cmd_api=prog[cmd_api+3];break; //set addr
case 2: set_port(prog[cmd_api+1] , prog[cmd_api+2]); //PORT
cmd_api=prog[cmd_api+3];break; //set addr
case 3: //reset
cmd_api=prog[cmd_api+3];break; //set addr
};
}
void delay_ms(unsigned int ms){
unsigned int zaehler;
while (ms) {
zaehler = F_CPU / 5000;
while (zaehler) {
asm volatile("nop");
zaehler--;
}
ms--;
}
}
void set_ddr (char cmd_1,char cmd_2){
switch(cmd_1){
case 0: DDRA=cmd_2;break;
case 1: DDRB=cmd_2;break;
case 2: DDRC=cmd_2;break;
case 3: DDRD=cmd_2;break;
};
}
void set_port(char cmd_1,char cmd_2){
switch(cmd_1){
case 0: PORTA=cmd_2;break;
case 1: PORTB=cmd_2;break;
case 2: PORTC=cmd_2;break;
case 3: PORTD=cmd_2;break;
};
}
Re: Можно ли увеличить память под прошивку?
Добавлено: Сб сен 11, 2010 11:33:51
Rimsky
Ну зачем так категорично, не говоря уж об - грубо? Все зависит от конкретной задачи, условий эксплуатации - я имею в виду, если чел не просто лепит что-то для себя, а делает серьезную вещь именно для промышленного применения ( хоть форум и любительский, но неужели никто тут не делал серьезных вещей?)
Мое высказывания отражает лишь мое мнение по поводу интерпретаторов и всяческой такой фиговины. Я не переходил на личности, ни кому не грубил и т.д. То что эта вещь для промышленного применения и чел, как Вы говорите не лепит, то почему он совершенно не знает элементарного , а точнее архитектуры того МК который он использует?

, а Вам напомню, что Вы забыли перфокарты посоветовать..

По поводу второго, на форуме много умных и уважаемых людей, но они не задают идиотских вопросом и вату не катают.
Re: Можно ли увеличить память под прошивку?
Добавлено: Сб сен 11, 2010 21:23:34
Jack_A
Rimsky писал(а): Вам напомню, что Вы забыли перфокарты посоветовать..

По поводу второго, на форуме много умных и уважаемых людей, но они не задают идиотских вопросом и вату не катают.
Сколько сарказма и самолюбования! Теперь я понимаю, кто Е.Петросяну тексты пишет. Я в лагере не сидел и блатной слэнг "вату катать" до меня не дошел.
Прощайте, Римский, насегда - в этом мире, надеюсь, не встретимся.
Re: Можно ли увеличить память под прошивку?
Добавлено: Вс сен 12, 2010 05:11:50
Rimsky
Прощайте, Римский, насегда - в этом мире, надеюсь, не встретимся.
Пока, пока. Батьке привет!

Re: Можно ли увеличить память под прошивку?
Добавлено: Пн сен 13, 2010 19:17:24
YS
А все-таки интерпретатор это не всегда говно... Все зависит от ситуации. И это не смотря на то, что я, признаться, косо смотрю даже на java... Если надо впихнуть в МК AVR с 8Кб памяти гораздо больший объем кода, и нет возможности перейти на другой МК (что, конечно, самое разумное решение), выход только один - интерпретатор. Но, конечно, высокопроизводительной работы в этом случае ждать не приходится. Хотя, с другой стороны, все операции, критичные к ресурсам, можно реализовать в родном коде в виде команд... Короче, все зависит от конкретной ситуации.
Re: Можно ли увеличить память под прошивку?
Добавлено: Пн сен 13, 2010 20:21:11
Jack_A
YS писал(а): Хотя, с другой стороны, все операции, критичные к ресурсам, можно реализовать в родном коде в виде команд... Короче, все зависит от конкретной ситуации.
Не только можно - нужно! Никто не станет спорить : Бейсик, к примеру, в смысле быстродействия - полный отстой. Но когда нам понадобилось быстро собрать систему програмирования - взяли его, бо там готовая работа с файлами, форматные преобразования, библиотека функций. А критичные по времени выполнения блоки написали на асме, благо сам Бесик поставлялся в дистрибутивах и позволял смастерить систему на свой вкус, включая функции пользователя. Как говорил Маменко, "публика неистовствовала" - простота Бейсика в сочетании с быстродействием на уровне машинных команд.
Если решение соответствует заданным критериям, то уже третьестепенной важности - на чем оно, да хоть на Коболе.
Re: Можно ли увеличить память под прошивку?
Добавлено: Вт сен 14, 2010 10:01:02
Danko
YS писал(а):Если надо впихнуть в МК AVR с 8Кб памяти гораздо больший объем кода, и нет возможности перейти на другой МК (что, конечно, самое разумное решение)
YS писал(а):(что, конечно, самое разумное решение)
Поддерживаю
С самого начала читаю ветку и до сих пор понять не могу.
Есть рабочий проект, допустим на мега8, точнее не проект, а рабочее устройство. Нужно изменить программу, добавить новые функции и программа уже не помещается. И что мы просто подцепляем флешку, переписываем программу с нуля. Программу ладно, а где уверенность, что флешку есть куда подцепить. Т.е. еще и переделываем плату.
Так где логика держатся за мега8 ?
Объясните пожалуйста.