Форум РадиоКот https://radiokot.ru/forum/ |
|
Можно ли увеличить память под прошивку? https://radiokot.ru/forum/viewtopic.php?f=20&t=34706 |
Страница 1 из 2 |
Автор: | mr_smit [ Ср сен 08, 2010 13:00:38 ] |
Заголовок сообщения: | Можно ли увеличить память под прошивку? |
Например, имеется ATMega8, прошивка "раздулась" до 32 кВ. Можно ли поставить какую нибудь дополнительную память которая бы "приплюсовалась" к уже имеющимся в меге 8 кВ ? |
Автор: | anatol378 [ Ср сен 08, 2010 13:14:58 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Вот на выбор http://www.myrobot.ru/stepbystep/mc_table.php |
Автор: | ibiza11 [ Ср сен 08, 2010 13:16:18 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
На сколько мне известно, нет у AVRок нет такой возможности. |
Автор: | mr_smit [ Ср сен 08, 2010 13:39:34 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
ibiza11 писал(а): На сколько мне известно, нет у AVRок нет такой возможности. Понятно. Спасибо. Жаль... |
Автор: | >TEHb< [ Ср сен 08, 2010 17:01:21 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Однако можно в контроллере написать прошивку так, чтобы та выполняла команды уже из внешней памяти, хоть с MMC. Правда я не очень хорошо представляю как, но мне это кажется вполне себе возможным. |
Автор: | Rimsky [ Ср сен 08, 2010 17:05:16 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Цитата: но мне это кажется вполне себе возможным. Поверьте мне, это Вам только кажется. Для МК такой подход не реален. ![]() |
Автор: | GP1 [ Ср сен 08, 2010 17:13:12 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
есть вариант: берем мегу48 пишем, разраслось - переходим на мегу88, разраслось еще - на мегу168, полная совместимость снизу-вверх ![]() вот только чего можно было накидать на 32к ![]() может стоит ревизию программы сделать, да обрезание лишнего сделать? глядишь и в мегу8 все влезет. |
Автор: | mr_smit [ Ср сен 08, 2010 18:09:00 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
GP1 писал(а): ...вот только чего можно было накидать на 32к ![]() Это я только в качестве примера привел. Переборщил немного ![]() |
Автор: | Kavka [ Ср сен 08, 2010 21:30:41 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Хе, с внешней памяти выполнять... Типа, оверлейного подхода, как в ДОСе, что-ли? Когда надо - прошиваем нужный участок ФЛЭШа и переходим туда. ![]() Мнда, только ФЛЭШ так долго не протянет. ![]() А память внешнюю к АВРкам можно прицепить, только не "программную" а для данных. У некоторых 100-ногих мег есть выделенные ноги дли подключения внешней памяти. Например, к 640 меге можно прицепить до 64Кб статической памяти и она будет на прямую адресуема из программы. Ну за вычетом собственной памяти меги. |
Автор: | Jack_A [ Чт сен 09, 2010 08:24:45 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Rimsky писал(а): Цитата: но мне это кажется вполне себе возможным. Поверьте мне, это Вам только кажется. Для МК такой подход не реален. ![]() Это только на первый взгляд, если решать задачу "в лоб". Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC, считывая ее как данные и потом покомандно интерпретируя. Как Basic для БК-010-01. Тогда смена программы сведется к простой замене карточки. Но чтобы это сделать, надо иметь определенный уровень выше среднего. Кто это может сделать - делает, и уже в форум такого вопроса не задает ![]() |
Автор: | Rimsky [ Чт сен 09, 2010 14:27:58 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Цитата: Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC Где то я уже такое говно видел. По моему в мастерките. Типа модульный конструктор с интерпретатором типа языка бейсика для начинающих. Я думаю те ребята, которые серьезно занимаются электроникой и делаю вещи, а не тратят время на всякую херню типа интерпретаторов, даже о этом и не подумают. |
Автор: | Int_13h [ Пт сен 10, 2010 17:22:31 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
mr_smit писал(а): Например, имеется ATMega8, прошивка "раздулась" до 32 кВ. Можно ли поставить какую нибудь дополнительную память которая бы "приплюсовалась" к уже имеющимся в меге 8 кВ ? такая возможность есть только если код выполняется из памяти (RAM), а не из флеша так что берите ARM и флешку на несколько гигабайт - подгружаете код в RAM и будет вам щастье, а до кучи можно ещё и сжатие сделать чтоб больше кода вместилось в флеш, ну по мойму 51е тоже так могут если память не изменяет, интерпретаторы не слишком эффективный метод особенно по скорости, да и вообще 8 битки использовать для ресурсоёмких задач это изврат, когда есть быстрые и дешовые ARMы от NXP или если уж так полюбились AVR есть Xmega (8/16бит) как минимум и AVR32 (но по цене они проигрывают филлипсовским ARMмам). |
Автор: | Jack_A [ Пт сен 10, 2010 20:46:52 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Rimsky писал(а): Цитата: Можно написать интерпретатор, зашить его в МК, а саму исполняемую программу держать на внешней SD - MMC Я думаю те ребята, которые серьезно занимаются электроникой и делаю вещи, а не тратят время на всякую херню типа интерпретаторов, даже о этом и не подумают. Ну зачем так категорично, не говоря уж об - грубо? Все зависит от конкретной задачи, условий эксплуатации - я имею в виду, если чел не просто лепит что-то для себя, а делает серьезную вещь именно для промышленного применения ( хоть форум и любительский, но неужели никто тут не делал серьезных вещей?) Я в далеких 80-х делал такую систему, причем не для микроконтроллеров, а на миниЭВМ СМ-4. Хоть там архитектура фон-Неймановская, и на первый взгляд, такой подход мало применим к Гарвардской архитектуре микроконтроллеров, но это если не вдумываться. У нас в системе был транслятор, преобразовывавший исходный текст программы контроля в компактный псевдокод, который уже и исполнялся собственно интерпретатором. А в чем преимущество - спросите? Огромное! Пользователи системы, простые инженеры, не знающие азов программирования, ЖЕНЩИНЫ - писали работоспособные программы контроля РЭА! - потому что на языке, близком к естественному. Кстати о быстродействии. Поскольку интерпретатору не нужно тратить время каждый раз на анализ текста, достаточно в 3-5 команд принять параметры и уже затем исполнять их с максимально возможной скоростью - быстродействие было просто изумительным. Во всяком случае, компьютер не тормозил процесс, большая часть времени уходила на ожидание завершения процессов измерения. Мне, напрмер, вполне вероятным представляется контроллер, управляющий какой-нибудь линией. При смене технологии не нужно тащить МК на перепрошивку - достаточно сменить карточку с псевдокодом, который может быть сделан кросс-компилятором на ПК. Кажется, я про это уже рассказывал, только не помню -- где и кому ![]() Хотя каждый имеет право на свое мнение. Только вот мнение, что "то, чего я не понимаю - гуано" - ошибочно всегда. |
Автор: | wss60 [ Пт сен 10, 2010 20:54:22 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Делал я такое правда осталось только часть исходников ![]() Код: 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; }; } |
Автор: | Rimsky [ Сб сен 11, 2010 11:33:51 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Цитата: Ну зачем так категорично, не говоря уж об - грубо? Все зависит от конкретной задачи, условий эксплуатации - я имею в виду, если чел не просто лепит что-то для себя, а делает серьезную вещь именно для промышленного применения ( хоть форум и любительский, но неужели никто тут не делал серьезных вещей?) Мое высказывания отражает лишь мое мнение по поводу интерпретаторов и всяческой такой фиговины. Я не переходил на личности, ни кому не грубил и т.д. То что эта вещь для промышленного применения и чел, как Вы говорите не лепит, то почему он совершенно не знает элементарного , а точнее архитектуры того МК который он использует? ![]() ![]() |
Автор: | Jack_A [ Сб сен 11, 2010 21:23:34 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Rimsky писал(а): Вам напомню, что Вы забыли перфокарты посоветовать.. ![]() Сколько сарказма и самолюбования! Теперь я понимаю, кто Е.Петросяну тексты пишет. Я в лагере не сидел и блатной слэнг "вату катать" до меня не дошел. Прощайте, Римский, насегда - в этом мире, надеюсь, не встретимся. |
Автор: | Rimsky [ Вс сен 12, 2010 05:11:50 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
Цитата: Прощайте, Римский, насегда - в этом мире, надеюсь, не встретимся. Пока, пока. Батьке привет! ![]() |
Автор: | YS [ Пн сен 13, 2010 19:17:24 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
А все-таки интерпретатор это не всегда говно... Все зависит от ситуации. И это не смотря на то, что я, признаться, косо смотрю даже на java... Если надо впихнуть в МК AVR с 8Кб памяти гораздо больший объем кода, и нет возможности перейти на другой МК (что, конечно, самое разумное решение), выход только один - интерпретатор. Но, конечно, высокопроизводительной работы в этом случае ждать не приходится. Хотя, с другой стороны, все операции, критичные к ресурсам, можно реализовать в родном коде в виде команд... Короче, все зависит от конкретной ситуации. |
Автор: | Jack_A [ Пн сен 13, 2010 20:21:11 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
YS писал(а): Хотя, с другой стороны, все операции, критичные к ресурсам, можно реализовать в родном коде в виде команд... Короче, все зависит от конкретной ситуации. Не только можно - нужно! Никто не станет спорить : Бейсик, к примеру, в смысле быстродействия - полный отстой. Но когда нам понадобилось быстро собрать систему програмирования - взяли его, бо там готовая работа с файлами, форматные преобразования, библиотека функций. А критичные по времени выполнения блоки написали на асме, благо сам Бесик поставлялся в дистрибутивах и позволял смастерить систему на свой вкус, включая функции пользователя. Как говорил Маменко, "публика неистовствовала" - простота Бейсика в сочетании с быстродействием на уровне машинных команд. Если решение соответствует заданным критериям, то уже третьестепенной важности - на чем оно, да хоть на Коболе. |
Автор: | Danko [ Вт сен 14, 2010 10:01:02 ] |
Заголовок сообщения: | Re: Можно ли увеличить память под прошивку? |
YS писал(а): Если надо впихнуть в МК AVR с 8Кб памяти гораздо больший объем кода, и нет возможности перейти на другой МК (что, конечно, самое разумное решение) YS писал(а): (что, конечно, самое разумное решение) ПоддерживаюС самого начала читаю ветку и до сих пор понять не могу. Есть рабочий проект, допустим на мега8, точнее не проект, а рабочее устройство. Нужно изменить программу, добавить новые функции и программа уже не помещается. И что мы просто подцепляем флешку, переписываем программу с нуля. Программу ладно, а где уверенность, что флешку есть куда подцепить. Т.е. еще и переделываем плату. Так где логика держатся за мега8 ? Объясните пожалуйста. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |