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

 
 
9 страниц V  « < 5 6 7 8 9 >  
Reply to this topicStart new topic
> Дэбаг непрерывного процесса?, IAR 4.41A, AT91SAM7S256
singlskv
сообщение Jun 17 2009, 20:34
Сообщение #91


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Jun 18 2009, 00:17) *
Угу, не видете разницы, между отладкой программ и отладкой ядер процессоров? Тяжело,небось, стало без чего-нибуть хотя-бы типа древнего ETM (http://www.segger.com/jtrace_general.html) роутинг отлаживать smile.gif. А время последовательных, причем дейсвительно изначально многофункциональных интерфейсов наступило. C унификацией не очень sad.gif, на конкретных производителей западать пока не очень хочется, посему пока на вечно молодом UART.
ну Вы уже как нить определитесь куда меня отнести... laughing.gif
то что мне хватает виглера и просто брейкпоинтов не значит что я не знаю как можно пользовать нексус...
разговор то о том что без брейкпоинтов иногда бывает очень грустно...
Go to the top of the page
 
+Quote Post
SM
сообщение Jun 17 2009, 20:52
Сообщение #92


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(zltigo @ Jun 18 2009, 00:33) *
Не поедставляю, зачем трассировка в реалтайме для "отладки софта".

Трассировка в самом реалтайме, разумеется, не нужна. Она нужна, если по результатам анализа данных, поступивших в реалтайме, остановили процессор, и хотят узнать, где он был "тогда". Ну и в общем смысле, посмотреть историю за некоторое время до возникновения ошибочной ситуации, приведшей к останову, так как останов может случиться далеко не в том месте, где произошла ошибка. А к отладке ядер оно отношения не имеет никакого. Да и nexus, собственно, не определяет физические провода, он разрешает и JTAG, и другие порты, думаю, и против чего-нить быстрого сериального, например RapidIO-линка smile.gif - всего два провода, а 3 Гбит/с, иметь не будет...
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 18 2009, 01:07
Сообщение #93


кекс
******

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



Цитата(SM @ Jun 17 2009, 21:38) *
RDI упоминали, а где-бы стандартиком разжиться, не знаете? Что-то не нагугливается... Есть идейки сделать RDI-либу для XDS.

Доки на RDI только под NDA идут (в бумаге).. закрытый он.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 18 2009, 06:05
Сообщение #94


Ally
******

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



Вот и расказали бы о своей конкретной грусти. Т.е. больше конкретики, Use Case-ов как говорится.
Аргумент что все порты заняты как бы не принимаются. Композитный дивайс на USB это классика, и нас применяется повсеместно.
Вот для подъема USB логично применить JTAG.

Но дальше проблемки есть, среди них:
JTAG не видит состояния памяти так как видит ее процессор через свой кэш. Т.е. на стопе дамп дает неправильный снимок памяти
JTAG не видит буфферизацию записи. Опять же на стопе дамп дает неправильный снимок памяти
Что JTAG видит в SoC-ах с акселераторами доступа FLASH тож тайна покрытая мраком.
Чтение через JTAG в реал-тайме используя семихостинг вносит местный эффект в выполнение кода. Баги могут временно пропадать.
Призводители умеют манипулировать JTAG сигналами когда вы пытаетесь лезть в области содержащие защищенный код или периферию, это еще вносит путаницу.
Наконец цикл отладки под JTAG просто длинее по времени чем отладка средствами встроенными в сам код. Для старта отладки
по JTAG нужен длиный период загрузки символьной отладочной информации, а перед этим скомпилить надо с отладочной информацией, а перед этим оптимизацию снизить до 0.
Вообщем лучше всех бы нам рассказал о всех неудобствах отладки через JTAG это SM поскольку CCS для ARM самый медленный и дубовый компилятор в мире. wink.gif



Цитата(singlskv @ Jun 17 2009, 23:34) *
ну Вы уже как нить определитесь куда меня отнести... laughing.gif
то что мне хватает виглера и просто брейкпоинтов не значит что я не знаю как можно пользовать нексус...
разговор то о том что без брейкпоинтов иногда бывает очень грустно...
Go to the top of the page
 
+Quote Post
SM
сообщение Jun 18 2009, 08:16
Сообщение #95


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(AlexandrY @ Jun 18 2009, 10:05) *
Вообщем лучше всех бы нам рассказал о всех неудобствах отладки через JTAG это SM

Могу сказать совершенно точно, что драйвера отладки обеспечивают видимость всего через кеши и прочие буфера и акселераторы именно так, как это видит процессор. И, при надобности, сливают или инвалидатят кеши, обеспечивая когерентность. Это совершенно надуманная проблема. Кеши не мешают отладке ни на каком из семейств процессоров, поддерживаемых CCS. Гораздо больше неприятностей от MMU, если его задействовать, так как ни драйвера, ни среда о нем без понятия, и "куда уехал цирк", а именно адреса внешних устройств, оно не догадывается.

Цитата(defunct @ Jun 18 2009, 05:07) *
Доки на RDI только под NDA идут (в бумаге).. закрытый он.

Ясно, спасибо, работаем smile.gif. По ходу он уже и устарел, нынче RDDI заменил RDI. И он, все же, не в бумаге, но под лицензией.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 18 2009, 14:02
Сообщение #96


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(AlexandrY @ Jun 18 2009, 10:05) *
Аргумент что все порты заняты как бы не принимаются. Композитный дивайс на USB это классика, и нас применяется повсеместно.
Вам не кажется что консоль на композитном USB девайсе выводящая дамп при попадании в дата аборт
это несколько оригинальное решение ?
Цитата
Вот для подъема USB логично применить JTAG.
то есть JTAG таки бывает нужен...
Цитата
Наконец цикл отладки под JTAG просто длинее по времени чем отладка средствами встроенными в сам код.
иногда длиннее иногда короче, сильно зависит от ошибки.
Цитата
Для старта отладки по JTAG нужен длиный период загрузки символьной отладочной информации, а перед этим скомпилить надо с отладочной информацией,
А кто мешает компилить всегда с отладочной инфой а шить из параллельно создаваемого BIN ?
Цитата
а перед этим оптимизацию снизить до 0.
Для вменяемой отладки мне хватает снижения до 1
иначе во флеш уже не лезет...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 18 2009, 14:25
Сообщение #97


Гуру
******

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



Цитата(singlskv @ Jun 18 2009, 17:02) *
А кто мешает компилить всегда с отладочной инфой а шить из параллельно создаваемого BIN ?
...
Для вменяемой отладки мне хватает снижения до 1

И с таким уровнем считаем, что система "рабочая" sad.gif.

Кстати, действительно дивный крайне негативный момент для использующих JTAG - после оптимизации (а если еще и при этом стиль написания предусматривает обильное inline) об удобной отладке по сишному исходнику можно забыть. Остается более-менее посмотреть буфера какие-нибудь. А при сбросе уровня оптимизации "для посмотреть", все, что более-менее зависит от времени хорошо уплывает.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SM
сообщение Jun 18 2009, 14:29
Сообщение #98


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(AlexandrY @ Jun 18 2009, 10:05) *
Для старта отладки по JTAG нужен длиный период загрузки символьной отладочной информации

Не понял???? Поясните! Я что-то никакого длинного периода никогда не видел. Куда загрузки? Она и так уже в самой среде куда-то видимо сразу загружена, и символьная, и номера строк исходников. Еще думать об этом. А в таргет ее грузить, разумеется, не нужно. Когда делается "Load Program" из дебаггера нет никакой разницы по времени, есть там в загружаемом модуле отладочная информация, или нет.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 18 2009, 14:41
Сообщение #99


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Jun 18 2009, 18:25) *
И с таким уровнем считаем, что система "рабочая" sad.gif.
уровень снижаеться только на время отладки,
после нахождения бага он опять меняеться на -O2 или -Os
кстати разница в размере кода между -Os и -O1 в моем случае всего ~10%
Цитата
Остается более-менее посмотреть буфера какие-нибудь. А при сбросе уровня оптимизации "для посмотреть", все, что более-менее зависит от времени хорошо уплывает.
Дык так и используеться, сбросил уровень оптимизазии, нашел багу, поднял уровень,
смотрим через "консоль".

