Сергей Борщ 143 21 июля, 2006 Опубликовано 21 июля, 2006 (изменено) · Жалоба При отладке я шагаю по ассемблерным инструкциям. Можно ли настроить IAR-ARM, чтобы можно было шагать по строчкам исходной программы на C++, Поставить курсор в окно с исходным текстом на С++. а ещё лучше по брейкпоинтам?.. :ohmy:Ставишь брейкпоинт (кажется не более 3 при отладке из флеш, при том что одну отладчик ставит на main если стоит галочка "Run to main" и сколько угодно при отладке из ОЗУ), жмешь Run. Изменено 21 июля, 2006 пользователем Сергей Борщ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 21 июля, 2006 Опубликовано 21 июля, 2006 · Жалоба Ставишь брейкпоинт (кажется не более 3 при отладке из флеш, при том что одну отладчик ставит на main если стоит галочка "Run to main" Две :-( аппаратно поддерживаются, причем одна занимается в по умолчанию создаваемом проекте на перехват вывода и если не отключть (что-то типа галочки "runtime control..."), то уже не очень-то и потрассируешь с одной точкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 21 июля, 2006 Опубликовано 21 июля, 2006 · Жалоба Сложилось впечатление что таймеры продалжают считать, даже если отладчик останавливает процессор. Это так или у меня глюки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 21 июля, 2006 Опубликовано 21 июля, 2006 · Жалоба Сложилось впечатление что таймеры продалжают считать, даже если отладчик останавливает процессор. Это так или у меня глюки? Да. В смысле таймеры а не глюки :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 21 июля, 2006 Опубликовано 21 июля, 2006 · Жалоба Сложилось впечатление что таймеры продалжают считать, даже если отладчик останавливает процессор. Это так или у меня глюки? Да. В смысле таймеры а не глюки :-) Ну это засада - че трудно чтоли TAP контроллеру через элемент 2И-НЕ запереть clk всех шин, в том числе и переферийной от которой тактируются счетчики таймеров? Ну да ладна, буду считать что так в какомто стандарте прописано. :cranky: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 21 июля, 2006 Опубликовано 21 июля, 2006 · Жалоба Ну это засада - че трудно чтоли TAP контроллеру.... Нормальное и естественное поведение для периферии. Ну что из того, что какое-то из ПЕРЕФЕРИЙНЫХ устройств случайно оказалось внутри корпуса контроллера? А если их реально 36 штук и все они внешние. Что "вешатся" по причине того, что при останове контроллера они в трепете не останавливаются? Более того, может оказаться желательным и именно неостанавливающаяся периферия. Общий случай отладки с периферийным устройством решения останова оного не имеет, ну и примите это как даденность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 21 июля, 2006 Опубликовано 21 июля, 2006 · Жалоба При отладке я шагаю по ассемблерным инструкциям. Можно ли настроить IAR-ARM, чтобы можно было шагать по строчкам исходной программы на C++, Поставить курсор в окно с исходным текстом на С++. Да, это конечно так, при отладке симулятором у меня всё шагает по коду на C++, но при запуске отладки "в железе" при начале отладки у меня вылетает ошибка что main не найдено и запускает отладку по ASMу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 21 июля, 2006 Опубликовано 21 июля, 2006 · Жалоба В книге написано что в miniARM, LPC2101/2/3 в модуле MAM есть счетчики сбора статистики обращения к МАМ, к МАМ -> FLAS и тп, которые предназначены для мониторинга эфективности работы MAM и подсчета числа исполненых инструкций. Облазил хидеры, нигде немогу найти описания и адреса этих регистров. Где они находятся Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 21 июля, 2006 Опубликовано 21 июля, 2006 · Жалоба Рассматривая пример программы для 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 22 июля, 2006 Опубликовано 22 июля, 2006 · Жалоба Плохо с математикой, вернее с булевой алгеброй, 3 и 24<<16 это маски, а не множители. :) Хотя код тоже не самый удачный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 22 июля, 2006 Опубликовано 22 июля, 2006 · Жалоба Плохо с математикой, вернее с булевой алгеброй, 3 и 24<<16 это маски, а не множители. :) Хотя код тоже не самый удачный. Неа :) Как раз 3 и 24<<16 получается значения, а AT91C_CKGR_DIV и прочие это маски (что подтверждает дебаггер). Вероятно просто ошибка в примере... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 22 июля, 2006 Опубликовано 22 июля, 2006 · Жалоба А ну да. Это у меня чего-то последнее время плохо башка варит, внимательности маловато. Блин, это надо же маски вперед значения ставить. Не удивительно что код с ошибками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 23 июля, 2006 Опубликовано 23 июля, 2006 · Жалоба В качестве эксперемента посмотречть че будет если выставил для ФАПЧ множитель 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. Почему так? Эксперементы с разгоном могут привести к неприятностям? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 23 июля, 2006 Опубликовано 23 июля, 2006 · Жалоба У меня возникла проблема с IAR-ARM 4.3xa, при запуске выдает такую ошибку . Скачал новую версию 4.40a, установил - ошибка та же. Как это можно исправить? На всякий случай скачал CW 1.6, нет ли у кого-нибудь клизмы для него? Пришлите, пожалуйста, если не сложно [email protected] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 24 июля, 2006 Опубликовано 24 июля, 2006 · Жалоба У меня возникла проблема Это не оно? http://supp.iar.com/Support/?note=70964&am...m=search+result Другиx проблен не было. Чето цифры не сходятся, Никто обещал, что обращение к периферийной шине будет за один такт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться