|
|
  |
Дэбаг непрерывного процесса?, 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, 19:32
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Jun 16 2009, 22:16)  Выражение выбрано адекватно, и касается исключительно радикальной дури насчет "выкидывайте отладчик". Полагаете, что агрессивное хамство поможет в борьбе с "радикальной дурью", в вашем понимании? Цитата(coolibin @ Jun 16 2009, 23:27)  подскажите где можно почитать про printf? какой заголовочный файл нужно включить для его использования? Для использования printf нужно подключить <stdio.h> Почитать следует книжку по 'C' и документацию на компилятор по вопросам перенаправления потока.
|
|
|
|
|
Jun 16 2009, 19:46
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(coolibin @ Jun 16 2009, 23:27)  подскажите где можно почитать про printf? какой заголовочный файл нужно включить для его использования? stdio.h, и если работаете с Code Composer Studio (Texas Instruments) - то ничего перенаправлять никуда не надо, по умолчанию printf работает через JTAG в отладочную консоль. Если надо гнать более толстые потоки - там для этого предусмотрены спец. механизмы RTDX и HSRTDX. Все это полностью поддержано и для ARM 7,9,11, и для cortex-M, -R и -A, а не только для DSP-семейств (об этом многие даже и не догадываются).
|
|
|
|
|
Jun 16 2009, 20:23
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(coolibin @ Jun 17 2009, 00:13)  Недопонял. Т.е. если я работаю с Code Composer Studio, то скорость не передачи через printf не будет фатальной? Смотря чем определяется фатальность. в CCS принтф вызывает emulation stop, пересылку буфера в хост и run - т.е. процессор встает на какое-то, пусть небольшое, время. Основной тормоз тут - это поллинг ARMа по JTAGу на предмет того, встал он или нет. После того, как хост узнал, что встал, остальное очень быстро. В отличие от RTDX - при этом обмен идет через буфер, который выкачивается через JTAG механизмами DMA, не прерывая программы. Ну и обратно аналогично - вкачивается по DMA, после чего вызывает прерывание.
|
|
|
|
|
Jun 16 2009, 20:34
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(aaarrr @ Jun 17 2009, 00:28)  Хм, а CCS с чужим процессором подружить можно? У нас ведь тут AT91SAM7S256. Пробовать надо. Для начала нужно иметь эмулятор техасского происхождения - совместимый с XDS510 или XDS560 (второй наверное излишен, он позволяет в реалтайме гнать мегабиты вплоть до видеопотоков). Это главное. Так как CCS нельзя подружить с другими JTAG-ами. В свое время я коннектил CCS 2-ой версии к альтерскому ARM9 (Excalibur EPXA3) без каких либо шаманств. Но это было давно, композер уже 4-й на подходе, дрова там совершенствовались не один десяток раз. Так что они могли и вставить проверку на то, что ARM техасского происхождения (кстати, а это возможно? по JTAG IDCODE? Или по какому признаку?). Но... Тут как говорится - если что, как вставили, так и вынем  В общем - ни в 3-ем композере, ни в 4-ом я не пробовал коннектиться к нетехасским АРМ, а 2-ой коннектился без вопросов. Меня самого этот вопрос очень интересует, если попадется под руку что-то ARMообразное нетехасское, попробую однозначно.
|
|
|
|
|
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 16 2009, 22:38
|

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

