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

 
 
 
Reply to this topicStart new topic
> Отладка ARM (ADuC7060) в KEIL.
Anton_1000
сообщение Jan 20 2011, 10:56
Сообщение #1


Участник
*

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



Пытаюсь отлаживать этот АРМ в среде КЕЙЛ отладчиком JetLink5-ым. После входа в дебуг-режим в окошке Дизассемблера жёлтая стрелка устанавливается на 0х000000 адресе, далее переход на адрес 0х0001ВА и так кручусь в цикле по похожим адресам. Программа выполняется, но я не вижу стрелки в С-коде. В описании на МК написано, что прога пишется по адресу 0х80000. Подскажите где я туплю. Как увидеть стрелку в С-коде? И прав ли дебуггер, что крутится в нулевых адресах? Машинный код по нулевым адресам совпадает с кодом по адресам 0х80000.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 20 2011, 11:30
Сообщение #2


Гуру
******

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



QUOTE (Anton_1000 @ Jan 20 2011, 12:56) *
В описании на МК написано, что прога пишется по адресу 0х80000. Подскажите где я туплю. Как увидеть стрелку в С-коде? И прав ли дебуггер, что крутится в нулевых адресах? Машинный код по нулевым адресам совпадает с кодом по адресам 0х80000.
Почитайте про remap. Процессор начинает выполнение с нулевого адреса всегда. Флеш находится по адресу 0х80000 и отражена в нулевые адреса.
Насчет стрелочки - проверьте, включена ли генерация отладочной информации.


--------------------
На любой вопрос даю любой ответ
"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
Anton_1000
сообщение Jan 20 2011, 11:35
Сообщение #3


Участник
*

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



Установил в окошке Дизассемблера РС коунтер на 0х80000 и появилась стрелка в С-коде. Но после повторного входа в отладку программный счётчик снова в 0х0000. Как стартовать в дизассемблере с кода 0х80000?

Цитата(Сергей Борщ @ Jan 20 2011, 15:30) *
Почитайте про remap. Процессор начинает выполнение с нулевого адреса всегда. Флеш находится по адресу 0х80000 и отражена в нулевые адреса.
Насчет стрелочки - проверьте, включена ли генерация отладочной информации.

А где посмотреть?

Получается, что С-код расположен по адресам 0х80000, а программа выполняется по адресам 0х00000.

Сообщение отредактировал Anton_1000 - Jan 20 2011, 11:44
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 20 2011, 11:58
Сообщение #4


Гуру
******

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



QUOTE (Anton_1000 @ Jan 20 2011, 13:35) *
А где посмотреть?
В даташите, наверное. Поиск по слову "remap" найдет нужное место.
Или вы про отладочную информацию? Тогда не знаю - не работаю с кейлом. Поищите в настроках что-то вроде generate debug information, debug symbols.
И тщательнее подходите к цитированию.
QUOTE (Anton_1000 @ Jan 20 2011, 13:35) *
Получается, что С-код расположен по адресам 0х80000, а программа выполняется по адресам 0х00000.
Значит она слинкована не совсем правильно. Но тут я уже не помощник.


--------------------
На любой вопрос даю любой ответ
"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
Anton_1000
сообщение Jan 20 2011, 13:27
Сообщение #5


Участник
*

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



Может стартап код виноват?

О чудо. Помогла "галочка" во вкладке Target->Code Generatin-> Use MicroLIB
На что она влияет?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 20 2011, 14:11
Сообщение #6


Гуру
******

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



QUOTE (Anton_1000 @ Jan 20 2011, 15:27) *
На что она влияет?
А вы не пытались найти ответ в хелпе к Кейлу?


--------------------
На любой вопрос даю любой ответ
"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
Anton_1000
сообщение Jan 20 2011, 15:14
Сообщение #7


Участник
*

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



Похоже эта "галка" влиет только на размер кода:

"Use MicroLIB to change the C run-time library set for smallest code application code. MicroLIB is not fully ANSI compatible but sufficient for most small embedded applications."

Даз шиз фантастиш.
Go to the top of the page
 
+Quote Post
Anton_1000
сообщение Jan 20 2011, 17:50
Сообщение #8


Участник
*

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



Кто-то пробовал примеры от AD. Не работают прерывания при работе с отладчиком JTAG. В чём заморочка?
Go to the top of the page
 
+Quote Post
gmp
сообщение Jan 21 2011, 05:07
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Посмтрите эту тему, может чем-то поможет.

Ссылка

Сообщение отредактировал gmp - Jan 21 2011, 05:16
Go to the top of the page
 
+Quote Post
Anton_1000
сообщение Jan 21 2011, 09:41
Сообщение #10


Участник
*

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



Похоже всё дело было в скорости работы J-LINK 8000 кГц наверно было много для МК. Поставил 1000 заработало...
Go to the top of the page
 
+Quote Post

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

 


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


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