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

 
 
11 страниц V  « < 5 6 7 8 9 > »   
Reply to this topicStart new topic
> Вливаюсь в коллектив ARMоводов, жду советов и дележа опытом
Сергей Борщ
сообщение Jul 21 2006, 07:42
Сообщение #91


Гуру
******

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



Цитата(AVR @ Jul 21 2006, 00:17) *
При отладке я шагаю по ассемблерным инструкциям. Можно ли настроить IAR-ARM, чтобы можно было шагать по строчкам исходной программы на C++,

Поставить курсор в окно с исходным текстом на С++.
Цитата(AVR @ Jul 21 2006, 00:17) *
а ещё лучше по брейкпоинтам?.. ohmy.gif
Ставишь брейкпоинт (кажется не более 3 при отладке из флеш, при том что одну отладчик ставит на main если стоит галочка "Run to main" и сколько угодно при отладке из ОЗУ), жмешь Run.

Сообщение отредактировал Сергей Борщ - Jul 21 2006, 07:45


--------------------
На любой вопрос даю любой ответ
"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
zltigo
сообщение Jul 21 2006, 07:53
Сообщение #92


Гуру
******

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



Цитата(Сергей Борщ @ Jul 21 2006, 10:42) *
Ставишь брейкпоинт (кажется не более 3 при отладке из флеш, при том что одну отладчик ставит на main если стоит галочка "Run to main"

Две :-( аппаратно поддерживаются, причем одна занимается в по умолчанию создаваемом проекте на перехват вывода и если не отключть (что-то типа галочки "runtime control..."), то уже не очень-то и потрассируешь с одной точкой.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 21 2006, 16:59
Сообщение #93


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Сложилось впечатление что таймеры продалжают считать, даже если отладчик останавливает процессор. Это так или у меня глюки?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 21 2006, 17:05
Сообщение #94


Гуру
******

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



Цитата(klen @ Jul 21 2006, 19:59) *
Сложилось впечатление что таймеры продалжают считать, даже если отладчик останавливает процессор. Это так или у меня глюки?

Да. В смысле таймеры а не глюки :-)


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 21 2006, 17:53
Сообщение #95


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(zltigo @ Jul 21 2006, 21:05) *
Цитата(klen @ Jul 21 2006, 19:59) *

Сложилось впечатление что таймеры продалжают считать, даже если отладчик останавливает процессор. Это так или у меня глюки?

Да. В смысле таймеры а не глюки :-)

Ну это засада - че трудно чтоли TAP контроллеру через элемент 2И-НЕ запереть clk всех шин, в том числе и переферийной от которой тактируются счетчики таймеров?
Ну да ладна, буду считать что так в какомто стандарте прописано. cranky.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 21 2006, 18:17
Сообщение #96


Гуру
******

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



Цитата(klen @ Jul 21 2006, 20:53) *
Ну это засада - че трудно чтоли TAP контроллеру....

Нормальное и естественное поведение для периферии.
Ну что из того, что какое-то из ПЕРЕФЕРИЙНЫХ устройств
случайно оказалось внутри корпуса контроллера? А если их реально 36 штук и все они внешние. Что "вешатся" по причине того, что при останове контроллера они в трепете не останавливаются? Более того, может оказаться желательным и именно неостанавливающаяся периферия.
Общий случай отладки с периферийным устройством решения останова оного не имеет, ну и примите это как даденность.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 21 2006, 18:52
Сообщение #97


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Сергей Борщ @ Jul 21 2006, 11:42) *
Цитата(AVR @ Jul 21 2006, 00:17) *

При отладке я шагаю по ассемблерным инструкциям. Можно ли настроить IAR-ARM, чтобы можно было шагать по строчкам исходной программы на C++,

Поставить курсор в окно с исходным текстом на С++.

Да, это конечно так, при отладке симулятором у меня всё шагает по коду на
C++, но при запуске отладки "в железе" при начале отладки у меня вылетает ошибка что main не найдено и запускает отладку по ASMу...


--------------------
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 21 2006, 20:07
Сообщение #98


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



В книге написано что в miniARM, LPC2101/2/3 в модуле MAM есть счетчики сбора статистики обращения к МАМ, к МАМ -> FLAS и тп, которые предназначены для мониторинга эфективности работы MAM и подсчета числа исполненых инструкций. Облазил хидеры, нигде немогу найти описания и адреса этих регистров. Где они находятся
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 21 2006, 22:55
Сообщение #99


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Рассматривая пример программы для sam7s64 я наткнулся на следующее:
Цитата
//Setting PLL and divider:
//- div by 5 Fin = 3,6864 =(18,432 / 5)
//- Mul 25+1: Fout = 95,8464 =(3,6864 *26)
//for 96 MHz the erroe is 0.16%
//Field out NOT USED = 0
//PLLCOUNT pll startup time estimate at : 0.844 ms
//PLLCOUNT 28 = 0.000844 /(1/32768)
pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & 3) | (AT91C_CKGR_PLLCOUNT & (28<<8)) | (AT91C_CKGR_MUL & (24<<16)));