|
Цитата(aaarrr @ Jun 16 2009, 22:32)  Полагаете, что агрессивное хамство поможет в борьбе с "радикальной дурью", в вашем понимании? 1. Ну для начала, я никому здесь не хамил. 2. Кое-кто не буду показывать пальцами  позволяли себе вставлять и более резкое словцо в отношении некоторых книжек(ки), и на мой взгляд правильно делали. Вот и тут, когда дают откровенно неверный совет - хочу назвать вещи своими именами. Почему "выбросить отладчик" - это дурь, да потому что логичным завершением мысли будет не использовать UART - а "выбросить плату вместе ARM'ом" и на PC делать программу, записывая все в лог файл, как и раньше. Цитата(zltigo @ Jun 17 2009, 00:48)  Использование вместо простого, как лом и требующего минимальные ресурсы UART - JTAG с его непрерывным проможением контроллера, подьема по поллингу, мутными многослойными драйверами на стороне РС, эмуляторами терминалов..... Теперь "радикальная дурь". UART'у - uart'ово JTAG'у - JTAG'ово. Радикальная дурь - это лозунги, типа большивистского - "Мы старый мир разрушим, до основанья, а затем... "...
|
|
|
|
|
Jun 16 2009, 22:51
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Jun 17 2009, 02:38)  2. Кое-кто не буду показывать пальцами  позволяли себе вставлять и более резкое словцо в отношении некоторых книжек(ки), и на мой взгляд правильно делали. Я сравниваюсь по уровню разлагающего влияния с самим Р.? Пора задуматься о мировом господстве. Цитата(defunct @ Jun 17 2009, 02:38)  Вот и тут, когда дают откровенно неверный совет - хочу назвать вещи своими именами. Почему "выбросить отладчик" - это дурь, да потому что логичным завершением мысли будет не использовать UART - а "выбросить плату вместе ARM'ом" и на PC делать программу, записывая все в лог файл, как и раньше. Не надо пытаться за меня "логично завершать мысли" - что-то совсем не логично получается.
|
|
|
|
|
Jun 17 2009, 06:14
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
А что нельзя в ОЗУ буферизировать и без Debug UART'а? обычным введение доп. переменных? ну а про 3 строчки по 3 слова, это я так с запасом  одно число Debug 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, 07:32
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(coolibin @ Jun 17 2009, 10:14)  А что нельзя в ОЗУ буферизировать и без Debug UART'а? обычным введение доп. переменных? ну а про 3 строчки по 3 слова, это я так с запасом  Можно, конечно. Не важно по большому счету, чем эту информацию потом вытаскивать. Другое дело, что сам подход "запишем кучу мегабайт, а потом разберемся" не представляется правильным, ввиду отсутствия большого количества ОЗУ и быстрых интерфейсов. Ошибки не каждые 8 мкс возникают ведь? Вот и ставьте простые ловушки с коротким выводом. Цитата(coolibin @ Jun 17 2009, 10:14)  одно число Debug UART сможет передать? 8 мкс - это 125кГц, чтобы передать даже одно число в 32-бита нужен интерфейс с пропускной способностью примерно 1МБайт/с, UART не поможет.
|
|
|
|
|
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, 09:05
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Цитата(coolibin @ Jun 17 2009, 09:33)  Тогда такой вопрос. Смогу ли я раз в 8мкс предавать через Debug UART, ну хотя бы 3 строчки текста приблизительно по 3 слова в строчке? Вы письмо дедушке пишете или отлаживаете? 1. Процессы, которые совсем быстрые (время обслуживания крайне критично) отлаживаются осциллографом. Выводите на пин (какой-нибудь) простой сигнал. 2. Чуть более менее критичные процессы. Пишем число-сигнал напрямую в регистр передатчика. Тут будет засада. Если повторный вызов будет раньше, чем закончится передача, то предыдущая передача может накрыться (если UART не имеет двойной буферизации). 2а. Пишем число-сигнал в кольцевой буфер. А фоновая программа потихоньку выдает этот буфер наружу. Занимает чуть больше времени, чем предыдущий пункт, но более надежна. Но зато предыдущий пункт не требует никакой писанины, кроме настройки порта на передачу. 3. Организовавываем нормальный ввод\вывод по UART c прерываниями как по приему, так и по передаче. И более ни о чем не беспокоимся. Отладочный код будет жить на полных правах с нормальным кодом. Т.е. будет существовать веки вечные. Это будет гарантировать, что отладка не вносит ни плохих побочных эффектов, ни хороших. А кроме того - уарт - всегда пригодится для вусякого разного.
--------------------
On the road again (Canned Heat)
|
|
|
|
|
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, 10:49
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
А давайте приведем пример. К примеру.
Как выводится отладка у жестких дисков? Там реалтайм - будь здоров. Что используется для заливки прошивки?
Ответ - тот самый уарт.
Наверняка разработчики пользовались всем арсеналом средств. Но конечному потребителю отдан УАРТ. Кнечно, это не совсем отладка, больше похоже на диагностику и лог, но тем не менее его хватает, чтобы как-то локализовать неисправность или баг... Что и требуется.
А отладка - естественно вещь индивидуальная. Зависящая от оборудования, от задач. И четкое их понимание позволит отладить хоть осциллографом, хоть джтагом, а хоть и просто глядя в программу. Просто, имхо, для малоквалифицированных и необразованных, коим я, например, являюсь - надо что-то попроще. А ничего проще осциллографа и уарта человечество не изобрело.
--------------------
On the road again (Canned Heat)
|
|
|
|
|
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 вольт, причем автоматически, тут и думать не надо.
|
|
|
|
|
Jun 17 2009, 13:29
|

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

