|
Дэбаг непрерывного процесса?, IAR 4.41A, AT91SAM7S256 |
|
|
|
 |
Ответов
|
Jun 16 2009, 17:08
|

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

|
Цитата(coolibin @ Jun 16 2009, 18:26)  А почему так радикально? есть какое то недоверие отладчику? Да не слушайте всякую радикальную дурь. Цитата а если не затруднит, можно поподробней что куда подключать и где это что то брать? printf() поставить в нужных точках, а поток printf'а, тобиш соответвующий "putchar" делать куда удобно, хоть в UART, хоть в JTAG, хоть просто в память складывать (виртуальный файл) который потом под отладкой и просмотрите..
|
|
|
|
|
Jun 16 2009, 22:08
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 17 2009, 01:48)  Использование вместо простого, как лом и требующего минимальные ресурсы UART Вы похоже не знаете, что сейчас позволяет JTAG. По нему практически без торможения PC и девайса передается в комп в реалтайме видеопоток 30 fps 640x480 (это что я лично видел в работе). И при этом нет практически никаких затрат в программировании ни на той стороне, ни на этой. Интересно, сколько сил Вы положите на аналогичное по UART. И сколько UARTов задействуете. Да ладно, видео. Хотя бы простое стерео аудио, 2 канала 96 килогерц 24 бит. Это Вам не в терминал сообщение об ошибке плюнуть! (тут согласен, UART самое то, не надо дорогих жтагов). Речь то о реалтаймовых потоках данных! Зачем что-то городить свое, если за Вас все уже нагородили - только пользуй.
|
|
|
|
|
Jun 17 2009, 07:12
|

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

|
Цитата(SM @ Jun 17 2009, 01:08)  Вы похоже не знаете, что сейчас позволяет JTAG. Типичный позволяет, как минимум не более того, что, что позволяет физически железо конкретного конкконтроллера зачастую накладявая на это дополнительные ограничения собственного железа и софта. А типовой ARM с типовым механизмом JTAG не представляет в этом отношении из себя ничего особенного - один из пары имеющихся аппаратных брекпойнтов стоит ввиде заглушки на "putchar()" и при останове, хост узнав об этом офакте по опросу цепочки драйвер-USB-JTAG вычитывает этот самый байт в следующем цикле опроса. При этом имеющийся последовательный интерфейс JTAG на передачу этого самого байта на типичной скорости в мегабит дополняет его многими байтами для обеспечения прохождения по JTAG цепочке. Да, да есть продвинутое железо JTAG автоматов в некоторых контроллерах с буферизацией и прочим, есть фирменные инкапсулируемые в JTAG протоколы для общения с этим железом. Но типичный JTAG "для переслать" байт и по скорости, и по загрузке вчистую проигрывает балальному UART работаюшему на даже на ничтожных десятках килобод. Цитата Зачем что-то городить свое, если за Вас все уже нагородили - только пользуй. Отлично, готов "только пользовать". Я есть чайник. Готов выслушать Ваш конкретный совет, как из имеющегося, ну допутим, чего-то майнстримового - LPC2148 c помощью ну, пусть будет распросраненного J-Link V4 и не менее распространенного IARовского отладчика выкачать ну чего-нибудь на скорости эквивалентной ну хотябы банальным 115200 UART.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 08:37
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 17 2009, 11:12)  А типовой ARM с типовым механизмом JTAG не представляет в этом отношении из себя ничего особенного - один из пары имеющихся аппаратных брекпойнтов стоит ввиде заглушки на "putchar()" и при останове, хост узнав об этом офакте по опросу цепочки драйвер-USB-JTAG вычитывает этот самый байт в следующем цикле опроса. Поэтому я и заострил внимание на среде разработки. Типовой контроллер жтага, поддерживаемый CCS (xds510 или xds560), и типовой драйвер, включенный в CCS, позволяют две вещи - первая, то что Вы сказали, заглушка на putchar. С учетом того, что жтаг-контроллер (xds510 на usb) работает на USB 2.0 hs, и поддерживает блочный поллинг, то поллинг быстрый. Не говоря уже о применении PCI-платы жтаг-контроллера, или самого шустрого XDS560 (но он мало у кого есть из-за цены). А вот вторая вещь заслуживает особого внимания - это RTDX. Физически обмен происходит так - ARM (или DSP, любой, поддерживаемый средой процессор) имеет в себе буфер, который заполняется реалтайм-потоком данных. По заполнению буфера процессор выставляет бит 0 Debug comms control register в EmbeddedICE, начиная передачу, после чего хост, обнаружив поллингом по JTAG этот бит, не прерывая исполнения кода процессора, вычитывает данные через Debug comms data register. Это механизм, применяемый для ARM7TDMI. При этом ARM не тормозится. Разумеется, все это реализовано в библиотеках, идущих со средой, и не требует от программиста чего-то неординарного.
|
|
|
|
|
Jun 17 2009, 09:01
|

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

