DimonD 0 16 марта, 2005 Опубликовано 16 марта, 2005 · Жалоба Меня интересует… возможно ли изменить константу в памяти программы то есть перепрограммировать участок кода в ходе выполнения основной программы. С EEPROM не хочу связываться. Если есть такая возможность подскажите как…. На Си… Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 16 марта, 2005 Опубликовано 16 марта, 2005 · Жалоба Application Note AVR105 Всё очень подробно описано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SPS 0 16 марта, 2005 Опубликовано 16 марта, 2005 · Жалоба LPM - загрузка из памяти программы. SPM - запись в память программы. Смотри также команды LD, ST. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimonD 0 17 марта, 2005 Опубликовано 17 марта, 2005 · Жалоба Что-то я совсем туплю ну не как понять не могу как в CodeVisionAVR изменить ячейка в памяти программ. Знаю что есть AVR105/AVR109 и на amel.ru есть описание но там в основном говориться о бут загрузчиках и примеры на ассемблере. Может в качестве примера сишный код кто даст. Можно и со вставкой ассемблера. Заранее спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SPS 0 17 марта, 2005 Опубликовано 17 марта, 2005 · Жалоба LPM - загрузка из памяти программы. SPM - запись в память программы. Смотри также команды LD, ST. <{POST_SNAPBACK}> Какая проблема поместить данные команды в СИ в виде ассемблерных вставок? LPM - загрузка в R0 из адреса Z. LPM Rd,Z - загрузка в Rd из адреса Z. LPM Rd,Z+ - загрузка в Rd из адреса Z с инкрементом адреса. Напомню, что данные команды поддерживаются не всеми АVR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 17 марта, 2005 Опубликовано 17 марта, 2005 · Жалоба Меня интересует… возможно ли изменить константу в памяти программы то есть перепрограммировать участок кода в ходе выполнения основной программы. С EEPROM не хочу связываться. Если есть такая возможность подскажите как…. На Си… <{POST_SNAPBACK}> Лучше всетаки связаться с eeprom!!! в Eeprom еще можно гораздо больше раз писать чем во флеш Запись во флеш может быть только по страницам и только из области бутлоадера. Т.е. надо считать страницу LMP ами потом стереть записать SPM и потом записать всю страницу. На с можно написать у IAR есть функции __DataToR0ByteToSPMCR_SPM __AddrToZByteToSPMCR_SPM __AddrToZWordToR1R0ByteToSPMCR_SPM , но лучше встеки писать на асме, потому что текс на С принципиально отличатся не будет! но вот на АСМе он понятнее будет! тем более все примеры на нем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimonD 0 17 марта, 2005 Опубликовано 17 марта, 2005 · Жалоба >>Какая проблема поместить данные команды в СИ в виде ассемблерных вставок? проблем нет :) вот текст: #asm ldi r31,$F0 clr r30 ldi r16,$CF mov r1,r16 ldi r16,$03 out SPMCR,r16 spm ldi r16,$01 out SPMCR,r16 //тут CodeVisionAVR ругается spm #endasm >>Напомню, что данные команды поддерживаются не всеми АVR еще дело не дошло до AVR Studio, а так amega163 или 128 Может все-таки кто даст даст работающий пример… Ассемблер я плохо знаю и не работал в нем может поэтому я что-то да не понимаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vet 0 17 марта, 2005 Опубликовано 17 марта, 2005 · Жалоба out SPMCR,r16 //тут CodeVisionAVR ругается А не из-за комментария ли он ругается? ;) Сишного комментария в ассемблерной строке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 17 марта, 2005 Опубликовано 17 марта, 2005 · Жалоба >>Какая проблема поместить данные команды в СИ в виде ассемблерных вставок? Может все-таки кто даст даст работающий пример… Ассемблер я плохо знаю и не работал в нем может поэтому я что-то да не понимаю. <{POST_SNAPBACK}> Не все так просто! SPM можно делать только из области бутлоадера поэтому функию надо размещать там. А пример бутлоадера и как работать с spm есть на сайте атмела в AppNotes AVR109 http://www.atmel.com/dyn/resources/prod_do...nts/doc1644.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться