|
lpc1788 iap, Портит данные |
|
|
|
Jun 30 2014, 15:09
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 13-08-10
Пользователь №: 58 896

|
Всем привет! Нужна помошь, никак не могу разобраться. Решил Я написать свой bootloader, и разместил его в конце флеша. Основная программа вызываеть его когда хочет обновиться. Сделал, все залил. Бутлодер грузиться, находит файл прошивки и должен запихать ее с нолевого адреса флеша. Но при записи(256 512 байит или более)портиться первый две или три пачки, пишиться какаято чушь, а далее все как положено записываеться.Сектора флеша форматирую перед записью. Может кто сталкивался с проблемой???
|
|
|
|
|
 |
Ответов
|
Jul 1 2014, 05:18
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 13-08-10
Пользователь №: 58 896

|
Цитата(andrewlekar @ Jul 1 2014, 08:59)  Почему не работает, не знаю, но прокомментирую саму реализацию. Размещать бутлоадер в конце вполне разумно, у меня так же сделано. Но идея вызывать загрузчик из приложения не очень хорошая. Тут многие сталкивались с проблемами при таком подходе и в итоге переходили к другой схеме: сначала всегда стартует загрузчик и проверяет, нужно ли обновлять приложение или стартовать имеющееся. Вот скорей всего так и буду делать, размешать в начале и проверять есть чего или нет. А причина почему вызываю загрузчик из приложения, что бы уменьшить код загрузчика. В основном приложении гружу прошивку в SDRAM через USB, прыгаю на загрузчик, на всё готовое, инициализированное =). И просто копирую с SDRAM в буфер в RAMe, кусочками по 256 байт и пишу во флеш. Просто обидно, хочется разобрать в причинах нестабильной работе IAP, а то он так в середине флеша напишет мне лабуду, а Я потом буду гадать, чего это основная программа падает.
|
|
|
|
|
Jul 1 2014, 06:39
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Тоша @ Jul 1 2014, 11:18)  А причина почему вызываю загрузчик из приложения, что бы уменьшить код загрузчика. В основном приложении гружу прошивку в SDRAM через USB, прыгаю на загрузчик, на всё готовое, инициализированное =). И просто копирую с SDRAM в буфер в RAMe, кусочками по 256 байт и пишу во флеш. Правильная последовательность: 1. Загрузчик в начале флеш. Стартует первым. Проверяет валидность основной прошивки во флеш и наличие новой прошивки в SDRAM (инициализировав предварительно интерфейс SDRAM). 2. Если есть новая валидная прошивка в SDRAM - загрузчик шьёт её. В конце прошивки - сбрасывает флаг наличия новой прошивки. 3. Если имеется валидная прошивка во флеш (вновь прошита или имелась ранее), загрузчик передаёт управление на неё. Основная программа, по завершении приёма новой прошивки в SDRAM, ставит флаг новой прошивки и делает аппаратный сброс CPU (сторожевиком или через спец.регистр).
|
|
|
|
|
Jul 1 2014, 06:43
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 13-08-10
Пользователь №: 58 896

|
Цитата(jcxz @ Jul 1 2014, 10:39)  Правильная последовательность: 1. Загрузчик в начале флеш. Стартует первым. Проверяет валидность основной прошивки во флеш и наличие новой прошивки в SDRAM (инициализировав предварительно интерфейс SDRAM). 2. Если есть новая валидная прошивка в SDRAM - загрузчик шьёт её. В конце прошивки - сбрасывает флаг наличия новой прошивки. 3. Если имеется валидная прошивка во флеш (вновь прошита или имелась ранее), загрузчик передаёт управление на неё. Основная программа, по завершении приёма новой прошивки в SDRAM, ставит флаг новой прошивки и делает аппаратный сброс CPU (сторожевиком или через спец.регистр). Спасибо большое учту. Мысли примерно в этом же направлении и крутились..
|
|
|
|
Сообщений в этой теме
Тоша lpc1788 iap Jun 30 2014, 15:09 Golikov A. 1. Лучше наоборот сделать%)
Бутлоадер в начало пол... Jun 30 2014, 15:51 Тоша Цитата(Golikov A. @ Jun 30 2014, 19:51) 1... Jul 1 2014, 02:50 Golikov A. RE: lpc1788 iap Jul 1 2014, 05:49 Тоша Спасибо большое, сейчас опробую и отпишусь. Jul 1 2014, 06:04 andrewlekar Кстати, вы учли, что IAP использует немного вашей ... Jul 1 2014, 06:11 Тоша Цитата(andrewlekar @ Jul 1 2014, 10:11) К... Jul 1 2014, 06:33 Тоша Вобшем код от Golikov A., не очень помог, все оста... Jul 2 2014, 03:11 Сергей Борщ Цитата(Тоша @ Jul 2 2014, 06:11) Поробую ... Jul 2 2014, 06:40
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|