|
Цитата(SM @ Jun 17 2009, 11:37)  и поддерживает блочный поллинг, то поллинг быстрый. Блочный, это хорошо, блочный это классно, если интефейс болочный и Вы лихо льете, ну тот-же фрейм кадра 30 раз в секунду. А вот если вы 30 раз  в секунду будете лить по байту отладочной печати, это труба дело. Цитата любой, поддерживаемый средой процессор) имеет в себе буфер, который заполняется реалтайм-потоком данных. Только вот ARM7 в себе волшебного буфера в железе не имеет, значит должен быть некий софтовый его заменяющий. Ну и софт его поддтерживающий и софт о нем знающий и быстро болоком перекачивающий, и софт блок принимающий и обрабатывающий. Какие в результате всех этих наворотов и нагромождений и условий преимущества по отншению к такой-же, но более простой (и что характерно не зависящий ни от JTAG, ни от стоимости JTAG, ни от среды разработки, ни от софта сторонних производителей) организации дела для банального UART (тоже между прочим обычно имеющий и FIFO, и DMA)? Теоретически (если железо и чепочка и софт позволят гнать) более высокая скороть последовательного интерфейса. Все? Цитата Это механизм, применяемый для ARM7TDMI. При этом ARM не тормозится. Разумеется, все это реализовано в библиотеках, идущих со средой, и не требует от программиста чего-то неординарного. Только вот у ARM7 со штатным JTAG автоматом от ARM-же таких волшебных железных буферов просто нет. Все, что дальше - написано уже выше.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 10:09
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 17 2009, 13:01)  Теоретически (если железо и чепочка и софт позволят гнать) более высокая скороть последовательного интерфейса. Все? Именно это, оно же и основное, первое. Второе - отсутствие лишних соединений, если допустить, что JTAG априори соединен для отладки и заливки. Третье - UART не занят, он (они) ведь далеко не всегда просто так без дела болтаются, и, вообще, не всегда имеются на борту ARMа. Четвертое - отсутствие каких либо лишних действий со стороны разработчика, весь механизм передачи с обоих сторон реализован разработчиками отладочной среды, и является стандартом для этой среды разработки. Т.е. не надо самому думать про буфера, прерывания, поллинги, передачи-приемы... Просто вызвал функцию и послал данные. Что касается 30 раз в секунду по байту - а для таких потоков и совершенно пофигу, через что и как гнать. Можно позабыть про все поллинги, про flow control, про все на свете. "выплевывай" в любую удобную дырку, хост по любому принять успеет.
|
|
|
|
|
Jun 17 2009, 11:29
|

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

