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

 
 
> Обновление прошивки STR91X через внешний интерфейс (UART)
Zandy
сообщение Aug 11 2010, 09:57
Сообщение #1


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

Группа: Свой
Сообщений: 153
Регистрация: 5-03-05
Из: Москва
Пользователь №: 3 098



Я столкнулся с проблемой написания программы (бутлодера) для обновления софта на контроллере STR91X. Прошерстив форумы ST и Keil и перебробовав массу вариатов, угробив массу времени, в сухом остатке только нерабочие проекты. Я не детализирую свои вопросы (их очень много), т. к. хотелось бы знать, кто-нибудь делал такие рабочие проекты именно для STR91X?
Очень надеюсь на помощь.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Zandy
сообщение Aug 16 2010, 08:04
Сообщение #2


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

Группа: Свой
Сообщений: 153
Регистрация: 5-03-05
Из: Москва
Пользователь №: 3 098



В .sct строка proc_in_ram.o (+RO) есть. Так что наверное тут все в порядке.

При пошаговом исполнении в дебагере все операторы выполняются. После Jump_To_Application(); попадаем в 91x_vect.s и зависаем здесь:

Код
;*******************************************************************************

PrefetchAbortHandler
        SUB    lr,lr,#4      ; Update the link register.
        SaveContext r0,r3   ; Save the workspace plus the current
                             ; return address lr_abt.

       ldr r0,=Prefetch_Handler
       ldr lr,=Prefetch_Handler_end
       bx r0                ; Branch to Prefetch_Handler.

Prefetch_Handler_end
        RestoreContext r0,r3; Return to the instruction following that...
                             ; ...has generated the prefetch abort exception.

;*******************************************************************************


И что бы это значило?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 16 2010, 08:20
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Zandy @ Aug 16 2010, 11:04) *
В .sct строка proc_in_ram.o (+RO) есть. Так что наверное тут все в порядке.

При пошаговом исполнении в дебагере все операторы выполняются. После Jump_To_Application(); попадаем в 91x_vect.s и зависаем здесь:

Код
;*******************************************************************************

PrefetchAbortHandler
        SUB    lr,lr,#4     ; Update the link register.
        SaveContext r0,r3  ; Save the workspace plus the current
                            ; return address lr_abt.

       ldr r0,=Prefetch_Handler
       ldr lr,=Prefetch_Handler_end
       bx r0            ; Branch to Prefetch_Handler.

Prefetch_Handler_end
        RestoreContext r0,r3; Return to the instruction following that...
                            ; ...has generated the prefetch abort exception.

;*******************************************************************************


И что бы это значило?


Такое маловероятно, в любом случае курсор должен встать на первый адрес входа в программу, а дальше уже засечь с какого места он перешел на адрес PrefetchAbortHandler.

Go to the top of the page
 
+Quote Post



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

 


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


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