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

 
 
 
Reply to this topicStart new topic
> Вывод через SWO без установления "соединения", Возможно ли?
Dr.Alex
сообщение Nov 3 2016, 21:24
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Соответственно тогда нужна и прога (для ж-линка или ст-линка), которая отображает то что валится из контрошки по SWO.

Сеггеровский SWO Viewer, наскока я вижу, хочет сначала прицепиться к таргету зачем-то, а потом наверное начнёт работать.
А зачем это надо, если SWO всё равно однонаправленный?
Казалось бы, лови всё что валится, как по UARTу, и всё.
Go to the top of the page
 
+Quote Post
RusikOk
сообщение Nov 3 2016, 22:34
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 14-01-12
Пользователь №: 69 438



не могу утверждать что дело не в моих руках но у меня при выводе через SWO без программатора контроллер стопорится
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 4 2016, 10:46
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Dr.Alex @ Nov 4 2016, 02:24) *
Сеггеровский SWO Viewer, наскока я вижу, хочет сначала прицепиться к таргету зачем-то, а потом наверное начнёт работать.

Разве? А я и не заметил - подцеплял вживую (LPC1788), ничего не стопорилось, вывод был. Главное, частоту правильную указать.
Правда, гуишный падал постоянно, консольный, вроде, дольше жил.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Nov 4 2016, 11:18
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Если что - вот из CMSIS функция выдачи символа

Код
/**
  \brief   ITM Send Character
  \details Transmits a character via the ITM channel 0, and
           \li Just returns when no debugger is connected that has booked the output.
           \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted.
  \param [in]     ch  Character to transmit.
  \returns            Character to transmit.
*/
__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
{
  if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) &&      /* ITM enabled */
      ((ITM->TER & 1UL               ) != 0UL)   )     /* ITM Port #0 enabled */
  {
    while (ITM->PORT[0U].u32 == 0UL)
    {
      __NOP();
    }
    ITM->PORT[0U].u8 = (uint8_t)ch;
  }
  return (ch);
}
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Nov 4 2016, 12:55
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



Цитата(Dr.Alex @ Nov 4 2016, 04:24) *
Сеггеровский SWO Viewer, наскока я вижу, хочет сначала прицепиться к таргету зачем-то, а потом наверное начнёт работать.

Чтобы задействовать тактирование, и вписаться в 5% допуска. Иначе частота может получится любой, и детект на приёмной стороне будет намного сложнее.
Мне просто интересно, зачем внезапно понадобился SWO в автономном режиме? На чипе просто дофига аппаратных интерфейсов, нет - будем ногодрыгать через swo.

Сообщение отредактировал AVI-crak - Nov 4 2016, 13:00
Go to the top of the page
 
+Quote Post
RusikOk
сообщение Nov 4 2016, 13:53
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 14-01-12
Пользователь №: 69 438



Цитата(AVI-crak @ Nov 4 2016, 15:55) *
Мне просто интересно, зачем внезапно понадобился SWO в автономном режиме? На чипе просто дофига аппаратных интерфейсов, нет - будем ногодрыгать через swo.
чтобы не разводить отдельно. SWO часто уже разведен на разъем программатора. да и иногда интересно в терминале понаблюдать как ведет себя железка
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Nov 4 2016, 14:30
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



И убить статикой нормально работающий дорогой девайс? увольте.
Если хочется снимать логи, для этого есть куча возможностей. Начиная от варта с оптической развязкой, заканчивая запаянным на пузо чипом esp8266, без платки он занимает минимальное пространство. А мой последний логгер общался через вч пищалку, потому как висел на шине в десятки киловольт (буквально).

Тут прикол в том что девайс может управлять массивной железякой, которая при наличии движения/вращения - может натворить не мало бед в случае сбоя основного чипа. Сломанные резцы, отключившийся насос, вентиляция не вовремя, или даже просто внезапно сработавшее силовое реле может стоить чей-то жизни.
Когда ваша печатка с мк начинает реально управлять внешним оборудованием, доступ к ней должен быть ограничен.
Это как замок на трансформаторной будке, все знают что может убить - но без замка идиоты всё-же находятся.
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Nov 4 2016, 14:49
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(AVI-crak @ Nov 4 2016, 15:55) *
На чипе просто дофига аппаратных интерфейсов, нет - будем ногодрыгать через swo.


Вам нужно ногодрыгать, вы и ногодрыгайте, и не надо приписывать своих глупостей мне.

ITM это и есть стандартизованный аппаратный интерфейс, и мой вопрос именно об его использовании по назначению.

Он уже выведен на разъём, а на столе уже лежит ж-линк. Почему я должен изобретать велосипед?

Для остальных пишу по существу:

Некоторое изучение темы показало, что ARM немного облажались и не предусмотрели возможности ПРОГРАММНО переключить ITM из режима JTAG в режим SWD/SWO, для этого якобы надо немножко подёргать лапами JTAG извне.
Пруфлинки:

https://my.st.com/public/STe2ecommunities/m...urrentviews=114

https://community.arm.com/thread/2519

Но и с этим полной ясности нет.

Вообще же вопрос проистекает из желания выводить отладочные сообщения стандартными средствАми в случае когда контроллер бОльшую часть времени выключен вообще, и лишь изредка включается на считанные миллисекунды.
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Nov 5 2016, 13:24
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



В моём понимании "выключен" - снято питание.
Режим сон - есть питание, выключена периферия и остановлено ядро. Если отключить ещё и память (нет смысла) - то для отладочного интерфейса остаются регистры ядра.
Режим стоп - остановлено ядро (потребление почти ноль), работает необходимая периферия. Из этого режима можно отладочным интерфейсом читать память. Насколько я верно понял - вам именно это и нужно.
Есть выход, http://www.emblocks.com/forum/viewtopic.ph...89282df567ec09e
Там всё просто. Есть буфер - который заполняется сообщениями от системы, есно когда она работает. Отладочный интерфейс читает этот буфер с максимальной скоростью без остановки ядра, как обычную память. Общаться можно в обе стороны. Этот режим отладки идеально подходит для систем реального времени.

Хотя мне проще задействовать четыре контакта для варта, и через оптику.

Насчёт ногодрыга, отправка сообщений через SWO - лишь частично аппаратная, проверку условий необходимо выполнять ручным способом. Это означает что таск работающий с отправкой сообщений - будет выполняться со скоростью физического порта.
Тот-же варт можно пнуть через дма, и заняться другими делами.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 5 2016, 21:53
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(AVI-crak @ Nov 5 2016, 18:24) *
Насчёт ногодрыга, отправка сообщений через SWO - лишь частично аппаратная, проверку условий необходимо выполнять ручным способом. Это означает что таск работающий с отправкой сообщений - будет выполняться со скоростью физического порта.
Тот-же варт можно пнуть через дма, и заняться другими делами.

1. Скорость SWO, как правило, выше чем скорость UART.
2. Бывает так, что все UARTы заняты...
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 14 2016, 13:44
Сообщение #11


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



https://github.com/yurovsky/swo-tracer


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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