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

 
 
> Reinvoke ISP, LPC2388, Процессор отвечает не на все команды
Dreamer
сообщение Mar 26 2010, 10:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 13-01-06
Из: Санкт-Петербург
Пользователь №: 13 154



Здравствуйте.

Хочу в процессе выполнения программы запустить бутлоадер и перепрошить программу.
Для этого в нужном мне месте программы вызываю команду загрузчика "Reinvoke ISP", старался делать все по юзер мануалу, но видимо, что-то недоделал.

Вот код:

Код
#define IAP_LOCATION 0x7ffffff1
unsigned long command[5]={0};
unsigned long result[3]={0};
typedef void (*IAP)(unsigned int[],unsigned int[]);
IAP iap_entry = (IAP)IAP_LOCATION;

#define ISP_OPTION_2
void PrepareProgCPU()
{
    VICINTENCLEAR = 0xFFFFFFFF;     // Disable all interrupts
#ifdef  ISP_OPTION_2     
    //по документации - в этом случае надо выключать плл и выбрать внутренний IRC
    MAMCR =  0; //читал, что в ранних ревизиях нужно отключать MAM, у меня ревизия B
    PLLCON  = 0x00;
    PLLFEED = 0xAA;
    PLLFEED = 0x55;
    CLKSRCSEL=0;
#endif //иначе исполняем с опцией "1" - pll не выключаем
    command[0] = 57;
    iap_entry(command,result);
}


В результате получаем следующую картину.
Вызываем в программе указанную функцию. Открываем терминал. Настраиваем (пока пользуюсь скоростью 9600).
Шлем в терминал символ "?".
Получаем ответ "Synhronized". Получается, что боотлоадер запустился и отвечает на команды.
Закрываем терминал, открываем флешмеджик. Настраиваем на те же параметры, делаем старт.
Происходит стирание флеша (в статусной строке проскакивают сообщения "Erasing block").
Далее в статусной строке пишется "Programming..."
После чего выводится сообщение "Anable to communicate (transmit/receive)". Программирование прекращается, если запустить терминал, на команды больше не отвечаем.

Далее отключаю питание. Включаю. Процессор не исполняет рабочую программу, находится в редиме загрузчика. Проверяю - запускаю флешмеджик, делаю "старт" - программируется "на ура", причем с любой скоростью.

Компилирую программу с "#define ISP_OPTION_1". Это допустимо, как утверждается в документации, при этом должна установиться PCLK = CCLK/4.
У меня используется частота 72 мегагерца, если поделить на 4, получается 18, для скорости 9600 это допустимое значение.

Тестируем, получаем абсолютно идентичный результат.


Получается, что я перед вызовом "Reinvoke ISP" что-то не вернул в исходное состояние. Вопрос, что?

ЗЫ. Компилятор - IAR 5.4.


--------------------
Все врут (с) /M.D.House/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dreamer
сообщение Mar 30 2010, 15:25
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 13-01-06
Из: Санкт-Петербург
Пользователь №: 13 154



Цитата
ну в чем-то другом проблема, ибо работает reinvoke и всегда работала.


Да уж, попадалово...
Анализирую ситуацию - почему-то всегда успешно проходит автобод, запрос версии загрузчика и т.д.
Даже "портить" программу получается. Проблемы возникают именно на стадии записи во флеш.
Подумал вот что. Каким образом программа-прошиватель ожидает ответ от процессора во время такой команды?
По таймауту, или по состоянии линии CTS/RTS. Дело в том, что у меня эти линии не подключены, и можно предположить, что они используются при работе прошивателя.
Однако, все же странно, почему в случае запуска сразу при включении запись флеша проходит нормально.

Цитата
Вы работаете через FastIO - я бы вернул его в обычный режим и работал "штатно"

Я его использую для порта 2, так как для портов 0 и 1 в инклюдах соответствующие макросы есть, а для номеров 2 и выше - только FIOXXX.

Сообщение отредактировал Dreamer - Mar 30 2010, 15:28


--------------------
Все врут (с) /M.D.House/
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 30 2010, 15:38
Сообщение #3


Гуру
******

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



Цитата(Dreamer @ Mar 30 2010, 18:25) *
по состоянии линии CTS/RTS.

Все взаимодействие четко описано в документации.
Цитата
Я его использую для порта 2

Да, это я ошибся sad.gif


Цитата(Dreamer @ Mar 30 2010, 18:25) *
Проблемы возникают именно на стадии записи во флеш.

Уже писал после рассмотрения лога. ПРОБЛЕМЫ в Вашем случае происходят при пересылке информации в RAM LPC2000. Программатор получает ошибочное эхо и потом, в конце блока ругань LPC на неверную контрольную сумму. Повторяю, банальные сбои в UART. До работы с Flash дело не доходит вообще.


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

Сообщений в этой теме
- Dreamer   Reinvoke ISP, LPC2388   Mar 26 2010, 10:12
- - Dreamer   Что-то чем дальше, тем менее понятно. Итак, в обеи...   Mar 26 2010, 14:09
- - zltigo   Цитата(Dreamer @ Mar 26 2010, 13:12) Полу...   Mar 26 2010, 14:52
- - Dreamer   ЦитатаВы скорее всего не дочитали инструкцию Так о...   Mar 26 2010, 16:27
|- - zltigo   Цитата(Dreamer @ Mar 26 2010, 19:27) Я пр...   Mar 26 2010, 16:33
- - Dreamer   Хорошая программа, спасибо. Как задается частота, ...   Mar 28 2010, 20:30
|- - zltigo   Цитата(Dreamer @ Mar 28 2010, 23:30) В на...   Mar 28 2010, 21:07
- - Dreamer   ЦитатаВы говорите, что при программировании после ...   Mar 29 2010, 14:02
|- - zltigo   Цитата(Dreamer @ Mar 29 2010, 17:02) а их...   Mar 29 2010, 14:22
- - Dreamer   Цитата"FCCO Check: 288.00000" там в erra...   Mar 29 2010, 14:48
- - Dreamer   ЦитатаА с MAM у Вас что? Включен: Код MAMCR = 0;...   Mar 29 2010, 16:04
- - zltigo   Не знаю. Думайте. Вот, для проверки только-что на ...   Mar 29 2010, 16:37
- - Dreamer   Пока хороших мыслей в голову не приходит. Приходят...   Mar 30 2010, 09:30
|- - zltigo   Цитата(Dreamer @ Mar 30 2010, 12:30) Что ...   Mar 30 2010, 10:34
- - Dreamer   Переделал почти как вы сказали (почти - потому что...   Mar 30 2010, 14:36
|- - zltigo   Цитата(Dreamer @ Mar 30 2010, 17:36) пото...   Mar 30 2010, 14:44
- - Dreamer   ЦитатаВсе взаимодействие четко описано в документа...   Mar 31 2010, 06:50
- - zltigo   Цитата(Dreamer @ Mar 31 2010, 09:50) Но в...   Mar 31 2010, 09:56


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

 


RSS Текстовая версия Сейчас: 5th August 2025 - 18:30
Рейтинг@Mail.ru


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