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

 
 
> Cannot stop Arm device !
Oleg_IT
сообщение Oct 1 2013, 09:01
Сообщение #1


Знающий
****

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



Keil V4.20.03.0, JTAG адаптер JetLinck8, драйвер JLinkARM_V476b, лицензии установил.
Отладочная плата SK-MLPC2478. В Options… Keil-а установлено J-LINK/J-TRACE.
При любой попытке обратится к процессору, появляется ошибка, картинка в приложении. Изменение скорости «JTAG Speed» не помогает. Keil в «Build Output» пишет

Цитата
Load "E:\\ARM\\Test_2478\\Out\\Test_2478.AXF"
VTarget = 3.274V
Info: TotalIRLen = 4, IRPrint = 0x01
Info: Using DBGRQ to halt CPU
Info: Resetting TRST in order to halt CPU
***JLink Error: Unable to halt CPU core


Программой JLink.exe процессор не останавливается, «Reset target (RESET)» проходит.
Как преодолеть?

Прикрепленные изображения
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Oleg_IT
сообщение Oct 2 2013, 05:09
Сообщение #2


Знающий
****

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



В моём случае "виноват" сам код, поставил задержку при старте и 500 кГц в JTAG-е и всё заработало.

Вопрос теперь в другом, не ясно откуда "астрал" берётся. Мучаю код с EMAC, раз повиснет на MAC1 = 0;, другой раз на чтении регистра PHY.
Go to the top of the page
 
+Quote Post
Lotor
сообщение Oct 2 2013, 07:26
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(Oleg_IT @ Oct 2 2013, 09:09) *
раз повиснет на MAC1 = 0;, другой раз на чтении регистра PHY.

Что Вы имеете ввиду под "повисло"? Теперь с помощью jtag можно определить куда именно попадаете.

Если, например, в обработчик исключения Data Abort (DAbt_Handler), то надо анализировать регистр R14 (вычесть 8 и получить адрес инструкции, которая вызвала исключение).


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 2 2013, 08:22
Сообщение #4


Знающий
****

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



Цитата(Lotor @ Oct 2 2013, 11:26) *
Что Вы имеете ввиду под "повисло"? Теперь с помощью jtag можно определить куда именно попадаете.

Если, например, в обработчик исключения Data Abort (DAbt_Handler), то надо анализировать регистр R14 (вычесть 8 и получить адрес инструкции, которая вызвала исключение).

Попадает программа в
Код
Vectors         LDR     PC, Reset_Addr
Там и остаётся

Цитата(Сергей Борщ @ Oct 2 2013, 10:01) *
А вы перед переключением на высокую частоту выставляете такты задержки флеша? Без этого из флеша может читаться и исполняться что угодно. Пока есть команды в буфере предвыборки - все работает. Как пошли считанные после разгона - все: чудеса, исключения и т.д.

Посмотрю, но я эти настройки вообще не трогаю, как автоматом генерится так и работает, в других программах на той же макетке проблем нет, графика работает, USB.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 2 2013, 15:54
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Oleg_IT @ Oct 2 2013, 10:22) *
Попадает программа в
CODE
Vectors         LDR     PC, Reset_Addr
Там и остаётся
Вы смотрите в окне исходника или в окне дизассемблера? Уж по этой-то команде он должен уйти на Reset_Addr. А если не уходит - возможно произошел Remap и по этим адресам находится какой-то мусор, который процессор выполнить не может, а отладчик в окне исходника тупо показывает соответствующую этому адресу строку.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 3 2013, 04:59
Сообщение #6


Знающий
****

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



Скорей всего отладчик показывает ерунду, после выполнения присвоения MAC1 = 0; в окне Command начинает выводиться ошибка
Цитата
***JLink Error: CPU is not halted

А после останова отладчика иногда Keil вообще виснет, но чаще выходит на строку
Код
Vectors         LDR     PC, Reset_Addr

