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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Вымогатель припоя
Аватара пользователя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Сообщение mr_smit »

Например, имеется ATMega8, прошивка "раздулась" до 32 кВ. Можно ли поставить какую нибудь дополнительную память которая бы "приплюсовалась" к уже имеющимся в меге 8 кВ ?
Нельзя всё знать, достаточно понимать.
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1833
Зарегистрирован: Вс окт 04, 2009 13:23:12
Откуда: н. новгород

Сообщение anatol378 »

Лучше умному тупить, чем тупому умничать
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

На сколько мне известно, нет у AVRок нет такой возможности.
Ставим плюсы: )
Вымогатель припоя
Аватара пользователя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Сообщение mr_smit »

ibiza11 писал(а):На сколько мне известно, нет у AVRок нет такой возможности.
Понятно. Спасибо. Жаль...
Нельзя всё знать, достаточно понимать.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 5785
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Откуда: Воронеж

Сообщение >TEHb< »

Однако можно в контроллере написать прошивку так, чтобы та выполняла команды уже из внешней памяти, хоть с MMC. Правда я не очень хорошо представляю как, но мне это кажется вполне себе возможным.
Усложнять просто. Упрощать сложно.
Контактная информация:
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск

Сообщение Rimsky »

но мне это кажется вполне себе возможным.
Поверьте мне, это Вам только кажется. Для МК такой подход не реален. :)
Контактная информация:
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

есть вариант:
берем мегу48 пишем, разраслось - переходим на мегу88, разраслось еще - на мегу168, полная совместимость снизу-вверх :)))
вот только чего можно было накидать на 32к :dont_know:
может стоит ревизию программы сделать, да обрезание лишнего сделать? глядишь и в мегу8 все влезет.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Сообщение mr_smit »

GP1 писал(а): ...вот только чего можно было накидать на 32к :dont_know:
Это я только в качестве примера привел. Переборщил немного :)
Нельзя всё знать, достаточно понимать.
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

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

А память внешнюю к АВРкам можно прицепить, только не "программную" а для данных.
У некоторых 100-ногих мег есть выделенные ноги дли подключения внешней памяти.
Например, к 640 меге можно прицепить до 64Кб статической памяти и она будет на прямую адресуема из программы. Ну за вычетом собственной памяти меги.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Друг Кота
Аватара пользователя
Сообщения: 6332
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Rimsky писал(а):
но мне это кажется вполне себе возможным.
Поверьте мне, это Вам только кажется. Для МК такой подход не реален. :)
Это только на первый взгляд, если решать задачу "в лоб". Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC, считывая ее как данные и потом покомандно интерпретируя. Как Basic для БК-010-01. Тогда смена программы сведется к простой замене карточки.
Но чтобы это сделать, надо иметь определенный уровень выше среднего. Кто это может сделать - делает, и уже в форум такого вопроса не задает :-)
Грызет канифоль
Аватара пользователя
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск

Сообщение Rimsky »

Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC
Где то я уже такое говно видел. По моему в мастерките. Типа модульный конструктор с интерпретатором типа языка бейсика для начинающих. Я думаю те ребята, которые серьезно занимаются электроникой и делаю вещи, а не тратят время на всякую херню типа интерпретаторов, даже о этом и не подумают.
Контактная информация:
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 25
Зарегистрирован: Пт сен 10, 2010 14:40:40
Откуда: Красноярск

Сообщение Int_13h »

mr_smit писал(а):Например, имеется ATMega8, прошивка "раздулась" до 32 кВ. Можно ли поставить какую нибудь дополнительную память которая бы "приплюсовалась" к уже имеющимся в меге 8 кВ ?
такая возможность есть только если код выполняется из памяти (RAM), а не из флеша так что берите ARM и флешку на несколько гигабайт - подгружаете код в RAM и будет вам щастье, а до кучи можно ещё и сжатие сделать чтоб больше кода вместилось в флеш, ну по мойму 51е тоже так могут если память не изменяет, интерпретаторы не слишком эффективный метод особенно по скорости, да и вообще 8 битки использовать для ресурсоёмких задач это изврат, когда есть быстрые и дешовые ARMы от NXP или если уж так полюбились AVR есть Xmega (8/16бит) как минимум и AVR32 (но по цене они проигрывают филлипсовским ARMмам).
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 6332
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Rimsky писал(а):
Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC
Я думаю те ребята, которые серьезно занимаются электроникой и делаю вещи, а не тратят время на всякую херню типа интерпретаторов, даже о этом и не подумают.
Ну зачем так категорично, не говоря уж об - грубо? Все зависит от конкретной задачи, условий эксплуатации - я имею в виду, если чел не просто лепит что-то для себя, а делает серьезную вещь именно для промышленного применения ( хоть форум и любительский, но неужели никто тут не делал серьезных вещей?)
Я в далеких 80-х делал такую систему, причем не для микроконтроллеров, а на миниЭВМ СМ-4. Хоть там архитектура фон-Неймановская, и на первый взгляд, такой подход мало применим к Гарвардской архитектуре микроконтроллеров, но это если не вдумываться.
У нас в системе был транслятор, преобразовывавший исходный текст программы контроля в компактный псевдокод, который уже и исполнялся собственно интерпретатором. А в чем преимущество - спросите? Огромное! Пользователи системы, простые инженеры, не знающие азов программирования, ЖЕНЩИНЫ - писали работоспособные программы контроля РЭА! - потому что на языке, близком к естественному. Кстати о быстродействии. Поскольку интерпретатору не нужно тратить время каждый раз на анализ текста, достаточно в 3-5 команд принять параметры и уже затем исполнять их с максимально возможной скоростью - быстродействие было просто изумительным. Во всяком случае, компьютер не тормозил процесс, большая часть времени уходила на ожидание завершения процессов измерения.
Мне, напрмер, вполне вероятным представляется контроллер, управляющий какой-нибудь линией. При смене технологии не нужно тащить МК на перепрошивку - достаточно сменить карточку с псевдокодом, который может быть сделан кросс-компилятором на ПК.
Кажется, я про это уже рассказывал, только не помню -- где и кому :-)
Хотя каждый имеет право на свое мнение. Только вот мнение, что "то, чего я не понимаю - гуано" - ошибочно всегда.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 350
Зарегистрирован: Пт сен 10, 2010 20:48:01
Откуда: Минск

