|
bootloader для AT91SAM7s256 |
|
|
|
Feb 9 2007, 14:17
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272

|
Подскажите пожалуйста bootloader для AT91SAM7s256 желательно не встраиваемый в приложение планируется его переработка - загрузка приложения из внешней DATAFLASH. Приложение на основе FREERTOS. Спасибо всем кто откликнется.
|
|
|
|
|
 |
Ответов
(1 - 14)
|
Feb 9 2007, 14:28
|

http://uschema.com
   
Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394

|
Цитата(Пришелец @ Feb 9 2007, 13:17)  Подскажите пожалуйста bootloader для AT91SAM7s256 желательно не встраиваемый в приложение планируется его переработка - загрузка приложения из внешней DATAFLASH. Приложение на основе FREERTOS. U-boot мне тя жаль, если начнеш его переписывать, он паршиво документирован и через-чур мудренно сконструирован... уже с ним столкнулся... хотя неофициальная сегодняшняя версия 1.2.0 получше постоена уже... в ней даже легче чтото искать стало по сравнению с 1.1.6
--------------------
|
|
|
|
|
Feb 9 2007, 14:58
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272

|
Цитата(PrSt @ Feb 9 2007, 14:28)  Цитата(Пришелец @ Feb 9 2007, 13:17)  Подскажите пожалуйста bootloader для AT91SAM7s256 желательно не встраиваемый в приложение планируется его переработка - загрузка приложения из внешней DATAFLASH. Приложение на основе FREERTOS. U-boot мне тя жаль, если начнеш его переписывать, он паршиво документирован и через-чур мудренно сконструирован... уже с ним столкнулся... хотя неофициальная сегодняшняя версия 1.2.0 получше постоена уже... в ней даже легче чтото искать стало по сравнению с 1.1.6 Посмотрел я и мне то же стало сразу жаль себя - разбраться год наверное в нём надо а если ещё и адаптировать то вообще можно загнуться. А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный но рабочий
|
|
|
|
|
Feb 9 2007, 15:33
|

Частый гость
 
Группа: Свой
Сообщений: 145
Регистрация: 11-12-06
Пользователь №: 23 382

|
Немного не втему, но по теме 8) У ethernut.de есть свой бутлоадер http://ethernut.de/arc/bootmon-1.0.2.zipСамому нужен бутлоадер под этот камень. Но раньше чем через несколько месяцев до этого руки не дойдут 8(
--------------------
--- human traffic - всегда 8)
|
|
|
|
|
Feb 9 2007, 15:41
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Пришелец @ Feb 9 2007, 13:58)  А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный но рабочий  AVR231 - AES bootloader. Не считатая портирования UART останется только заменить spm.h и spm.s90 на прилагаемые и выкинуть запись в eeprom. Вроде больше ничего править там не нужно...
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 9 2007, 15:59
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272

|
Цитата(Сергей Борщ @ Feb 9 2007, 15:41)  Цитата(Пришелец @ Feb 9 2007, 13:58)  А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный но рабочий  AVR231 - AES bootloader. Не считатая портирования UART останется только заменить spm.h и spm.s90 на прилагаемые и выкинуть запись в eeprom. Вроде больше ничего править там не нужно... Извините не очень понял - это ведь проект для AVR или не так?
Сообщение отредактировал Пришелец - Feb 9 2007, 16:00
|
|
|
|
|
Feb 9 2007, 16:47
|

http://uschema.com
   
Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394

|
Цитата(Пришелец @ Feb 9 2007, 13:58)  Посмотрел я и мне то же стало сразу жаль себя - разбраться год наверное в нём надо а если ещё и адаптировать то вообще можно загнуться. А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный но рабочий  не так там уж и много, просто невероятно запутано все мне хватило недели что-бы в тех леанах разобраться что мне нужно и пропатчить...
--------------------
|
|
|
|
|
Feb 9 2007, 17:09
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Сергей Борщ @ Feb 9 2007, 15:53)  Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта. Причем переписывать эти части желательно прямо не читая  ибо написаны они левой ногой. Сама дешифрация/годится, но в протоколе избавляться (соответственно и шифратор гнусно заточенный править) от мелочной узкозаточенной под AVR придется. Ну а дешифратор можно использовать не глядя - там все прямо все в лоб написано, но по размеру пожалуй оптимум. Для LPC2000 загрузчик делал именно с использованием и по мотивам этой AVRовской штучки. В 8K с дополнительными наворотиками в виде служебной консольки, HEX загрузчика, .... уложилось легко.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 9 2007, 17:22
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272

|
Цитата(Сергей Борщ @ Feb 9 2007, 16:53)  Цитата(Пришелец @ Feb 9 2007, 14:59)  Извините не очень понял - это ведь проект для AVR или не так?
Но ведь он на С  Он состоит условно из четырех частей - инициализация периферии, прием по UART, расшифровка и запись во флеш. Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта. Как пример вполне сойдет. Мне казалось что наоборот вся специфика сосредоточена в записи во flash остальное в принципе у нас будет своё. брали готовые лоадеры - все они грохаются где-то на REMAPE
|
|
|
|
|
Feb 9 2007, 18:08
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Пришелец @ Feb 9 2007, 16:22)  Мне казалось что наоборот вся специфика сосредоточена в записи во 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 я выкладывал выше. Цитата(Пришелец @ Feb 9 2007, 16:22)  брали готовые лоадеры - все они грохаются где-то на 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(); }
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 12 2007, 16:35
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272

|
Оказалось - атмеловский бутлоадер (с сайта) работает только без JTAGа При запуске его из под отладчика не хотят запускаться прерывания RSпорта и таймера (другими словами все разрешённые) Иногда наоборот возникают самопроизвольно нерарешённые прерывания  после выполнения segmentinit() Прерывания разрешаются и в AIC и в самой перефирии флаг разрешения прерывания в USART установлен флаг приёма байта так же устанавливается при приёме байта а до АIC сигнал не доходит. Без JTAG всё работает.
|
|
|
|
|
Feb 13 2007, 12:58
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272

|
С JTAG работает но без расставленных точек останова до вызова ф-ции самой загрузки прерывания так же перестают вызываться если остановить работающий проект в любом месте.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|