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

 
 
> Никак не пойму как работае IAP, Никак не пойму как работае IAP
Metallist64
сообщение Jun 14 2011, 08:36
Сообщение #1


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

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Добрый день уважаемый ALL!
Использую LPC2367 + Keil+RL. Встал вопрос обновления прошивки.
Планирую записывать ее во внешнюю флэшку. Затем читать и программировать механизмом IAP.
Проблема в следующем: не въеду как работает этот IAP.
Понял, что есть область адресов для программы, есть кокой-то загрузчик. Но не понимаю как осуществляется переход между ними.
Кто сталкивался, прошу помощи.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kovigor
сообщение Jun 14 2011, 09:26
Сообщение #2


Гуру
******

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



Цитата(Metallist64 @ Jun 14 2011, 11:36) *
Добрый день уважаемый ALL!
Использую LPC2367 + Keil+RL. Встал вопрос обновления прошивки.
Планирую записывать ее во внешнюю флэшку. Затем читать и программировать механизмом IAP.
Проблема в следующем: не въеду как работает этот IAP.
Понял, что есть область адресов для программы, есть кокой-то загрузчик. Но не понимаю как осуществляется переход между ними.
Кто сталкивался, прошу помощи.


Вызываются функции загрузчика через указатели на них. У NXP все расписано в аппнотах. Например:

http://www.nxp.com/documents/application_note/AN10256.pdf

Если надо, могу прислать проект для LPC214x

Сообщение отредактировал kovigor - Jun 14 2011, 09:29
Go to the top of the page
 
+Quote Post
Metallist64
сообщение Jun 14 2011, 10:13
Сообщение #3


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

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Цитата
Вызываются функции загрузчика через указатели на них. У NXP все расписано в аппнотах.

Вот вот здесь собственно и начинаются непонятки:
1. После перехода к загрузчику(и его выполнения?), насколько я понимаю, должен следовать мой код?
2. Насколько я понял максимальный разъмер кода - 8кб ? Т.к. он будет расположен в области загрузчика?
3. Слышал, что нужно переписывать таблицу векторов прерывай, так ли это?

PS Апноут прочел. Но к сожалению не понимаю последовательности процесса.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 14 2011, 10:26
Сообщение #4


Гуру
******

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



Цитата(Metallist64 @ Jun 14 2011, 13:13) *
Вот вот здесь собственно и начинаются непонятки:
1. После перехода к загрузчику(и его выполнения?), насколько я понимаю, должен следовать мой код?
2. Насколько я понял максимальный разъмер кода - 8кб ? Т.к. он будет расположен в области загрузчика?
3. Слышал, что нужно переписывать таблицу векторов прерывай, так ли это?


1. И до, и после. Вызовы функций загрузчика вставляются в требуемые места вашей программы.
2. См. описание функций загрузчика. В функцию записи передаются адреса источника и приемника, а никак не сами записываемые данные.
3. Не совсем. Вы просто можете запретить прерывания на время модификации Flash. Альтернатива - скопировать таблицу векторов в ОЗУ, указать на эту копию процессору и разместить обработчики прерываний и все требуемое для их работы в ОЗУ. тогда прерывания смогут обрабатываться даже во время записи во Flash ...

Сообщение отредактировал kovigor - Jun 14 2011, 10:27
Go to the top of the page
 
+Quote Post
Metallist64
сообщение Jun 14 2011, 11:29
Сообщение #5


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

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Цитата(kovigor @ Jun 14 2011, 14:26) *
1. И до, и после. Вызовы функций загрузчика вставляются в требуемые места вашей программы.
2. См. описание функций загрузчика. В функцию записи передаются адреса источника и приемника, а никак не сами записываемые данные.
3. Не совсем. Вы просто можете запретить прерывания на время модификации Flash. Альтернатива - скопировать таблицу векторов в ОЗУ, указать на эту копию процессору и разместить обработчики прерываний и все требуемое для их работы в ОЗУ. тогда прерывания смогут обрабатываться даже во время записи во Flash ...


Т.е. насколько я понял, я должен записываться код со следующего свободного сектора и затем как-то переходить именно в эту область ?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 14 2011, 11:52
Сообщение #6


Гуру
******

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



Цитата(Metallist64 @ Jun 14 2011, 14:29) *
Т.е. насколько я понял, я должен записываться код со следующего свободного сектора и затем как-то переходить именно в эту область ?


А зачем туда переходить ? Стираете сектор и записываете в него новые данные (блоками размером не более 4096 байт). В User Manual'е все это подробно расписано. После обновления всех запланированных секторов можете просто использовать их новое содержимое по своему усмотрению (например, если обновлялись данные пользователя). А если речь идет об обновлении прошивки, по проще всего будет после успешного обновления перегрузиться, используя WatchDog. Так вы "перейдете именно в эту область". Функции, модифицирующие Flash, следует расположить в ОЗУ, чтобы не было конфликтов и зависаний при одновременной модификации Flash и выборки из нее кодов команд или данных ...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Metallist64   Никак не пойму как работае IAP   Jun 14 2011, 08:36
- - Metallist64   ЦитатаФункции, модифицирующие Flash, следует распо...   Jun 16 2011, 10:32
|- - mempfis_   Цитата(Metallist64 @ Jun 16 2011, 13:32) ...   Jun 19 2011, 12:21
- - Metallist64   Большое спасибо за пример и пояснение. С функциями...   Jun 20 2011, 06:29
|- - mempfis_   Цитата(Metallist64 @ Jun 20 2011, 09:29) ...   Jun 20 2011, 16:34
- - Metallist64   Большое спасибо! Пойду разбираться!   Jun 21 2011, 05:54
- - Lexy_one   Здраствуйте я прочитал топик... вроде большынство ...   Jul 11 2011, 11:34
|- - kovigor   Цитата(Lexy_one @ Jul 11 2011, 14:34) Здр...   Jul 12 2011, 08:26
- - skripach   ЦитатаИли можно коду загрузчика работать из флеш? ...   Jul 12 2011, 08:43
- - Lexy_one   И еще пара вопросиков 1) допустим у меня приложен...   Jul 12 2011, 10:40
- - Lexy_one   И еще подскажите как корректно перейти из основно...   Jul 13 2011, 09:08


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:35
Рейтинг@Mail.ru


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