|
Цитата(SM @ Jun 17 2009, 14:51)  Нука-нука поподробнее тут. Обычно самая основная проблема при разводки - обеспечить качество сигналов JTAG именно на процессоре, чтобы он без сбоев работал на 30..50 МГц по TCK Ага, хорошие мегагерцы. Теперь навешаем на тот-же JTAG согласование уровней с 2,5V FPGA и в цепочке и на TCK, подумаем, что будет, с задержками на этих мегагерцах и как обеспечить нормальные форонты без звона и overshoot/undershoot опасных для FPGA. Заодно, узнаем, что ARM арму рознь и на фантастических 30...50 MHz ни массовые ARM и массовые JTAG адаптеры под них (а еще встечаются живые поклонники Wigler и подобных  )просто работать не будут. Цитата Я лишь объясняю начинающим, что есть такая среда, есть такие эмуляторы, в которых возможно то-то и то-то, и кому-то наверняка эта информация станет полезной. Дык я это сразу просек, повтояюсь: Цитата 1) Использовать только "правильные" контроллеры 2) Купить "правильный" JTAG 3) Ну и соответственно "правильную" среду разработки 4) развести JTAG, и сочеетать его с возможно другими имеющимися чипами, что вслучае всяких ныне идущих тугой струей низковольтных и шустрых FPGA себе не левой ногой делается. Ну а дальше, все конечно просто И сообщаю тем-же начинающм, что среди майнстрима есть и совсем другая реальность  , где надо уметь пользоваться и губозакатывальной машинкой
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 13:54
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 17 2009, 17:29)  Ага, хорошие мегагерцы. Теперь навешаем на тот-же JTAG согласование уровней с 2,5V FPGA и в цепочке и на TCK, подумаем, что будет, с задержками на этих мегагерцах и как обеспечить нормальные форонты без звона и overshot/undershot опасных для FPGA. А завести на ПЛИСово JVCC (питание пинов жтага) 3.3 совесть не позволяет? Или его в той стороне платы нет, а дорожку длинную тянуть ломает? Да и уровни совместимы у 3.3 и у 2.5 логики без какого либо дополнительного согласования, т.е. 2.5 логика ПЛИСов она 3.3-толерантная. В общем проблема очень и очень надуманная. Или эта ПЛИС пообще с этим АРМом никак и нигде не соединена? Цитата(zltigo @ Jun 17 2009, 17:29)  Заодно, узнаем, что ARM арму рознь и на фантастических 30...50 MHz ни массовые ARM и массовые JTAG адаптеры под них (а еще встечаются живые поклонники Wigler и подобных  )просто работать не будут. А еще заодно узнаем, что у эмуляторов есть адаптивное тактирование, а у ARMов, в т.ч. массовых, в которых максимальная TCK зависит от тактовой ядра - возвратный клок RTCK, позволяющий эмуляторам автоматически выставлять максимально допустимую частоту. А также, что у эмуляторов есть ручное задание тактовой частоты начиная от десятков килогерц... А также смотрим даташиты на "массовые ARM", которые без адаптивного тактирования - например AT90RM9200, который массовый уже лет 10, допускает как раз 50 МГц по TCK. Так что все массовые АРМ будут работать либо автоматом на таких частотах, которые сами допускают, либо допускают вполне достаточно. Кстати, интересно, а какой именно ARM, из тех, что без RTCK, не протянет 30 МГц по JTAG? Это про ARMы. А про "массовые" jtag-адаптеры речь в моем контексте не идет. Потому, что CCS поддерживает только другие массовые адаптеры, совместимые с XDS510 или XDS560.
|
|
|
|
|
Jun 17 2009, 14:20
|

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

