|
|
  |
ARM и KEIL отладка проекта, Debugging problem |
|
|
|
Jun 10 2009, 19:15
|

Группа: Новичок
Сообщений: 9
Регистрация: 20-11-05
Пользователь №: 11 134

|
Всем доброго времени суток. Начал заниматься проектированием устройств на ARM процессорах, а точнее LPC2478. Использую KEIL, отладочную плату от Embedded Artists и J-link UAB->JTAG программатор от IAR . Проблема в том, что после загрузки проекта для отладки (Debug) жёлтая стрелка оказывается не в окне с исходным кодом  , а в окне дизассемблера. В чём может быть проблема и как её реально исправить?
|
|
|
|
|
Jun 11 2009, 05:05
|

Группа: Новичок
Сообщений: 9
Регистрация: 20-11-05
Пользователь №: 11 134

|
Цитата(KRS @ Jun 10 2009, 23:00)  Это значит для этого участка кода нет исходника, скорее всего это библиотечная функция ( может быть стартап стандартный...) Или вы не включили отладочную информацию Проект был создан самый что ни есть стандартный - main.c файл с одноимённой функцией в которой реализован вечный цикл. В файле Startup.s ничего не поменяно. Что там нужно изменить ? И какую отладочную информацию надо включить?
|
|
|
|
|
Jun 11 2009, 05:34
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 5-07-04
Из: Обнинск
Пользователь №: 261

|
Дмитрий, Вы студент? Почитайте немного матчасть.  До того как процессор начнет выполнять написанный Вами код он еще много чего другого успевает сделать. Что конкретно он делает можно понять из фоново подключаемых к проекту файлов startup.asm и init.asm (имена и расширения могут отличаться для различных видов компиляторов и процессоров). Если Вы специально не подключаете к проекту свои версии этих файлов, то компилятор, в частности от KEIL'а, цепляет их из библиотеки, но если Вам не подходит их стандартный алгоритм, то включив в проект файл(ы) с таким именем, будут автоматически компилироваться Ваша версия.
|
|
|
|
|
Jun 11 2009, 05:59
|

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

|
Чисто исходя из человеческой психологии и как опытный телепат могу предположить, что человек действительно ничего в стандартном примере не менял кроме содержания функции main. А в стандартных примерах все уже схвачено, и брекпоинт на main стоит, и отладочная информация включена, и либы в порядке и ретаргетинг сделан. Единственно к чему бессознательно тянутся ручки у свежих разработчиков это установить высший уровень оптимизации. И еще в пару местах подправить как например оптимизировать линковку. И тогда отладчик даже функцию main может не найти. Цитата(richie @ Jun 11 2009, 08:34)  Дмитрий, Вы студент? Почитайте немного матчасть.  До того как процессор начнет выполнять написанный Вами код он еще много чего другого успевает сделать. Что конкретно он делает можно понять из фоново подключаемых к проекту файлов startup.asm и init.asm (имена и расширения могут отличаться для различных видов компиляторов и процессоров). Если Вы специально не подключаете к проекту свои версии этих файлов, то компилятор, в частности от KEIL'а, цепляет их из библиотеки, но если Вам не подходит их стандартный алгоритм, то включив в проект файл(ы) с таким именем, будут автоматически компилироваться Ваша версия.
|
|
|
|
|
Jun 11 2009, 06:46
|
Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 7-12-06
Из: Киев
Пользователь №: 23 248

|
Цитата(AlexandrY @ Jun 11 2009, 08:59)  Чисто исходя из человеческой психологии и как опытный телепат могу предположить, что человек действительно ничего в стандартном примере не менял кроме содержания функции main. А в стандартных примерах все уже схвачено, и брекпоинт на main стоит, и отладочная информация включена, и либы в порядке и ретаргетинг сделан. Единственно к чему бессознательно тянутся ручки у свежих разработчиков это установить высший уровень оптимизации. И еще в пару местах подправить как например оптимизировать линковку.
И тогда отладчик даже функцию main может не найти. Я конечно извиняюсь, но не могу сдержаться... Не думал что здесь форум телепатов и древних "не студентов" Ребята... Еще раз перечитайте топик и подумайте на сколько предметно Вы отвечаете Мне кажется что не стоит так умничать. КПД сделанного Вами 0% Ну и человеку в следующий раз не захочется заходить на этот форум
|
|
|
|
|
Jun 11 2009, 06:57
|