Кстати, "для посмотреть" буфера уровень оптимизации вобще не нужно сбрасывать,
это нужно только для чуть-чуть походить по коду.
Go to the top of the page
 
+Quote Post
SM
сообщение Jun 18 2009, 14:45
Сообщение #100


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(zltigo @ Jun 18 2009, 18:25) *
А при сбросе уровня оптимизации "для посмотреть", все, что более-менее зависит от времени хорошо уплывает.

Так это уже бага, которую надо ловить и лечить - если от уровня оптимизации что-то куда-то уплывает. А если невозможно лечить - то оформить такой жестокий по времени кусок на ассемблере. Чтобы от компиляторозависимости уйти.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 18 2009, 14:53
Сообщение #101


Гуру
******

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



Цитата(SM @ Jun 18 2009, 17:45) *
Так это уже бага, которую надо ловить и лечить - если от уровня оптимизации что-то куда-то уплывает.

Долго смеялся sad.gif
Цитата(singlskv @ Jun 18 2009, 17:41) *
Дык так и используеться, сбросил уровень оптимизазии, нашел багу,

Баг зависил от времени исполнения какого либо куска ( о том, что он раз в неделю проявляется, при неудачном расплоложении звезд на небе у встречной стороны вообще молчу)
Дальнейшие действия?
Цитата
смотрим через "консоль".