|
Цитата(SM @ Jun 17 2009, 16:54)  А завести на ПЛИСово JVCC (питание пинов жтага) 3.3 совесть не позволяет? Цитата т.е. 2.5 логика ПЛИСов она 3.3-толерантная. Расскажите об об этом разаработчикам Циклон3 и заодно попросите их, дабы перестали "пугать" снижением ресурса при overshot. Цитата А еще заодно узнаем, что у эмуляторов есть адаптивное тактирование... Отличная вещь, только скорсти тактирвания за счет такого контроля падают у масовых (если они ее вообще имеют) падает до единиц мегагерцев (например, у того-же J-Link за 250 а не за 4000 баксов RTCK заведен на прерывание контроллера, максимальную скорость такой обработка стоящим там ARM7 можете прикинуть сами ) Цитата А также смотрим даташиты на "массовые ARM", которые без адаптивного тактирования - например AT90RM9200 А есть еще не только "массовые ARM9", но и массовые "ARM11". Но в заголовке написано всего про ARM7, однако. Цитата А также, что у эмуляторов есть ручное задание тактовой частоты начиная от десятков килогерц. Несомненно, только что при этом будет с обещаниями волшебных перекачек результатов printf(). P.S. Если Вы думаете, что я не держал в руках JTAG-и и не пытался получить от владения ими максимум всего, чего возможно, то это совсем не так  Цитата(SM @ Jun 17 2009, 17:09)  Действительно. Не знал, что такие бывают. Но все равно, 10 MHz это не мало. А NXP вообще для ARM7 не нормирует
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 14:43
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 17 2009, 18:20)  Расскажите об об этом разаработчикам Циклон3 и заодно попросите их, дабы перестали "пугать" снижением ресурса при overshot. Maximum Allowed Overshoot During Transitions over a 10-Year Time Frame 3.95V 100% оf time of HIGH level. Этого что, мало что-ли? Это из даташита на циклон-3. Какие же у вас там по жтагам овершоты? Цитата(zltigo @ Jun 17 2009, 18:20)  Отличная вещь, только скорсти тактирвания за счет такого контроля падают у масовых (если они ее вообще имеют) падает до единиц мегагерцев (например, у того-же J-Link за 250 а не за 4000 баксов RTCK заведен на прерывание контроллера, максимальную скорость такой обработка стоящим там ARM7 можете прикинуть сами Да причем тут J-link? Я понимаю, есть фанаты сделать самому себе что-то через UART, или через Ethernet, или еще через что-то, что на борту дают, и потом через это успешно отлаживать. А другие просто купят более мощный эмулятор, и будут пользоваться готовыми средствами. Редкий проект не позволяет повысить сумму затрат на его разработку на $1K. Тут каждому свое. Я же не требую ото всех начинать сразу с мощных жтагов. Просто информирую о наличии альтернативы. Что касается куда заводить RTCK - можно просто завести через инвертор на TCK - получится автогенератор TCK допустимой скорости. Ну и в эмулятор его соотв. подать, не используя клок, генерируемый самим эмулятором. Дешево и сердито. Вигглер, конечно, не поймет такого, ибо не умеет, а тот же XDS работает только по сигналу RTCK. А TCK просто генерирует, не обязывая использовать именно его, т.е. допуская подачу TCK с отлаживаемого устройства и игнорируя TCK с эмулятора. Цитата(zltigo @ Jun 17 2009, 18:20)  Несомненно, только что при этом будет с обещаниями волшебных перекачек результатов printf(). Как чего - раза в два-три скорость уменьшится. Но все равно не до 115200  Цитата(zltigo @ Jun 17 2009, 18:20)  А NXP вообще для ARM7 не нормирует  А у них адаптивка - ядро само себя ограничит, вот и не нормируют. Как я понимаю - ограничение будет в частоту ядра, деленную на 4. Цитата(zltigo @ Jun 17 2009, 18:20)  Если Вы думаете, что я не держал в руках JTAG-и и не пытался получить от владения ими максимум всего, чего возможно, то это совсем не так  Я думаю, что Вы не держали в руках всех эмуляторов. Например xds510 родного, и xds560. И не пробовали через них работать с ARM. Я вот тоже j-link не держал в руках... И ничего, честно об этом говорю.
|
|
|
|
|
Jun 17 2009, 15:55
|

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

|
Цитата(SM @ Jun 17 2009, 17:43)  Как чего - раза в два-три скорость уменьшится. Но все равно не до 115200  Да, на десятках килогерц это не 115200, это много, много, меньше..... И на сотнях килогерц тоже меньше.... А 115200 это ведь не восьминогих восьмибитовиках речь идет. 921600, которые тянут мои писишные порты редкий ARM не сможет обеспечить. А это при 8 полезных битах на 10bit фрейм и близко не лежало к среднепотолочным несколькомегагерцовым JTAG подключенных к контролерам без навороченых JTAG автоматов, тем более пропихивающим инфу по цепочке. Цитата Этого что, мало что-ли? Это из даташита на циклон-3. Какие же у вас там по жтагам овершоты? Это если вдруг банк от 3.3 питается а не от 2.5 и сделано все в цепочке правильно, буферизировано пороблемы решимы. А так, на кусок кабеля, да на многоточке, да на тех фронтах которые FPGA гонят счастья ввиде 0.6V и близко не будет  . Я ведь не разрешимости проблемы писал, а о, цитирую: Цитата ....и сочетать его с возможно другими имеющимися чипами, что вслучае всяких ныне идущих тугой струей низковольтных и шустрых FPGA себе не левой ногой делается. Цитата(SM @ Jun 17 2009, 17:43)  Я вот тоже j-link не держал в руках... И ничего, честно об этом говорю. А я этот массовый, популярный держал, и не менее честно говорю, что описанного Вами счастья ни с UART, ни тем более с видео там и близко не наблюдается. Тоже информация к размышлению.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 16:31
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 17 2009, 19:55)  Тоже информация к размышлению. Ну в общем да. Окончательно подтверждает то, что при наличии xds-а и CCS-а ни J-link, ни, соответственно, IAR для работы с ним, покупать не стоит. Касаемо скорости - 900 килобит (передача PC -> память таргета) точно получается на TCK в 2 МГц. Может и на меньшей получится, не пробовал. Это какой же ARM не выдержит 2 МГц на TCK? Насчет кабелей, фронтов, и прочего - НЕ ВЕДЕТСЯ речь о кривых эмуляторах, в которых нет согласования с кабелем, нет подстройки уровней под питание таргета, и т.п. Речь идет только о XDS. Про другие, применяемые при отладке АРМ, я просто не знаю. Может они и выжгут ПЛИСину своими сигналами, если мер не предпринимать. Но они-то вообще причем, если они не позволяют осуществить реалтайм-передачу потока данных! И если банк питается от 2.5, то все равно допустим пожизненный овершот до 3.94. Если от 1.8 - то тоже допустим. От питания банка это не зависит. Цитата(zltigo @ Jun 17 2009, 19:55)  А я этот массовый, популярный держал, и не менее честно говорю, что описанного Вами счастья ни с UART, ни тем более с видео там и близко не наблюдается. А я и не удивлен. Описанное поддерживает CCS, а в нем ни J-link, ни вигглер не поддерживаются. Описанное с UART получится на эмуляторах серии xds510, а с видео - xds560. И ни на каких других.
|
|
|
|
|
Jun 17 2009, 16:51
|

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