|
Цитата(SM @ Jun 17 2009, 13:09)  Четвертое - отсутствие каких либо лишних действий со стороны разработчика, весь механизм передачи с обоих сторон реализован разработчиками отладочной среды, и является стандартом для этой среды разработки. Т.е. не надо самому думать про буфера, прерывания, поллинги, передачи-приемы... Только 1) Использовать только "правильные" контроллеры 2) Купить "правильный" JTAG 3) Ну и соответственно "правильную" среду разработки 4) развести JTAG, и сочеетать его с возможно другими имеющимися чипами, что вслучае всяких ныне идущих тугой струей низковольтных и шустрых FPGA себе не левой ногой делается. Ну а дальше, все конечно просто Цитата Просто вызвал функцию и послал данные. Если, конечно, вся эта байда не взглючит в "нужный" момент. Цитата Что касается 30 раз в секунду по байту - а для таких потоков и совершенно пофигу, через что и как гнать. Можно позабыть про все поллинги, про flow control, про все на свете. "выплевывай" в любую удобную дырку, хост по любому принять успеет. Здорово-то как. Зачем Вы тогда НЕ ПРО USB JTAG поминали? Почему тот-же самый блекфиновский USB-JTAG (кстати, тоже совсем не дешевый, дотя по сравнению с их-же PCI, конечно почти лимонад) и при постановки банальной точки остановки тоскливо впадает в ступор надолго? И чего-то Вы как-то молчите в ответ на предложение рассказать о практической реализации оного счастья на майнстримовом наборе LPC+J-Link+IAR. Цитата(SM @ Jun 17 2009, 14:05)  Скажу так... Добавлю - "обычная" система с JTAG этого и близко не сможет.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 11:51
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 17 2009, 15:29)  И чего-то Вы как-то молчите в ответ на предложение рассказать о практической реализации оного счастья на майнстримовом наборе LPC+J-Link+IAR. Потому, что я не знаю, делается ли это на таком наборе, и если делается, то как. Я не знаю ни J-Link-a, ни IARа. Я рассказываю лишь то, что знаю. А знаю я все недра вплоть до глубин драйверов и схемотехники эмуляторов у TI CCS. Кому с чем нравится, тот с тем и работает. И я не настаиваю на переходе с чего-то куда-то. Я лишь объясняю начинающим, что есть такая среда, есть такие эмуляторы, в которых возможно то-то и то-то, и кому-то наверняка эта информация станет полезной. Возможно ли это в других средах и на других эмуляторах я просто без понятия, и на эту тему что-то высказывать не могу. И вообще не понимаю, на кой мне этот ж-линк с иаром, если у меня есть xds с ccs Цитата(zltigo @ Jun 17 2009, 15:29)  Если, конечно, вся эта байда не взглючит в "нужный" момент. Любая байда может взглючить в "нужный момент"  На то и есть разработчики всех этих байд, чтобы глюки устранять, и техподдержку оказывать тем, у кого вдруг что-то сглючивает в тех байдах, в которых они сами не бум-бум. Хотя, впрочем, нельзя сказать, что "байда" сглючит сильно вероятнее, чем просто винда на компе. Цитата(zltigo @ Jun 17 2009, 15:29)  1) Использовать только "правильные" контроллеры Это бы еще с чего? ARM он и в Африке ARM. Я вот в CCS писал под Excalibur-ARM, он уж никак не является "правильным контроллером" с точки зрения CCS, однако все работало, коннектилось и отлаживалось без каких либо лишних действий. Цитата(zltigo @ Jun 17 2009, 15:29)  4) развести JTAG, и сочеетать его с возможно другими имеющимися чипами, что вслучае всяких ныне идущих тугой струей низковольтных и шустрых FPGA себе не левой ногой делается. Нука-нука поподробнее тут. Обычно самая основная проблема при разводки - обеспечить качество сигналов JTAG именно на процессоре, чтобы он без сбоев работал на 30..50 МГц по TCK, а фпга-то они так, сбоку-припека, загрузил на любой скорости, хоть на мегагерце TCK, и ладно. Вообще, какая-то надуманная проблема в сложности организации JTAG цепочки из нескольких микросхем. А эмуляторы обеспечивают уровни сигналов JTAG 1.65...5.5 вольт, причем автоматически, тут и думать не надо.
|
|
|
|
Сообщений в этой теме
coolibin Дэбаг непрерывного процесса? Jun 16 2009, 15:10 aaarrr Выкидываете отладчик, берете UART, прикручиваете к... Jun 16 2009, 15:14 aaarrr Цитата(coolibin @ Jun 16 2009, 19:26) А п... Jun 16 2009, 17:01  aaarrr Цитата(defunct @ Jun 16 2009, 21:08) Да н... Jun 16 2009, 17:42   defunct Цитата(aaarrr @ Jun 16 2009, 20:42) Выбир... Jun 16 2009, 18:16          zltigo Цитата(SM @ Jun 17 2009, 14:51) Нука-нука... Jun 17 2009, 13:29           SM Цитата(zltigo @ Jun 17 2009, 17:29) Ага, ... Jun 17 2009, 13:54            aaarrr Цитата(SM @ Jun 17 2009, 17:54) Кстати, и... Jun 17 2009, 14:02             SM Цитата(aaarrr @ Jun 17 2009, 18:02) Да во... Jun 17 2009, 14:09            zltigo Цитата(SM @ Jun 17 2009, 16:54) А завести... Jun 17 2009, 14:20             SM Цитата(zltigo @ Jun 17 2009, 18:20) Расск... Jun 17 2009, 14:43              zltigo Цитата(SM @ Jun 17 2009, 17:43) Как чего ... Jun 17 2009, 15:55               SM Цитата(zltigo @ Jun 17 2009, 19:55) Тоже ... Jun 17 2009, 16:31                zltigo Цитата(SM @ Jun 17 2009, 19:31) IAR для р... Jun 17 2009, 16:51                 SM Цитата(zltigo @ Jun 17 2009, 20:51) Прежд... Jun 17 2009, 17:20                  zltigo Цитата(SM @ Jun 17 2009, 20:20) И изначал... Jun 17 2009, 17:26                   SM Цитата(zltigo @ Jun 17 2009, 21:26) Я сов... Jun 17 2009, 17:41                  zltigo Цитата(SM @ Jun 17 2009, 20:20) ха-ха. То... Jun 17 2009, 17:47                   singlskv Цитата(zltigo @ Jun 17 2009, 21:47) Мне д... Jun 17 2009, 17:57                    zltigo Цитата(singlskv @ Jun 17 2009, 20:57) Вид... Jun 17 2009, 18:02                     singlskv Цитата(zltigo @ Jun 17 2009, 22:02) Я все... Jun 17 2009, 18:10                      zltigo Цитата(singlskv @ Jun 17 2009, 21:10) Ну ... Jun 17 2009, 18:17                     SM Цитата(zltigo @ Jun 17 2009, 22:02) При э... Jun 17 2009, 18:18                      zltigo Цитата(SM @ Jun 17 2009, 21:18) Да и судя... Jun 17 2009, 18:24                     singlskv Цитата(zltigo @ Jun 17 2009, 22:02) Я все... Jun 17 2009, 19:06                      AlexandrY Здесь как раз все очень просто, так просто, что пр... Jun 17 2009, 19:28                       singlskv Цитата(AlexandrY @ Jun 17 2009, 23:28) Зд... Jun 17 2009, 19:38                        zltigo Цитата(singlskv @ Jun 17 2009, 22:38) для... Jun 17 2009, 19:47                         singlskv Цитата(zltigo @ Jun 17 2009, 23:47) А что... Jun 17 2009, 20:05                          aaarrr Цитата(singlskv @ Jun 18 2009, 00:00) еди... Jun 17 2009, 20:05                           singlskv Цитата(aaarrr @ Jun 18 2009, 00:05) А наб... Jun 17 2009, 20:09                            aaarrr Цитата(singlskv @ Jun 18 2009, 00:09) рег... Jun 17 2009, 20:15                             singlskv Цитата(aaarrr @ Jun 18 2009, 00:15) Я име... Jun 17 2009, 20:24                          zltigo Цитата(singlskv @ Jun 17 2009, 23:05) ага... Jun 17 2009, 20:17                           SM Цитата(zltigo @ Jun 18 2009, 00:17) и отл... Jun 17 2009, 20:24                            zltigo Цитата(SM @ Jun 17 2009, 23:24) ?????????... Jun 17 2009, 20:33                             SM Цитата(zltigo @ Jun 18 2009, 00:33) Не по... Jun 17 2009, 20:52                           singlskv Цитата(zltigo @ Jun 18 2009, 00:17) Угу, ... Jun 17 2009, 20:34                            AlexandrY Вот и расказали бы о своей конкретной грусти. Т.е.... Jun 18 2009, 06:05                             SM Цитата(AlexandrY @ Jun 18 2009, 10:05) Во... Jun 18 2009, 08:16                             singlskv Цитата(AlexandrY @ Jun 18 2009, 10:05) Ар... Jun 18 2009, 14:02                              zltigo Цитата(singlskv @ Jun 18 2009, 17:02) А к... Jun 18 2009, 14:25                               singlskv Цитата(zltigo @ Jun 18 2009, 18:25) И с т... Jun 18 2009, 14:41                               SM Цитата(zltigo @ Jun 18 2009, 18:25) А при... Jun 18 2009, 14:45                             SM Цитата(AlexandrY @ Jun 18 2009, 10:05) Дл... Jun 18 2009, 14:29                       zltigo Цитата(AlexandrY @ Jun 17 2009, 22:28) Зд... Jun 17 2009, 19:38                        AlexandrY Естественно, я прикидываю чего стоит занять осмысл... Jun 17 2009, 19:43                         zltigo Цитата(AlexandrY @ Jun 17 2009, 22:43) По... Jun 17 2009, 19:52                          SM Цитата(zltigo @ Jun 17 2009, 23:52) Кстат... Jun 17 2009, 19:58                        singlskv Цитата(zltigo @ Jun 17 2009, 23:38) Вы же... Jun 17 2009, 19:49                         zltigo Цитата(singlskv @ Jun 17 2009, 22:49) Хот... Jun 17 2009, 20:05           singlskv Цитата(zltigo @ Jun 17 2009, 17:29) (а ещ... Jun 17 2009, 17:07            zltigo Цитата(singlskv @ Jun 17 2009, 20:07) У м... Jun 17 2009, 17:12             singlskv Цитата(zltigo @ Jun 17 2009, 21:12) Стран... Jun 17 2009, 17:30 coolibin А что printf() работает через JTAG? я слышал что н... Jun 16 2009, 17:56 SM Цитата(coolibin @ Jun 16 2009, 21:56) А ч... Jun 16 2009, 18:20 aaarrr Работает. И файловый ввод/вывод тоже. Можно, напри... Jun 16 2009, 18:00 coolibin подскажите где можно почитать про printf? какой за... Jun 16 2009, 19:27 aaarrr Цитата(defunct @ Jun 16 2009, 22:16) Выра... Jun 16 2009, 19:32  defunct Цитата(aaarrr @ Jun 16 2009, 22:32) Полаг... Jun 16 2009, 22:38   aaarrr Цитата(defunct @ Jun 17 2009, 02:38) 2. К... Jun 16 2009, 22:51    defunct То хамство, то сравнение с самим Р.
Да не берети в... Jun 16 2009, 23:10     aaarrr Цитата(defunct @ Jun 17 2009, 03:10) Я за... Jun 16 2009, 23:17 SM Цитата(coolibin @ Jun 16 2009, 23:27) под... Jun 16 2009, 19:46 DpInRock Если "процесс" - это прерывание таймера ... Jun 16 2009, 19:38 coolibin Оч. интересно! на сколько фатальным будет стан... Jun 16 2009, 19:43 aaarrr Цитата(coolibin @ Jun 16 2009, 23:43) Оч.... Jun 16 2009, 19:46 coolibin Недопонял. Т.е. если я работаю с Code Composer Stu... Jun 16 2009, 20:13 SM Цитата(coolibin @ Jun 17 2009, 00:13) Нед... Jun 16 2009, 20:23 aaarrr Будет-будет, printf - он и в Африке printf. Jun 16 2009, 20:18 aaarrr Хм, а CCS с чужим процессором подружить можно? У н... Jun 16 2009, 20:28 SM Цитата(aaarrr @ Jun 17 2009, 00:28) Хм, а... Jun 16 2009, 20:34 coolibin Тогда такой вопрос. Смогу ли я раз в 8мкс предават... Jun 17 2009, 05:33 DpInRock Цитата(coolibin @ Jun 17 2009, 09:33) Тог... Jun 17 2009, 09:05 aaarrr Нет, не сможете, конечно. Эти данные придется где-... Jun 17 2009, 05:35 coolibin А где их буферизировать? и сколько Debug UART може... Jun 17 2009, 05:39 aaarrr Цитата(coolibin @ Jun 17 2009, 09:39) А г... Jun 17 2009, 05:49 coolibin А что нельзя в ОЗУ буферизировать и без Debug UART... Jun 17 2009, 06:14 aaarrr Цитата(coolibin @ Jun 17 2009, 10:14) А ч... Jun 17 2009, 07:32 SasaVitebsk А что, кроме распальцовки, мешает создать такой же... Jun 17 2009, 09:36 coolibin Честно, я уже начинаю путаться. кто с кем разговар... Jun 17 2009, 09:47 aaarrr Что непонятно - кольцевой буфер? трассы? Jun 17 2009, 09:50 coolibin ага, они самые Jun 17 2009, 09:53 aaarrr Кольцевой буфер, трассы - записи прохождения контр... Jun 17 2009, 10:08 DpInRock А давайте приведем пример. К примеру.
Как выводит... Jun 17 2009, 10:49 coolibin Отлично! Тема простоты мне нравится)) Debug UA... Jun 17 2009, 11:01 SM Цитата(coolibin @ Jun 17 2009, 15:01) Отл... Jun 17 2009, 11:05 SM А вот такой вопрос, оффтопный слегка, Вы тут RDI у... Jun 17 2009, 18:38 defunct Цитата(SM @ Jun 17 2009, 21:38) RDI упоми... Jun 18 2009, 01:07 AlexandrY Раз уж пошел такой маркетинг, то похвалю и свое.
... Jun 17 2009, 19:38
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|