Простите, а кто "ставил условия" - для консолей интерфейсов нет и не будет? Отлаживаться будем через JTAG причем стоя в гамаке через Wiggler.
Цитата
Кстати, "для посмотреть" буфера уровень оптимизации вобще не нужно сбрасывать,

Кстати, я об этом и писал


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SM
сообщение Jun 18 2009, 15:04
Сообщение #102


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(zltigo @ Jun 18 2009, 18:53) *
Долго смеялся sad.gif

Т.е. Вы считаете программу, которая на разных уровнях оптимизации ведет себя по-разному НОРМАЛЬНОЙ? Я бы программиста с таким мнением уволил бы неглядя...
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 18 2009, 15:43
Сообщение #103


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Jun 18 2009, 18:53) *
Долго смеялся sad.gif
то есть все Ваши проги умирают от снижения производительности на 10% ?
огласите пожалуйста список того что Вы делали и что не нужно покупать smile.gif (шутю)

Цитата
Баг зависил от времени исполнения какого либо куска ( о том, что он раз в неделю проявляется, при неудачном расплоложении звезд на небе у встречной стороны вообще молчу)
Дальнейшие действия?
Простите, а кто "ставил условия" - для консолей интерфейсов нет и не будет? Отлаживаться будем через JTAG причем стоя в гамаке через Wiggler.
Вы не внимательны, условие не жесткое, если заработал модбас по уарту то "консоль"(вывод отладочной инфы)
уже туда.
Go to the top of the page
 
+Quote Post
coolibin
сообщение Jun 18 2009, 15:54
Сообщение #104


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата(SM @ Jun 18 2009, 18:04) *
Т.е. Вы считаете программу, которая на разных уровнях оптимизации ведет себя по-разному НОРМАЛЬНОЙ? Я бы программиста с таким мнением уволил бы неглядя...

Ой Ой Ой, меня скоро уволят)))).....а вообще интересная тема, у меня прога хуже работает после того как я ставлю все галочки в разделе оптимизация, хотя по размеру становится меньше в 2 раза(оптимизация то с приоритетом на скорость). Где можно что то почитать типа IAR C++ Compiler Efficient coding? а то вы еще будете долго споритьwink.gif))


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 18 2009, 16:46
Сообщение #105


Ally
******

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



Не вижу для отладчика возможности заинвалидить кэш иным способом чем выполнить тем же процом принудительно несколько команд с через ICE
http://infocenter.arm.com/help/index.jsp?t...222b/index.html

Тут уж местный эффект будет по полной. А драйвера в ССS если позволяют себе инвалидить кэш делают медвежью услугу.

Но это не все, есть еще буфера на запись и не только встроенные в ядро, но и прилепленные на AHB производителями непосредственно чипов.

Ага, значит CCS не поддерживает MMU... wink.gif Оч забавно. А ведь базовый адрес таблицы трансляции лехко читаеться, не сложнее чем кэш заинвалидить.
Кстати RealView поддерживает компиляцию для DSP от TI в платформе OMAP совместно с кодом для ARM.
А б рекомендовал бросать этот CCS и переходить на RealView.
И как там, ССS поддерживает ARM Cortex-A8 для BeagleBoard на OMAP-е?


Цитата(SM @ Jun 18 2009, 11:16) *
Могу сказать совершенно точно, что драйвера отладки обеспечивают видимость всего через кеши и прочие буфера и акселераторы именно так, как это видит процессор. И, при надобности, сливают или инвалидатят кеши, обеспечивая когерентность. Это совершенно надуманная проблема. Кеши не мешают отладке ни на каком из семейств процессоров, поддерживаемых CCS. Гораздо больше неприятностей от MMU, если его задействовать, так как ни драйвера, ни среда о нем без понятия, и "куда уехал цирк", а именно адреса внешних устройств, оно не догадывается.


Ясно, спасибо, работаем smile.gif. По ходу он уже и устарел, нынче RDDI заменил RDI. И он, все же, не в бумаге, но под лицензией.



Вам вооще совет такой:
Включаете JTAG в режим мониторинга, ставите брекпойнты.
Перехватываете аборт вызванный брекпойнтом, и пишите интераптами в скоростную консоль хоть по USB, хоть UDP, хоть по SSI..
Прога останавливаться на брекпойтнах не будет и накладные будут меньше чем насиловать JTAG цепочку ICE, особливо если они там реально кэш и буфера инвалидят на каждом чихе.


Цитата(coolibin @ Jun 18 2009, 18:54) *
Ой Ой Ой, меня скоро уволят)))).....а вообще интересная тема, у меня прога хуже работает после того как я ставлю все галочки в разделе оптимизация, хотя по размеру становится меньше в 2 раза(оптимизация то с приоритетом на скорость). Где можно что то почитать типа IAR C++ Compiler Efficient coding? а то вы еще будете долго споритьwink.gif))
Go to the top of the page
 
+Quote Post

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

 


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


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