|
Цитата(SM @ Jun 17 2009, 19:31)  IAR для работы с ним, покупать не стоит. IAR к J-Link имеет отношение опрсредованное. J-Link совершено отдельный продукт работающий через RDI с любым поддерживающим отладчиком. Можете и c другим фаворитом ознакомиться ULINK2, прямо, можно считать от ARM Company. Для него тоже обещают Цитата Performance JTAG Clock <= 10MHz Memory R/W ≈ 28KB/s Flash R/W ≈ 25KB/s Data Trace Streaming 1Mb/s Не похоже на передачу реалтного видео. Совсем. Цитата Касаемо скорости - 900 килобит (передача PC -> память таргета) точно получается на TCK в 2 МГц. Может и на меньшей получится, не пробовал. Прежде, чeм пробовать, как позиционирующий себя в качестве знатока JTAG, может раскажете в сопроождении скольких бит идет по JTAG цепочке из нескольких чипов восьмибитовая посылка "терминала"? Да, да про буфера в JTAG автомате коноролера спасаюшние положение повторять не надо - помню. Цитата От питания банка это не зависит. Сильное заявление ;(
Сообщение отредактировал zltigo - Jun 17 2009, 17:09
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 17:07
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(zltigo @ Jun 17 2009, 17:29)  (а еще встечаются живые поклонники Wigler и подобных  )просто работать не будут. Я живой поклонник Wigler  У меня нет ни одного свободного интерфейса, -все UART заняты(и DBGU тоже) -все SPI заняты - USB занят - CAN тоже - I2C тоже, если его пины не заняты чем-нить другим... предложите мне хоть какой-нить способ отладки...
|
|
|
|
|
Jun 17 2009, 17:12
|

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

|
Цитата(singlskv @ Jun 17 2009, 20:07)  У меня нет ни одного свободного интерфейса Странно, что у Вас, видимо совершенно случайно, оказался контролер не занятый чем-нибудь другим не имеющим отнощения к программам  . Загнав себя себя у угол можете там и сидеть - каждый сам себе Буратино. P.S. Насколько я помню, Вы не понимаете отладки в терминале, c чего это вдруг занитересовались терминалом, да еще эмулирумым через самое убогое железо?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 17:20
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 17 2009, 20:51)  Прежде, чeм пробовать, как позиционирующий себя в качестве знатока JTAG, может раскажете в сопроождении скольких бит идет по JTAG цепочке из нескольких чипов восьмибитовая посылка "терминала"? А кто Вам сказал, что я передаю 8-битовыми посылками? Сами придумали? Я вообще-то сказал передача хост -> память таргета. И изначально вел речь о передаче реалтайм-потоков, а не printf-ов, которые бесплатное приложение. Если подробнее, то я передавал отнюдь не данные терминала, а тестовый аудиосигнал 2 канала 16 бит 16 кГц. А скорость мерял ради интереса, узнать, есть ли запас и сколько. Цитата(zltigo @ Jun 17 2009, 20:51)  Сильное заявление ;( Зато, в отличие от Вашего, соответствующее истине. Уровень до 3.95 вольта на любом входе циклона3 допускается всегда. Даже без питания вообще. Ах, ну да, наверное Вы не читали этот документ, а поверили кому-то на слово... http://www.altera.com/literature/hb/cyc3/cyc3_ciii52001.pdf И таблицу 1-2 в нем... Цитата(zltigo @ Jun 17 2009, 20:51)  Можете и c другим фаворитом ознакомиться ULINK2, ха-ха. Тоже мне фаворит. Это средненький эмулятор навроде xds510. По скорости RTDX вот фаворит http://www.spectrumdigital.com/product_inf...16b5584f56424ce
|
|
|
|
|
Jun 17 2009, 17:30
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(zltigo @ Jun 17 2009, 21:12)  Странно, что у Вас, видимо совершенно случайно, оказался контролер не занятый чем-нибудь другим не имеющим отнощения к программам  . странно другое, иногда я контроллера так и не вижу  , а мой софт, написанный только используя мозг и симуляторы таки работают без всяких правок... Цитата Загнав себя себя у угол можете там и сидеть - каждый сам себе Буратино. Использовав по максимуму возможности платформы на которой работаю...  ...хотя это конечно плохо  Цитата P.S. Насколько я помню, Вы не понимаете отладки в терминале, Кто Вам сказал что я такими возможностями не пользуюсь совсем ? Цитата c чего это вдруг занитересовались терминалом, да еще эмулирумым через самое убогое железо? Убого - не убого... главное в этом вопросе результат, я вот отлаживаюсь при полном отсутствии спец интерфейсов для этого, а Вам слабо... ?
|
|
|
|
|
Jun 17 2009, 17:47
|

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

|
Цитата(SM @ Jun 17 2009, 20:20)  ха-ха. Тоже мне фаворит. Это средненький эмулятор.... Фаворит не по цене, фаворит не по наворотам. Фаворит по применимости в эмбеддерском мире. Реальная такая парочка c J-Link Цитата(singlskv @ Jun 17 2009, 20:30)  Убого - не убого... главное в этом вопросе результат, я вот отлаживаюсь при полном отсутствии спец интерфейсов для этого, а Вам слабо... ?  Мне даже не слабо и без используемого Вами действительно "специнтефейса" ака JTAG, и "спецсофта" ака дебагер, и уж тем более без "спецдевайса" Wiggler (который, кстати, наряду со многими JTAG девайсами у меня имеется )
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 18:24
|

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

|
Цитата(SM @ Jun 17 2009, 21:18)  Да и судя по даташиту в обсуждаемом AT91SAM7 нельзя. Во многих, например тех-же LPC, можно (слишком большая роскошь для малоголих). Переключается, как софтово, так и по наличию подтяжки на пине при старте. JTAG по традиции развожу, но его пины использую и не по прямому назначению, ну там джамперочки аварийных выходов в загрузчик, может какую опциональный светодиодик-кнопочку.....
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 19:06
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(zltigo @ Jun 17 2009, 22:02)  Я все понял и ответил - чем отлаживаться с Wiggler, я лучше начну махать пином изображая 7bit посылки. Флаг в руки и танк на встречу..., однако Вы так и не смогли(не захотели...) ответить на вопрос по отладке при отсутствии свободных интерфейсов... Цитата(zltigo @ Jun 17 2009, 22:17)  Скажите, а к чему Вы это ответвление с "тормознуть прогу" в теме "Дэбаг непрерывного процесса" затеяли? Может хватит? А Вы не умеете отлаживаться при включенных прерываниях ? научить ? и поток окажеться таки непрерывным...(почти...)
|
|
|
|
|
Jun 17 2009, 19:28
|

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

|
Здесь как раз все очень просто, так просто, что проффесионалы леняться даже подсказывать. У USB всегда есть свободные конечные точки (тока не говорите что вы все заняли). Так вот делают композитный дивайс и отлаживают через виртуальный COM порт. Есть также Ethernet, в нем при любых раскладах отладочный канал можно сделать. Даж на якобы занятом UART-е можно сделать отладочный канал путем мультиплексированных протоколов. Короче курите Линукс. Обретете много идей по отладке. Цитата(singlskv @ Jun 17 2009, 22:06)  однако Вы так и не смогли(не захотели...) ответить на вопрос по отладке при отсутствии свободных интерфейсов...
|
|
|
|
|
Jun 17 2009, 19:38
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(AlexandrY @ Jun 17 2009, 23:28)  Здесь как раз все очень просто, правда? Цитата так просто, что проффесионалы леняться даже подсказывать. Кто конкретно ?, Вы уже подсказали... Цитата У USB всегда есть свободные конечные точки (тока не говорите что вы все заняли). Так вот делают композитный дивайс и отлаживают через виртуальный COM порт. для отладки USB интерфейса это особенно ценно... Цитата Есть также Ethernet, в нем при любых раскладах отладочный канал можно сделать. Ethernet пока не подогнали... Цитата Даж на якобы занятом UART-е можно сделать отладочный канал путем мультиплексированных протоколов. предложите разумную схемму мультиплексирования модбаса... Цитата Короче курите Линукс. Обретете много идей по отладке. Спасибо, иногда курю...
|
|
|
|
|
Jun 17 2009, 19:38
|

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

|
Раз уж пошел такой маркетинг, то похвалю и свое. Покупателям проекта ARM-Ultimator передаю бесплатно полный комплект документации на JTAG-USB адаптер Y-Link:  Вот результат контрольного теста скорости работы Y-Link:  Т.е. скорость чтения внешней по отношению к чипу NOR FLASH через JTAG получаем 1.6 Mbit/s в среднем при тактовой JTAG = 12 MHz Ну и также не забываем что этот класс адаптеров работает через RDI, через GDB, через TCP/IP. А также как родной принимается компиляторами IAR, Keil, Multi и т.д. Цитата(coolibin @ Jun 16 2009, 18:10)  Есть участки программы, где я не могу поставить брейкпоинт, т. к. нарушу процесс приема/передачи данных, но все равно хотелось бы посмотреть, что там происходит, например, в программе на Win32 я бы все вывел в лог файл. Как быть с ARM'ом? Вводить дополн. переменные для дебага?
|
|
|
|
|
Jun 17 2009, 19:47
|

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

|
Цитата(singlskv @ Jun 17 2009, 22:38)  для отладки USB интерфейса это особенно ценно... Ну вообще-то, те кто реально работает, а не погоняет условия под "концепцию", интерфейсы банально поднимают по очереди и много вообще желают не на target железе. Цитата предложите разумную схемму мультиплексирования модбаса... А что, каие могут проблемы? Если, кончно, делать а не сразу говорить о "неразумности". На вскидку я даже не могу назвать ни одного интерфейса/протокола на котром сложно изобразить служебный канал.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 19:49
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(zltigo @ Jun 17 2009, 23:38)  Вы же должны понимать, по тону первого поста, что это эти "отсутствующие интерфейсы" было просто для продолжить потрепаться за внутрисхемные отладчики  Хотите схемы посмотреть ? на условиях NDA в привате ? Нету у меня отладочных интерфейсов и все тут... "отладочным" становиться первый отлаженный ну и без JTAG при таком раскладе просто скучно, когда почти все интерфейсы завязаны на все остальные, типа маршрутизация между ними и ее нужно отладить...
|
|
|
|
|
Jun 17 2009, 20:05
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(zltigo @ Jun 17 2009, 23:47)  А что, каие могут проблемы? Если, кончно, делать а не сразу говорить о "неразумности". На вскидку я даже не могу назвать ни одного интерфейса/протокола на котром сложно изобразить служебный канал. Ну и раскажите нам как в сети модбаса организовать какой-нить канал кроме стандарного ? единственная возможность это добавить набор отладочных регистров, ну так и делаеться, только это уже совсем другая схема отладки... Цитата(zltigo @ Jun 17 2009, 23:52)  Кстати, для чисто отладочных целей четкая тенденция переход от мультиплексирования с JTAG на сугубо отладочные однопроводные интерфейсы. ага, и Nexus это практически однопроводной сериальный интерфейс...
|
|
|
|
|
Jun 17 2009, 20:05
|

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

|
Цитата(singlskv @ Jun 17 2009, 22:49)  Хотите схемы посмотреть ? на условиях NDA в привате ? Нет  судя по набору интерфейсов это достаточно не интересно для меня. Цитата Нету у меня отладочных интерфейсов и все тут... "отладочным" становиться первый отлаженный Ну и славненько. Цитата ну и без JTAG при таком раскладе просто скучно, когда почти все интерфейсы завязаны на все остальные, типа маршрутизация между ними и ее нужно отладить... Всю сознательную жизнь так или иначе занимаюсь чисто конкретно кучей каналов и маршрутизацией. Меньше всего мне для этого внутричхемный отладчик нужен  . Анализаторы протоколов, тестера, иммитаторы линий, много чего очень и очень полезного железа есть на свете.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 20:09
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Jun 18 2009, 00:05)  А набор левых адресов - никак? Только не говорите, что все заняты. регистр в модбасе фактически == адрес так и делаю, только еще раз, это другая схема отладки, Как отладить маршрутизацию от всех интерфейсов ко всем ? без отладчика
|
|
|
|
|
Jun 17 2009, 20:17
|

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