Затем или ни куда больше не идёт или входит в Reset_Handler и остаётся в цикле, см. рисунок, R3 = 0.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
toweroff
сообщение Oct 3 2013, 08:07
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Oleg_IT @ Oct 3 2013, 08:59) *
Скорей всего отладчик показывает ерунду, после выполнения присвоения MAC1 = 0; в окне Command начинает выводиться ошибка

А после останова отладчика иногда Keil вообще виснет, но чаще выходит на строку
Код
Vectors         LDR     PC, Reset_Addr

Затем или ни куда больше не идёт или входит в Reset_Handler и остаётся в цикле, см. рисунок, R3 = 0.

ну нифига себе reset_handler wacko.gif
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 3 2013, 08:39
Сообщение #8


Знающий
****

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



Цитата(toweroff @ Oct 3 2013, 12:07) *
ну нифига себе reset_handler wacko.gif

Мжно подробнее, а то не пойму впечатлениеsm.gif

Я думаю отладчик при крахе уже не имеет доступа к ARM-у и делает что-то своё.

Закрыл я доработку по рекомендации errata.lpc2478_1.1.pdf виснуть на MAC1 = 0;, программа всё равно не работает. Нужно ли это изменение или нет???
Go to the top of the page
 
+Quote Post
toweroff
сообщение Oct 3 2013, 09:47
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Oleg_IT @ Oct 3 2013, 12:39) *
Мжно подробнее, а то не пойму впечатление sm.gif

ну потому что Reset_Handler и PLL_Loop - это разные вещи sm.gif

общее впечатление - проверить настройки PLL и Wait_States для Flash, это уже выше упоминали




И еще. Лично натыкался на глючное поведение отладчика, пока не распаял все требуемые резисторы на JTAG
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 3 2013, 10:48
Сообщение #10


Знающий
****

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



Цитата(toweroff @ Oct 3 2013, 13:47) *
ну потому что Reset_Handler и PLL_Loop - это разные вещи sm.gif

Цитата(KRS @ Oct 3 2013, 14:36) *
А вы уверены что инструкция должна быть
LDR PC, Reset_Addr
а не
LDR PC, =Reset_Addr

Ну не знаю, я этот код не пмшу, он автоматически при создании проекта генерится.
Начало кода
CODE
EXPORT Reset_Handler
Reset_Handler


; Clock Setup ------------------------------------------------------------------

IF (:LNOT:(:DEF:NO_CLOCK_SETUP)):LAND:(CLOCK_SETUP != 0)
LDR R0, =SCB_BASE
MOV R1, #0xAA
MOV R2, #0x55