В комментарии написано, что при частоте кварца в 18,432 МГц чтобы задать частоту PLL в 96 МГц нужно установить предделитель на 5 и множитель на 26. Однако в строчке кода задается ((18,432 / 3) * 24) = 147,456 Мгц. У меня плохо с математикой или я что-то не учел?... w00t.gif


--------------------
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jul 22 2006, 14:27
Сообщение #100


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Плохо с математикой, вернее с булевой алгеброй, 3 и 24<<16 это маски, а не множители. smile.gif Хотя код тоже не самый удачный.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 22 2006, 15:28
Сообщение #101


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(SpiritDance @ Jul 22 2006, 18:27) *
Плохо с математикой, вернее с булевой алгеброй, 3 и 24<<16 это маски, а не множители. smile.gif Хотя код тоже не самый удачный.

Неа smile.gif Как раз 3 и 24<<16 получается значения, а AT91C_CKGR_DIV и прочие это маски (что подтверждает дебаггер). Вероятно просто ошибка в примере...


--------------------
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jul 22 2006, 19:18
Сообщение #102


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



А ну да. Это у меня чего-то последнее время плохо башка варит, внимательности маловато. Блин, это надо же маски вперед значения ставить. Не удивительно что код с ошибками.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 23 2006, 09:53
Сообщение #103


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



В качестве эксперемента посмотречть че будет если выставил для ФАПЧ множитель 7 и делитель 1. Получается частота тактирования ядра и переферии 103.219Мгц при кварце 14.7456МГц. При работе из флеша сразу ессесено возникает Page Abort Exeption, а вот при работе из паямяти все чудно рабоет, без збоевэ, в качестве теста зациклил переключение вывода порта - осцилограф мерит частотц 29,54Мгц

кусок кода
Код
#define FastIOMeandr(fiomask) \
{\
    int fiomask = _BV(4);\
    int fiopin_addr = FIOPIN_ADDR;\
  __asm__ ("\
        mov  r0 , #0x01;    /*установка SCS=1*/ \
        str  r0 , %0   ;    \
        ldr  r0 , %3   ;    /*установка FIODIR = ~fiomask*/\
    str  r0 , %1   ;    \
        ldr  r0 , %3   ;    /*установка FIOMASK = fiomask */\
    mvn  r0 , r0   ;    \
    str  r0 , %2   ;    \
        ldr  r1 , %4   ;    /*загрузка адреса FIOPIN*/\
    ldr  r0 , %3   ;    \
    mov  r2 , #0x0 ;    \
     Lab:                    \
        str  r0 , [r1]; str  r2 , [r1]; str  r0 , [r1];str  r2 , [r1]; str  r0 , [r1]; str  r2 , [r1];    \
        str  r0 , [r1]; str  r2 , [r1]; str  r0 , [r1];str  r2 , [r1]; str  r0 , [r1]; str  r2 , [r1];    \
        ..... очень много раз эти пары строк....
        str  r0 , [r1]; str  r2 , [r1]; str  r0 , [r1];str  r2 , [r1]; str  r0 , [r1]; str  r2 , [r1];    \
        str  r0 , [r1]; str  r2 , [r1]; str  r0 , [r1];str  r2 , [r1]; str  r0 , [r1]; str  r2 , [r1];    \
        b Lab;             "\
        :                    \
        : "m"(SCS) , "m"(FIODIR) , "m"(FIOMASK) , "m"(fiomask) , "m"(fiopin_addr)\
    : "r0" , "r1"  , "r2"\
        ); \


Чето цифры не сходятся, если предположить что тратится по одному такту на инструкцию, частота переключения должна быть ~51Мгц (APBDIV выставлен равным 1-без деления частоты AHB), прчем 103.219 даже близко нацело не делится на 29,54.
Почему так?
Эксперементы с разгоном могут привести к неприятностям?
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 23 2006, 22:56
Сообщение #104


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



У меня возникла проблема с IAR-ARM 4.3xa, при запуске выдает такую ошибку [attachment=6395:attachment].
Скачал новую версию 4.40a, установил - ошибка та же. Как это можно исправить?
На всякий случай скачал CW 1.6, нет ли у кого-нибудь клизмы для него? Пришлите, пожалуйста, если не сложно dx9c@mail.ru


--------------------
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 24 2006, 05:46
Сообщение #105


Гуру
******

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



Цитата(AVR @ Jul 24 2006, 01:56) *
У меня возникла проблема

Это не оно?
http://supp.iar.com/Support/?note=70964&am...m=search+result
Другиx проблен не было.


Цитата(klen @ Jul 23 2006, 12:53) *
Чето цифры не сходятся,

Никто обещал, что обращение к периферийной шине будет за один такт.


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

11 страниц V  « < 5 6 7 8 9 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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