|
Цитата(singlskv @ Jun 17 2009, 23:05)  ага, и Nexus это практически однопроводной сериальный интерфейс...  Угу, не видете разницы, между отладкой программ и отладкой ядер процессоров? Тяжело,небось, стало без чего-нибуть хотя-бы типа древнего ETM (http://www.segger.com/jtrace_general.html) роутинг отлаживать  . А время последовательных, причем дейсвительно изначально многофункциональных интерфейсов наступило. C унификацией не очень  , на конкретных производителей западать пока не очень хочется, посему пока на вечно молодом UART.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 17 2009, 20:24
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Jun 18 2009, 00:15)  Я имел в виду Address field в PDU. Фильтруем сразу пакет и все. Тогда, я Вас наверное не понял, я говорил о возможности выводить отладочные значения через уже якобы работающий канал модбаса на каком-нить интерфейсе, только это все легко может поламаться при маршрутизации между интерфейсами, и вот тогда, стоп системмы и чтение состояния интерфейсов работающих с протоколом модбас может дать кучу инфы почему происходит сбой...
|
|
|
|
|
Jun 17 2009, 20:34
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(zltigo @ Jun 18 2009, 00:17)  Угу, не видете разницы, между отладкой программ и отладкой ядер процессоров? Тяжело,небось, стало без чего-нибуть хотя-бы типа древнего ETM (http://www.segger.com/jtrace_general.html) роутинг отлаживать  . А время последовательных, причем дейсвительно изначально многофункциональных интерфейсов наступило. C унификацией не очень  , на конкретных производителей западать пока не очень хочется, посему пока на вечно молодом UART. ну Вы уже как нить определитесь куда меня отнести... то что мне хватает виглера и просто брейкпоинтов не значит что я не знаю как можно пользовать нексус... разговор то о том что без брейкпоинтов иногда бывает очень грустно...
|
|
|
|
|
Jun 17 2009, 20:52
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zltigo @ Jun 18 2009, 00:33)  Не поедставляю, зачем трассировка в реалтайме для "отладки софта". Трассировка в самом реалтайме, разумеется, не нужна. Она нужна, если по результатам анализа данных, поступивших в реалтайме, остановили процессор, и хотят узнать, где он был "тогда". Ну и в общем смысле, посмотреть историю за некоторое время до возникновения ошибочной ситуации, приведшей к останову, так как останов может случиться далеко не в том месте, где произошла ошибка. А к отладке ядер оно отношения не имеет никакого. Да и nexus, собственно, не определяет физические провода, он разрешает и JTAG, и другие порты, думаю, и против чего-нить быстрого сериального, например RapidIO-линка  - всего два провода, а 3 Гбит/с, иметь не будет...
|
|
|
|
|
Jun 18 2009, 06:05
|

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 самый медленный и дубовый компилятор в мире. Цитата(singlskv @ Jun 17 2009, 23:34)  ну Вы уже как нить определитесь куда меня отнести... то что мне хватает виглера и просто брейкпоинтов не значит что я не знаю как можно пользовать нексус... разговор то о том что без брейкпоинтов иногда бывает очень грустно...
|
|
|
|
|
Jun 18 2009, 08:16
|
Гуру
     
