Пришелец 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Подскажите пожалуйста bootloader для AT91SAM7s256 желательно не встраиваемый в приложение планируется его переработка - загрузка приложения из внешней DATAFLASH. Приложение на основе FREERTOS. Спасибо всем кто откликнется. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Подскажите пожалуйста bootloader для AT91SAM7s256 желательно не встраиваемый в приложение планируется его переработка - загрузка приложения из внешней DATAFLASH. Приложение на основе FREERTOS. U-boot мне тя жаль, если начнеш его переписывать, он паршиво документирован и через-чур мудренно сконструирован... уже с ним столкнулся... хотя неофициальная сегодняшняя версия 1.2.0 получше постоена уже... в ней даже легче чтото искать стало по сравнению с 1.1.6 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Подскажите пожалуйста bootloader для AT91SAM7s256 желательно не встраиваемый в приложение планируется его переработка - загрузка приложения из внешней DATAFLASH. Приложение на основе FREERTOS. U-boot мне тя жаль, если начнеш его переписывать, он паршиво документирован и через-чур мудренно сконструирован... уже с ним столкнулся... хотя неофициальная сегодняшняя версия 1.2.0 получше постоена уже... в ней даже легче чтото искать стало по сравнению с 1.1.6 Посмотрел я и мне то же стало сразу жаль себя - разбраться год наверное в нём надо а если ещё и адаптировать то вообще можно загнуться. :maniac: А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный но рабочий :unsure: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anpilog 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Немного не втему, но по теме 8) У ethernut.de есть свой бутлоадер http://ethernut.de/arc/bootmon-1.0.2.zip Самому нужен бутлоадер под этот камень. Но раньше чем через несколько месяцев до этого руки не дойдут 8( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный но рабочий :unsure: AVR231 - AES bootloader. Не считатая портирования UART останется только заменить spm.h и spm.s90 на прилагаемые и выкинуть запись в eeprom. Вроде больше ничего править там не нужно...flash_AT91.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 (изменено) · Жалоба А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный но рабочий :unsure: AVR231 - AES bootloader. Не считатая портирования UART останется только заменить spm.h и spm.s90 на прилагаемые и выкинуть запись в eeprom. Вроде больше ничего править там не нужно... Извините не очень понял - это ведь проект для AVR или не так? Изменено 9 февраля, 2007 пользователем Пришелец Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Посмотрел я и мне то же стало сразу жаль себя - разбраться год наверное в нём надо а если ещё и адаптировать то вообще можно загнуться. :maniac: А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный но рабочий :unsure: не так там уж и много, просто невероятно запутано все мне хватило недели что-бы в тех леанах разобраться что мне нужно и пропатчить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Извините не очень понял - это ведь проект для AVR или не так?Но ведь он на С ;) Он состоит условно из четырех частей - инициализация периферии, прием по UART, расшифровка и запись во флеш. Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта. Как пример вполне сойдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта. Причем переписывать эти части желательно прямо не читая :) ибо написаны они левой ногой. Сама дешифрация/годится, но в протоколе избавляться (соответственно и шифратор гнусно заточенный править) от мелочной узкозаточенной под AVR придется. Ну а дешифратор можно использовать не глядя - там все прямо все в лоб написано, но по размеру пожалуй оптимум. Для LPC2000 загрузчик делал именно с использованием и по мотивам этой AVRовской штучки. В 8K с дополнительными наворотиками в виде служебной консольки, HEX загрузчика, .... уложилось легко. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Извините не очень понял - это ведь проект для AVR или не так?Но ведь он на С ;) Он состоит условно из четырех частей - инициализация периферии, прием по UART, расшифровка и запись во флеш. Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта. Как пример вполне сойдет. Мне казалось что наоборот вся специфика сосредоточена в записи во flash остальное в принципе у нас будет своё. брали готовые лоадеры - все они грохаются где-то на REMAPE Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Мне казалось что наоборот вся специфика сосредоточена в записи во flash остальное в принципе у нас будет своё. Да вся специфика свелась к этому: inline void ClearFlashBuffer() { uint8_t Size = PAGE_SIZE / sizeof(uint32_t); uint32_t const *r = (uint32_t *)0; do { spmWriteWord(r++, ~(uint32_t)0); } while (--Size); } //----------------------------------- case TYPE_PROGRAM: // Program page buffer into flash page { uint32_t *q = pageBuffer; uint32_t const *r = address; ClearFlashBuffer(); // page erasing emulation do { __watchdog_reset(); spmWriteWord(r++, *q++); } while (--size); spmProgramPage(address); } break; файлы с реализацией spmXXX я выкладывал выше. брали готовые лоадеры - все они грохаются где-то на REMAPEЭто надо отладчиком отлавливать. У меня старт примерно такой: extern "C" __arm void __program_start(); int main(void) { // Check that the Application Section contents is undamaged // by calculating the CRC of the whole memory. if( (!dir(MANUAL_PROG)) // if power-on reset && (!signal(MANUAL_PROG))) { uint16_t crc = 0; uint8_t const *p = (uint8_t *)APP_START; uintptr_t n = APP_END - APP_START + 1; do { crc = CRC(crc, *p++); } while (--n); if (!crc) { // Application Section OK dir_out(MANUAL_PROG); // set MANUAL_PROG as output // copy application INTVEC_ID to remapped INTVEC uint32_t const *Src = (uint32_t *)APP_START; uint32_t *Dst = (uint32_t *)0x00200000; //RAMSTART uint_fast8_t Size = 0x40 / sizeof *Dst; do { *Dst++ = *Src++; } while (--Size); AT91C_BASE_MC->MC_RCR = AT91C_MC_RCB; // REMAP __program_start(); } } loader(); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 · Жалоба Мне казалось что наоборот вся специфика сосредоточена в записи во flash остальное в принципе у нас будет своё. брали готовые лоадеры - все они грохаются где-то на REMAPE вот еще такое есть в природе - http://armboot.sourceforge.net/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 · Жалоба Спасибо - буду разбираться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 · Жалоба Оказалось - атмеловский бутлоадер (с сайта) работает :) только без JTAGа При запуске его из под отладчика не хотят запускаться прерывания RSпорта и таймера (другими словами все разрешённые) Иногда наоборот возникают самопроизвольно нерарешённые прерывания :blink: после выполнения segmentinit() Прерывания разрешаются и в AIC и в самой перефирии флаг разрешения прерывания в USART установлен флаг приёма байта так же устанавливается при приёме байта а до АIC сигнал не доходит. Без JTAG всё работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 13 февраля, 2007 Опубликовано 13 февраля, 2007 · Жалоба С JTAG работает но без расставленных точек останова до вызова ф-ции самой загрузки прерывания так же перестают вызываться если остановить работающий проект в любом месте. :blink: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться