Страница 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к :dont_know:
может стоит ревизию программы сделать, да обрезание лишнего сделать? глядишь и в мегу8 все влезет.

Re: Можно ли увеличить память под прошивку?

Добавлено: Ср сен 08, 2010 18:09:00
mr_smit
GP1 писал(а): ...вот только чего можно было накидать на 32к :dont_know:
Это я только в качестве примера привел. Переборщил немного :)

Re: Можно ли увеличить память под прошивку?

Добавлено: Ср сен 08, 2010 21:30:41
Kavka
Хе, с внешней памяти выполнять... Типа, оверлейного подхода, как в ДОСе, что-ли?
Когда надо - прошиваем нужный участок ФЛЭШа и переходим туда. 8)
Мнда, только ФЛЭШ так долго не протянет. :)

А память внешнюю к АВРкам можно прицепить, только не "программную" а для данных.
У некоторых 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 ?

Объясните пожалуйста.