; Configure and Enable PLL
LDR R3, =SCS_Val ; Enable main oscillator
STR R3, [R0, #SCS_OFS]

IF (SCS_Val:AND:OSCEN) != 0
OSC_Loop LDR R3, [R0, #SCS_OFS] ; Wait for main osc stabilize
ANDS R3, R3, #OSCSTAT
BEQ OSC_Loop
ENDIF

LDR R3, =CLKSRCSEL_Val ; Select PLL source clock
STR R3, [R0, #CLKSRCSEL_OFS]
LDR R3, =PLLCFG_Val
STR R3, [R0, #PLLCFG_OFS]
STR R1, [R0, #PLLFEED_OFS]
STR R2, [R0, #PLLFEED_OFS]
MOV R3, #PLLCON_PLLE
STR R3, [R0, #PLLCON_OFS]
STR R1, [R0, #PLLFEED_OFS]
STR R2, [R0, #PLLFEED_OFS]

IF (CLKSRCSEL_Val:AND:3) != 2
; Wait until PLL Locked (if source is not RTC oscillator)
PLL_Loop LDR R3, [R0, #PLLSTAT_OFS]
ANDS R3, R3, #PLLSTAT_PLOCK
BEQ PLL_Loop
ELSE
; Wait at least 200 cycles (if source is RTC oscillator)
MOV R3, #(200/4)
PLL_Loop SUBS R3, R3, #1
BNE PLL_Loop
ENDIF

M_N_Lock LDR R3, [R0, #PLLSTAT_OFS]
LDR R4, =(PLLSTAT_M:OR:PLLSTAT_N)
AND R3, R3, R4
LDR R4, =PLLCFG_Val
EORS R3, R3, R4
BNE M_N_Lock

"PLL и Wait_States для Flash" проверю.

Сообщение отредактировал IgorKossak - Oct 3 2013, 18:02
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
KRS
сообщение Oct 3 2013, 12:08
Сообщение #11


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Oleg_IT @ Oct 3 2013, 14:48) *
Ну не знаю, я этот код не пмшу, он автоматически при создании проекта генерится.


А Reset_Addr где?

И вообще нафига на асме инициализацию PLL делать? Это все на С прекрасно пишется...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Oleg_IT   Cannot stop Arm device !   Oct 1 2013, 09:01
- - Lotor   С настройкой pll мк до этого не игрались? Цитата(O...   Oct 1 2013, 09:50
- - Oleg_IT   pll не трогал. В конфигураторе адаптера поставил U...   Oct 1 2013, 10:30
- - Oleg_IT   Через Flash Magic работает, но мне отладчик нужен....   Oct 1 2013, 12:09
- - Lotor   Уверены, что Ваша заливаемая программа не уходит в...   Oct 1 2013, 13:45
|- - Mik174   Неоднократно видел такое сообщение при банальном н...   Oct 1 2013, 16:24
|- - Oleg_IT   Цитата(Lotor @ Oct 1 2013, 17:45) Уверены...   Oct 1 2013, 16:33
|- - Lotor   Цитата(Oleg_IT @ Oct 1 2013, 20:30) Стран...   Oct 1 2013, 16:36
- - A. Fig Lee   Может пины переопределены и ЖиТаг законнектится не...   Oct 1 2013, 16:33
|- - Oleg_IT   Цитата(A. Fig Lee @ Oct 1 2013, 20:33) Мо...   Oct 1 2013, 16:44
|- - A. Fig Lee   Цитата(Oleg_IT @ Oct 1 2013, 12:44) Нет, ...   Oct 1 2013, 18:09
|- - toweroff   Цитата(A. Fig Lee @ Oct 1 2013, 22:09) Зн...   Oct 1 2013, 21:20
|- - Сергей Борщ   QUOTE (Oleg_IT @ Oct 2 2013, 07:09) раз п...   Oct 2 2013, 06:01
|- - toweroff   Цитата(Oleg_IT @ Oct 2 2013, 12:22) Попад...   Oct 2 2013, 11:30
|- - Сергей Борщ   QUOTE (KRS @ Oct 3 2013, 14:08) Это все н...   Oct 3 2013, 12:25
- - сарматъ   может мне у себя тоже увеличить задержку флеш и ви...   Oct 2 2013, 06:33
|- - Сергей Борщ   QUOTE (сарматъ @ Oct 2 2013, 08:33) может...   Oct 2 2013, 07:11
- - Oleg_IT   На рисунке настройки PLL в моей программе   Oct 3 2013, 06:03
- - KRS   А вы уверены что инструкция должна быть LDR P...   Oct 3 2013, 10:36
- - Lotor   Цитата(KRS @ Oct 3 2013, 16:08) А Reset_A...   Oct 3 2013, 12:37
- - KRS   У меня для LPC2478 первые команды Код//-----------...   Oct 3 2013, 13:18
|- - toweroff   Цитата(KRS @ Oct 3 2013, 17:18) правда у ...   Oct 3 2013, 16:08
- - Oleg_IT   Победил я эту проблему. Аппаратная часть тут не пр...   Oct 3 2013, 18:02
- - DmitryM   Цитата(Oleg_IT @ Oct 3 2013, 22:02) А где...   Oct 3 2013, 18:27


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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 20:46
Рейтинг@Mail.ru


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