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

 
 
> Алгоритм работы ISP на LPC2xxx, Собственный бут жутко тормозит
Punk
сообщение Feb 11 2011, 07:45
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Приветствую.
Написал свой бутлоадер для LPC2129, работает нормально, но страшно медленно. Алгоритм такой:

Девайс получает с компа через UART (интерфейс c ПК на FT232R) побайтно дамп прошивки, после приема каждого байта отвечает NOT-ом этого байта(для контроля). Как только 512байтная страничка заполнилась, проц ее пишет во флеш. Далее снова заполняет 512 байтный буфер ипишем флеш. В общем в цикле все происходит пока не запишем весь дамп.

Все это работает, но ужасно медленно. Скорость UART 9600, увеличивал до 256000, толку мало. Прошивка размером 16К льется 5 минут.
Возникает вопрос: Как реализован процесс загрузки в штатном загрузчике LPC2xxx, если он те же 16К через FTDI льет несколько секунд ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kovigor
сообщение Feb 11 2011, 09:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Punk @ Feb 11 2011, 11:45) *
после приема каждого байта отвечает NOT-ом этого байта(для контроля)


Не надо так делать, это бессмысленно. Реализуйте лучше XMODEM и заливайте прошивки стандартной терминалкой ...
Go to the top of the page
 
+Quote Post
Punk
сообщение Feb 11 2011, 10:09
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата(kovigor @ Feb 11 2011, 13:02) *
Не надо так делать, это бессмысленно. Реализуйте лучше XMODEM и заливайте прошивки стандартной терминалкой ...

Почему бессмысленно?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 11 2011, 10:15
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Punk @ Feb 11 2011, 14:09) *
Почему бессмысленно?


Потому что нужно проверять целостность целых блоков, а не отдельных байтов. Потому что для загрузки по вашему методу нужно уникальное ПО. Потому что это медленно. И еще потому, что это ничем не оправдано ...

Сообщение отредактировал kovigor - Feb 11 2011, 10:15
Go to the top of the page
 
+Quote Post
Punk
сообщение Feb 11 2011, 11:17
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата(kovigor @ Feb 11 2011, 14:15) *
Потому что нужно проверять целостность целых блоков, а не отдельных байтов. Потому что для загрузки по вашему методу нужно уникальное ПО. Потому что это медленно. И еще потому, что это ничем не оправдано ...

Дык...как раз хочется уникальное, и быстрое.

По поводу ответа после каждого байта и длинных посылок: Убираю ответ и синхра падает мертво, хотя когда сплошным потоком лью код только в RAM, без всяких страниц и секторов, то все хорошо.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 12 2011, 08:36
Сообщение #6


Гуру
******

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



QUOTE (Punk @ Feb 11 2011, 14:17) *
Убираю ответ и синхра падает мертво

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 14:39
Рейтинг@Mail.ru


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