|
LPC1549 в ISP режиме, не корректно выходит |
|
|
|
Feb 12 2016, 14:26
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Изучаю МК LPC1549 на демо плате LPCXpresso V2 Boards, IDE LPCXpresso. Разбираюсь с режимом работы в ISP, связь МК с ПК по CAN. Переход в ISP осуществляется из функции main() с помощью IAP команды: Код Chip_IAP_ReinvokeISP(BOOT_CAN);//invoke ISP CAN Param0: ISP mode. 3 = C_CAN ISP Счытываю тип прибора, идентификационный номер (не записываю ни во Flash ни в RAM). Обмен виден утилитой USB-CAN моста. Потом выхожу из ISP в приложение командой «Go». Команда отрабатывается, но МК куда то улетает, а нужно в начало пользовательського приложения. Что я делаю не так?
|
|
|
|
|
 |
Ответов
|
Feb 12 2016, 17:22
|

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

|
QUOTE (kolisnichenko_r @ Feb 12 2016, 16:26)  Изучаю МК LPC1549 на демо плате LPCXpresso V2 Boards, IDE LPCXpresso. Разбираюсь с режимом работы в ISP, связь МК с ПК по CAN. Переход в ISP осуществляется из функции main() с помощью IAP команды: CODE Chip_IAP_ReinvokeISP(BOOT_CAN);//invoke ISP CAN Param0: ISP mode. 3 = C_CAN ISP Счытываю тип прибора, идентификационный номер (не записываю ни во Flash ни в RAM). Обмен виден утилитой USB-CAN моста. Потом выхожу из ISP в приложение командой «Go». Команда отрабатывается, но МК куда то улетает, а нужно в начало пользовательського приложения. Что я делаю не так? А что Вы считаете "началом приложения"? Ну а в общем случае Вы по "Go" кортекс M3 не запустите  . Попытка сляпать "никакой" startup увенчалась "успехом' в результате которого в стартапе нет, например, явной установки стека. Если в начале Вашего приложения лично Вы не добавили инициализацию, то по Go улетите. Про младший бит адреса помните?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 12 2016, 19:50
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(zltigo @ Feb 12 2016, 23:22)  А что Вы считаете "началом приложения"? Ну а в общем случае Вы по "Go" кортекс M3 не запустите  . Попытка сляпать "никакой" startup увенчалась "успехом' в результате которого в стартапе нет, например, явной установки стека. Если в начале Вашего приложения лично Вы не добавили инициализацию, то по Go улетите. Про младший бит адреса помните? У Вас видно старая версия FlashMagic-а. Последние умеют переходить по содержимому начала таблицы векторов (есть там чекбокс соответствующий). А сама идея конечно бредовая, можно наверное трусы и через голову надевать, но есть более традиционные методы. И товарищ, с большой долей вероятности, не задумался в каком состоянии находится периферия в момент сего перехода, и как написан его код инициализации периферии, переварит-ли он недефолтные значения в её регистрах. Но если всё-таки хочется трусы через голову, то можно например посоветовать ему написать функцию, дёргающую аппаратный сброс (например через WDT), слинковать её на фиксированный адрес и передавать сей адрес команде Go. Так есть шанс не застрять ушами в трусах.
|
|
|
|
|
Feb 12 2016, 20:50
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(jcxz @ Feb 12 2016, 22:50)  У Вас видно старая версия FlashMagic-а. Последние умеют переходить по содержимому начала таблицы векторов (есть там чекбокс соответствующий). А сама идея конечно бредовая, можно наверное трусы и через голову надевать, но есть более традиционные методы. И товарищ, с большой долей вероятности, не задумался в каком состоянии находится периферия в момент сего перехода, и как написан его код инициализации периферии, переварит-ли он недефолтные значения в её регистрах. Но если всё-таки хочется трусы через голову, то можно например посоветовать ему написать функцию, дёргающую аппаратный сброс (например через WDT), слинковать её на фиксированный адрес и передавать сей адрес команде Go. Так есть шанс не застрять ушами в трусах.  На счет идеи, если больше нету связи кроме как CAN и дергать питанием тоже нельзя. Использовать ISP как раз когда можно в него перейти с работающей программы переписать код и потом в новую вернуться. Но на даном этапе не получилось просто войти и вернуться. Как оно не просто... Цитата(zltigo @ Feb 12 2016, 23:43)  Вы это что спросить хотели?
Детский сад какой-то. Вы слово стек когда-нибудь слышали? Вы прервали программу и потом НЕ возвратились, а послали (ну в Вашем варианте вообще на 3 веселых буквы) в другое место. Про то, зарезервировали-ли Вы память в своей программе для работы ISP, спрашивать, видимо, вообще не имеет смысла? Для того что бы задать вопрос надо знать хотя бы часть ответа. Вот этим и надо заняться. А с чего начать?
|
|
|
|
|
Feb 12 2016, 21:03
|

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

|
QUOTE (kolisnichenko_r @ Feb 12 2016, 22:50)  А с чего начать? В Вашем случае с самого начала: 1) Архитектура контроллера и как он стартует. 2) Какие ресурсы использует ISP и как с ним сосуществовать.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
kolisnichenko_r LPC1549 в ISP режиме Feb 12 2016, 14:26 kolisnichenko_r Цитата(zltigo @ Feb 12 2016, 21:22) А что... Feb 12 2016, 18:56  zltigo QUOTE (kolisnichenko_r @ Feb 12 2016, 20... Feb 12 2016, 19:47   kolisnichenko_r Цитата(zltigo @ Feb 12 2016, 22:47) Ой, к... Feb 12 2016, 20:31    zltigo QUOTE (kolisnichenko_r @ Feb 12 2016, 22... Feb 12 2016, 20:43  zltigo QUOTE (jcxz @ Feb 12 2016, 21:50) У Вас в... Feb 12 2016, 19:58   jcxz Цитата(zltigo @ Feb 13 2016, 01:58) У мен... Feb 13 2016, 07:24    zltigo QUOTE (jcxz @ Feb 13 2016, 09:24) что зна... Feb 13 2016, 15:59     jcxz Цитата(zltigo @ Feb 13 2016, 21:59) Остал... Feb 14 2016, 16:39      zltigo QUOTE (jcxz @ Feb 14 2016, 18:39) Ну нет,... Feb 14 2016, 17:13    kolisnichenko_r Цитата(zltigo @ Feb 13 2016, 00:03) В Ваш... Feb 13 2016, 07:51     kolisnichenko_r Уже возвращается в приложение и отрабатывает его н... Feb 17 2016, 10:57      kolisnichenko_r Цитата(kolisnichenko_r @ Feb 17 2016, 13... Feb 17 2016, 12:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|