Группа: Новичок
Сообщений: 9
Регистрация: 20-11-05
Пользователь №: 11 134

|
Цитата(SergeyDDD @ Jun 11 2009, 08:32)  В настройках проекта, во вкладке Debug надо установить птичку "Run to main()"  А вы думаете не стоит? Как мне кажется, если создать проект и сразу указать какой процессор, потом в этот проект вставить файл main.c содержание которого int main() { while(1); return 0; } то всяко должно работать. Создаётся такое впечатление, что просто нужно поставить какую-то "галочку", чтобы стрелка во время Debug находилась не в Disassembler, а в Source Window.
|
|
|
|
|
Jun 11 2009, 07:05
|
Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 7-12-06
Из: Киев
Пользователь №: 23 248

|
Цитата(Dmitrij @ Jun 11 2009, 09:57)   А вы думаете не стоит? Как мне кажется, если создать проект и сразу указать какой процессор, потом в этот проект вставить файл main.c содержание которого int main() { while(1); return 0; } то всяко должно работать. Создаётся такое впечатление, что просто нужно поставить какую-то "галочку", чтобы стрелка во время Debug находилась не в Disassembler, а в Source Window. В окне ассемблера пошагово идет выполнение? Доходит ли выполнение до main?
|
|
|
|
|
Jun 11 2009, 07:07
|

Группа: Новичок
Сообщений: 9
Регистрация: 20-11-05
Пользователь №: 11 134

|
Цитата(SergeyDDD @ Jun 11 2009, 10:05)  В окне ассемблера пошагово идет выполнение? Доходит ли выполнение до main? Да, там всё ходит.
|
|
|
|
|
Jun 11 2009, 17:10
|

Группа: Новичок
Сообщений: 9
Регистрация: 20-11-05
Пользователь №: 11 134

|
Цитата(sonycman @ Jun 11 2009, 16:59)  Ну а что мешает выбрать окно с исходником и идти пошагово уже в нём? Так в том-то и дело, что в этом окне нет стрелки указывающей на строку с кодом. А при остановке появились соответсвующие ошибки. "Всем спасибо"  и СПАСИБО отдельное SergeyDDD за понимание Всё оказалось давольнотаки просто. Нужно было подстроить параметр JTAG Speed до 30 кГц. Почему-то в адаптивном режиме рабтать отказалось. Kак результат синяя стрелка в Disassembler.
Сообщение отредактировал Dmitrij - Jun 11 2009, 16:25
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 14 2009, 04:32
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Dmitrij @ Jun 11 2009, 20:10)  Почему-то в адаптивном режиме рабтать отказалось. Скорее всего потому, что не разведен сигнал RTCK или на JTAG адаптере или на Вашей плате. Или у проца который Вы используете, его просто нет. Чтобы развеять сомнения, выберите JLINK/JTRACE вместо RDI в адаптерах и попробуйте adaptive clocking еще разок.. Не заработает - точно проблема с RTCK. Цитата Нужно было подстроить параметр JTAG Speed до 30 кГц. Вообще-то на такой скорости работать просто нереально... Т.к. будет все ДИКО ТОРМОЗИТЬ. Для комфортной работы нужно минимум 1Mhz.
|
|
|
|
|
Jun 19 2009, 12:00
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 5-07-04
Из: Обнинск
Пользователь №: 261

|
Цитата(SergeyDDD @ Jun 11 2009, 10:46)  Я конечно извиняюсь, но не могу сдержаться... Не думал что здесь форум телепатов и древних "не студентов" Ребята... Еще раз перечитайте топик и подумайте на сколько предметно Вы отвечаете Мне кажется что не стоит так умничать. КПД сделанного Вами 0% Ну и человеку в следующий раз не захочется заходить на этот форум Пордон, если кого невзначай обидел. Ответы давались согласно формулировки поставленного вопроса. Рекомендую почитать эту статью: http://electronix.ru/index.php?ind=reviews...view&iden=3
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|