Сообщение 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;
				    
				   };

}
Грызет канифоль
Аватара пользователя
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск

Сообщение Rimsky »

Ну зачем так категорично, не говоря уж об - грубо? Все зависит от конкретной задачи, условий эксплуатации - я имею в виду, если чел не просто лепит что-то для себя, а делает серьезную вещь именно для промышленного применения ( хоть форум и любительский, но неужели никто тут не делал серьезных вещей?)
Мое высказывания отражает лишь мое мнение по поводу интерпретаторов и всяческой такой фиговины. Я не переходил на личности, ни кому не грубил и т.д. То что эта вещь для промышленного применения и чел, как Вы говорите не лепит, то почему он совершенно не знает элементарного , а точнее архитектуры того МК который он использует? :)), а Вам напомню, что Вы забыли перфокарты посоветовать.. :)) По поводу второго, на форуме много умных и уважаемых людей, но они не задают идиотских вопросом и вату не катают.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 6332
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Rimsky писал(а): Вам напомню, что Вы забыли перфокарты посоветовать.. :)) По поводу второго, на форуме много умных и уважаемых людей, но они не задают идиотских вопросом и вату не катают.
Сколько сарказма и самолюбования! Теперь я понимаю, кто Е.Петросяну тексты пишет. Я в лагере не сидел и блатной слэнг "вату катать" до меня не дошел.
Прощайте, Римский, насегда - в этом мире, надеюсь, не встретимся.
Грызет канифоль
Аватара пользователя
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск

Сообщение Rimsky »

Прощайте, Римский, насегда - в этом мире, надеюсь, не встретимся.
Пока, пока. Батьке привет! :))
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

А все-таки интерпретатор это не всегда говно... Все зависит от ситуации. И это не смотря на то, что я, признаться, косо смотрю даже на java... Если надо впихнуть в МК AVR с 8Кб памяти гораздо больший объем кода, и нет возможности перейти на другой МК (что, конечно, самое разумное решение), выход только один - интерпретатор. Но, конечно, высокопроизводительной работы в этом случае ждать не приходится. Хотя, с другой стороны, все операции, критичные к ресурсам, можно реализовать в родном коде в виде команд... Короче, все зависит от конкретной ситуации.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 6332
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

YS писал(а): Хотя, с другой стороны, все операции, критичные к ресурсам, можно реализовать в родном коде в виде команд... Короче, все зависит от конкретной ситуации.
Не только можно - нужно! Никто не станет спорить : Бейсик, к примеру, в смысле быстродействия - полный отстой. Но когда нам понадобилось быстро собрать систему програмирования - взяли его, бо там готовая работа с файлами, форматные преобразования, библиотека функций. А критичные по времени выполнения блоки написали на асме, благо сам Бесик поставлялся в дистрибутивах и позволял смастерить систему на свой вкус, включая функции пользователя. Как говорил Маменко, "публика неистовствовала" - простота Бейсика в сочетании с быстродействием на уровне машинных команд.
Если решение соответствует заданным критериям, то уже третьестепенной важности - на чем оно, да хоть на Коболе.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

YS писал(а):Если надо впихнуть в МК AVR с 8Кб памяти гораздо больший объем кода, и нет возможности перейти на другой МК (что, конечно, самое разумное решение)
YS писал(а):(что, конечно, самое разумное решение)
Поддерживаю

С самого начала читаю ветку и до сих пор понять не могу.

Есть рабочий проект, допустим на мега8, точнее не проект, а рабочее устройство. Нужно изменить программу, добавить новые функции и программа уже не помещается. И что мы просто подцепляем флешку, переписываем программу с нуля. Программу ладно, а где уверенность, что флешку есть куда подцепить. Т.е. еще и переделываем плату.

Так где логика держатся за мега8 ?

Объясните пожалуйста.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»