Перейти к содержанию
    

bootloader для AT91SAM7s256

Подскажите пожалуйста bootloader для AT91SAM7s256 :help:

желательно не встраиваемый в приложение

 

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

Приложение на основе FREERTOS.

 

Спасибо всем кто откликнется. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста bootloader для AT91SAM7s256 :help:

желательно не встраиваемый в приложение

 

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

Приложение на основе FREERTOS.

U-boot

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

хотя неофициальная сегодняшняя версия 1.2.0 получше постоена уже...

в ней даже легче чтото искать стало по сравнению с 1.1.6

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста bootloader для AT91SAM7s256 :help:

желательно не встраиваемый в приложение

 

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

Приложение на основе FREERTOS.

U-boot

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

хотя неофициальная сегодняшняя версия 1.2.0 получше постоена уже...

в ней даже легче чтото искать стало по сравнению с 1.1.6

 

 

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

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

 

А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный

но рабочий :unsure:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

У ethernut.de есть свой бутлоадер http://ethernut.de/arc/bootmon-1.0.2.zip

Самому нужен бутлоадер под этот камень.

Но раньше чем через несколько месяцев до этого руки не дойдут 8(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный

но рабочий :unsure:

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

flash_AT91.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный

но рабочий :unsure:

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

 

 

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

Изменено пользователем Пришелец

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

А нет чего нибудь попроще. В идеале - ознакомительный пример какой-нибудь примитивный

но рабочий :unsure:

не так там уж и много, просто невероятно запутано все

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Первую, вторую и третью надо переписать. К счастью, они составляют примерно 10% от всего проекта.

Причем переписывать эти части желательно прямо не читая :) ибо написаны они левой ногой.

Сама дешифрация/годится, но в протоколе избавляться (соответственно и шифратор гнусно заточенный править) от мелочной узкозаточенной под AVR придется.

Ну а дешифратор можно использовать не глядя - там все прямо все в лоб написано, но по размеру пожалуй оптимум.

Для LPC2000 загрузчик делал именно с использованием и по мотивам этой AVRовской штучки.

В 8K с дополнительными наворотиками в виде служебной консольки, HEX загрузчика, .... уложилось легко.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

 

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

 

брали готовые лоадеры - все они грохаются где-то на REMAPE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне казалось что наоборот вся специфика сосредоточена в записи во 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();    
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

брали готовые лоадеры - все они грохаются где-то на REMAPE

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

только без JTAGа

 

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

 

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

 

Прерывания разрешаются и в AIC и в самой перефирии

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

 

 

:help:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С JTAG работает

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

 

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

 

:blink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...