Группа: Свой
Сообщений: 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 идут (в бумаге).. закрытый он. Ясно, спасибо, работаем  . По ходу он уже и устарел, нынче RDDI заменил RDI. И он, все же, не в бумаге, но под лицензией.
|
|
|
|
|
Jun 18 2009, 14:02
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(AlexandrY @ Jun 18 2009, 10:05)  Аргумент что все порты заняты как бы не принимаются. Композитный дивайс на USB это классика, и нас применяется повсеместно. Вам не кажется что консоль на композитном USB девайсе выводящая дамп при попадании в дата аборт это несколько оригинальное решение ? Цитата Вот для подъема USB логично применить JTAG. то есть JTAG таки бывает нужен... Цитата Наконец цикл отладки под JTAG просто длинее по времени чем отладка средствами встроенными в сам код. иногда длиннее иногда короче, сильно зависит от ошибки. Цитата Для старта отладки по JTAG нужен длиный период загрузки символьной отладочной информации, а перед этим скомпилить надо с отладочной информацией, А кто мешает компилить всегда с отладочной инфой а шить из параллельно создаваемого BIN ? Цитата а перед этим оптимизацию снизить до 0. Для вменяемой отладки мне хватает снижения до 1 иначе во флеш уже не лезет...
|
|
|
|
|
Jun 18 2009, 14:41
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

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