реклама на сайте
подробности

 
 
> bootloader для AT91SAM7s256
Пришелец
сообщение Feb 9 2007, 14:17
Сообщение #1


Частый гость
**

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



Подскажите пожалуйста bootloader для AT91SAM7s256 help.gif
желательно не встраиваемый в приложение

планируется его переработка - загрузка приложения из внешней DATAFLASH.
Приложение на основе FREERTOS.

Спасибо всем кто откликнется. smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 14)
PrSt
сообщение Feb 9 2007, 14:28
Сообщение #2


http://uschema.com
****

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



Цитата(Пришелец @ Feb 9 2007, 13:17) *
Подскажите пожалуйста bootloader для AT91SAM7s256 help.gif
желательно не встраиваемый в приложение

планируется его переработка - загрузка приложения из внешней DATAFLASH.
Приложение на основе FREERTOS.

U-boot
мне тя жаль, если начнеш его переписывать, он паршиво документирован и через-чур мудренно сконструирован... уже с ним столкнулся...
хотя неофициальная сегодняшняя версия 1.2.0 получше постоена уже...
в ней даже легче чтото искать стало по сравнению с 1.1.6


--------------------
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Feb 9 2007, 14:58
Сообщение #3


Частый гость
**

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



Цитата(PrSt @ Feb 9 2007, 14:28) *
Цитата(Пришелец @ Feb 9 2007, 13:17) *
Подскажите пожалуйста bootloader для AT91SAM7s256 help.gif
желательно не встраиваемый в приложение

планируется его переработка - загрузка приложения из внешней DATAFLASH.
Приложение на основе FREERTOS.

U-boot
мне тя жаль, если начнеш его переписывать, он паршиво документирован и через-чур мудренно сконструирован... уже с ним столкнулся...
хотя неофициальная сегодняшняя версия 1.2.0 получше постоена уже...
в ней даже легче чтото искать стало по сравнению с 1.1.6



Посмотрел я и мне то же стало сразу жаль себя - разбраться год наверное в нём надо
а если ещё и адаптировать то вообще можно загнуться. maniac.gif

А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный
но рабочий unsure.gif
Go to the top of the page
 
+Quote Post
anpilog
сообщение Feb 9 2007, 15:33
Сообщение #4


Частый гость
**

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



Немного не втему, но по теме 8)

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


--------------------
---
human traffic - всегда 8)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 9 2007, 15:41
Сообщение #5


Гуру
******

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



Цитата(Пришелец @ Feb 9 2007, 13:58) *
А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный
но рабочий unsure.gif
AVR231 - AES bootloader. Не считатая портирования UART останется только заменить spm.h и spm.s90 на прилагаемые и выкинуть запись в eeprom. Вроде больше ничего править там не нужно...
Прикрепленные файлы
Прикрепленный файл  flash_AT91.zip ( 1.34 килобайт ) Кол-во скачиваний: 110
 


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Feb 9 2007, 15:59
Сообщение #6


Частый гость
**

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



Цитата(Сергей Борщ @ Feb 9 2007, 15:41) *
Цитата(Пришелец @ Feb 9 2007, 13:58) *

А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный
но рабочий unsure.gif
AVR231 - AES bootloader. Не считатая портирования UART останется только заменить spm.h и spm.s90 на прилагаемые и выкинуть запись в eeprom. Вроде больше ничего править там не нужно...



Извините не очень понял - это ведь проект для AVR или не так?

Сообщение отредактировал Пришелец - Feb 9 2007, 16:00
Go to the top of the page
 
+Quote Post
PrSt
сообщение Feb 9 2007, 16:47
Сообщение #7


http://uschema.com
****

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



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

не так там уж и много, просто невероятно запутано все
мне хватило недели что-бы в тех леанах разобраться что мне нужно и пропатчить...


--------------------
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 9 2007, 16:53
Сообщение #8


Гуру
******

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



Цитата(Пришелец @ Feb 9 2007, 14:59) *
Извините не очень понял - это ведь проект для AVR или не так?
Но ведь он на С wink.gif Он состоит условно из четырех частей - инициализация периферии, прием по UART, расшифровка и запись во флеш. Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта. Как пример вполне сойдет.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 9 2007, 17:09
Сообщение #9


Гуру
******

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



Цитата(Сергей Борщ @ Feb 9 2007, 15:53) *
Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта.

Причем переписывать эти части желательно прямо не читая smile.gif ибо написаны они левой ногой.
Сама дешифрация/годится, но в протоколе избавляться (соответственно и шифратор гнусно заточенный править) от мелочной узкозаточенной под AVR придется.
Ну а дешифратор можно использовать не глядя - там все прямо все в лоб написано, но по размеру пожалуй оптимум.
Для LPC2000 загрузчик делал именно с использованием и по мотивам этой AVRовской штучки.
В 8K с дополнительными наворотиками в виде служебной консольки, HEX загрузчика, .... уложилось легко.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Feb 9 2007, 17:22
Сообщение #10


Частый гость
**

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



Цитата(Сергей Борщ @ Feb 9 2007, 16:53) *
Цитата(Пришелец @ Feb 9 2007, 14:59) *

Извините не очень понял - это ведь проект для AVR или не так?
Но ведь он на С wink.gif Он состоит условно из четырех частей - инициализация периферии, прием по UART, расшифровка и запись во флеш. Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта. Как пример вполне сойдет.



Мне казалось что наоборот вся специфика сосредоточена в записи во flash остальное в принципе у нас будет своё.

брали готовые лоадеры - все они грохаются где-то на REMAPE
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 9 2007, 18:08
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
PrSt
сообщение Feb 9 2007, 18:37
Сообщение #12


http://uschema.com
****

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



Цитата(Пришелец @ Feb 9 2007, 16:22) *
Мне казалось что наоборот вся специфика сосредоточена в записи во flash остальное в принципе у нас будет своё.
брали готовые лоадеры - все они грохаются где-то на REMAPE

вот еще такое есть в природе - http://armboot.sourceforge.net/


--------------------
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Feb 12 2007, 13:00
Сообщение #13


Частый гость
**

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



Спасибо - буду разбираться
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Feb 12 2007, 16:35
Сообщение #14


Частый гость
**

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



Оказалось - атмеловский бутлоадер (с сайта) работает smile.gif

только без JTAGа

При запуске его из под отладчика не хотят запускаться прерывания RSпорта и таймера (другими словами все разрешённые)

Иногда наоборот возникают самопроизвольно нерарешённые прерывания blink.gif после выполнения segmentinit()

Прерывания разрешаются и в AIC и в самой перефирии
флаг разрешения прерывания в USART установлен флаг приёма байта так же устанавливается при приёме байта а до АIC сигнал не доходит. Без JTAG всё работает.


help.gif
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Feb 13 2007, 12:58
Сообщение #15


Частый гость
**

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



С JTAG работает
но без расставленных точек останова до вызова ф-ции самой загрузки

прерывания так же перестают вызываться если остановить работающий проект в любом месте.

blink.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016