Отговори на тема  [ 8 мнения ] 
Използване на OpenOCD с два контролера,свързани в JTAG chain 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Използване на OpenOCD с два контролера,свързани в JTAG chain
В едно устройство трябва да сложа два контролера - единия е cortex-m4, другия е по-стар ARM966 ядро.
Ако закача двата чипа в chain на JTAG-а, дали имам шанс да конфигурирам OpenOCD-то да се връзва ЕДНОВРЕМЕННО към двата за дебъг? Т.е. през един JTAG интерфейс?
Дали ще мога да накарам да пусне два отделни порта за две отделни инстанции на gdb-то, че да дебъгвам и двата процесора едновременно?
Засега мисля да заложа на изпитания вариант с отделно изведени JTAG-ци, но любопитството ме човърка да разбера дали принципно е възможно, т.е. някой успявал ли е?


Нед Апр 21, 2013 11:56 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение Re: Използване на OpenOCD с два контролера,свързани в JTAG c
не.
когато са навързани във верига, само един е активен. другите са в състояние 'disabled'. по веригата може да има само един 'enabled'
има смисъл да правиш верига, ако програмираш много чипове. за дебъгване не става.


Нед Апр 21, 2013 12:02 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Вто Окт 25, 2005 10:54 am
Мнения: 896
Мнение Re: Използване на OpenOCD с два контролера,свързани в JTAG c
По принцип става, зависи софта дали го поддържа, в случая опеноцд. По лесния вариант е когато един тип.


Нед Апр 21, 2013 12:42 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Използване на OpenOCD с два контролера,свързани в JTAG c
Най-вероятно зависи само от софтуера но не непременно.
Нищо не пречи на софтуера да пуска а тоя а оня в bypass mode (по-скоро да вади един
от всичките по JTAG веригата от bypass mode) и да говори с активния; въпросът е
дали минаването към bypass mode няма да разбута нещо насред диалога вътре
в някой от процесорите.
Не би трябвало де, но питанката дали не се случва преди човек да почне да прави
платка е повече от основателна, а и колко от тия интерфейси са публично
документирани.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Нед Апр 21, 2013 12:56 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Използване на OpenOCD с два контролера,свързани в JTAG c
gicho написа:
В едно устройство трябва да сложа два контролера - единия е cortex-m4, другия е по-стар ARM966 ядро.
Ако закача двата чипа в chain на JTAG-а, дали имам шанс да конфигурирам OpenOCD-то да се връзва ЕДНОВРЕМЕННО към двата за дебъг? Т.е. през един JTAG интерфейс?


На теория трябва да стане... STM-а така или иначе вътре е 2-3 тап-а доколкото си спомням. Абе сигурност ОЦД-то може да работи с много тапове - гаранция! За мултикура не съм 100% сигурен ама като гледам нета бачка, даже се оплакват, че не можело в една сесия ами трябвало да се пускат различни gdb сесии...

Сега дали ще хукне на практика обаче е друга бира. Според мен ако ресетите не се сбият има голям шанс да тръгне. Но единственият смисъл от подобно упражение е да се улесни производството, демек всичко да става с едно закачане на конектор...
За дебъгване обаче един чейн ще е супер неудобен. Да не говорим че куртекса в jtag режим го скопяваш и няма trace. С две думи мнението ми е твърдо "нье.." :-)

Все пак ако държиш може да ги предвидиш и двата варианта. Предвиди си втори конектор (който може да не се насища) предвиди си шунт за tdo-tdi и прекъсване на веригата между двата чепа. Може с буфери, а може и с място за джъмпери или направо рейка 2*5 която по схема е окъсена и няма нужда да се насища.
Така за платките дето искаш да дебъгваш с един скалпел прекъсваш пистите, по средата на рейката и слагаш шунта. Псле може да ги възстановиш като сложиш рейка с джъмпери...


Нед Апр 21, 2013 2:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: Използване на OpenOCD с два контролера,свързани в JTAG c
Благодаря за коментарите. Със сигурност платката няма да я правя на chain докато не видя с очите си дали може. А ако видя да може, ще трябва доста да тествам докато се реша да го правя.
Това с disabled и enabled също ми направи впечатление. ОпънОЦД-то прави разлика между видовете TAP-ове, т.е. има си определен вид за "кор", друг за флаш контролер и т.н. Така че е много вероятно да има ограничението само един ТАП от вид "кор" да е активен.
Ако го поддържа, ще трябва да има начин да се пусне на отделни телнет/gdb портове. Иначе няма да ми свърши работа. А то май няма такава възможност.
Цитат:
За мултикура не съм 100% сигурен ама като гледам нета бачка, даже се оплакват, че не можело в една сесия ами трябвало да се пускат различни gdb сесии...

Имаш ли някой линк в който да има нещо по темата, т.е. оплакванията, примерни конфигурации?


Нед Апр 21, 2013 6:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Използване на OpenOCD с два контролера,свързани в JTAG c
Не помня линкове, просто пуснах да видя какво ще каже чичко гугъл на тема мултикур, че и на мен ми стана интересно. Предполагам вече си го питал и ти :-)

Иначе гарантирано само един тап се ползва в даден момент. Просто смяната на стейтовете има странични ефекти, най-малкото не винаги се ползва един и същ път. Примерно шифтваш един регистър и в зависимост от старата стойност може да го ъпдейтнеш с новата или да не ъпдейтнеш, а просто да се върнеш да го изчетеш пак (полиране). Няма как тая логика да работи с повече от един тап, защото стейтовете се сменят на всички. Ако направиш UPDATE всички ще ъпдейтнат, демек ще ти се омажат. Освен ако наистина не искаш да ги клатиш по един и същ начин. Но в твоя случай са различни ядра и това не става.
Така че ако работи, ще работи с изчакване и няма да има връзка между двете сесии. Примерно едната слага брейкпоинт и отива в run idle. Другата получава управлението, избира си нейния тап (останалите в байпас). Прави каквото прави и освобождава чейна...
Между другото не е задължително сесиите да са на различни портове. То ако работи ще работи и на един и същ порт. Въпросът е за къф чеп ти е... ама ти си знаеш.


Нед Апр 21, 2013 7:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: Използване на OpenOCD с два контролера,свързани в JTAG c
Не знам при арм-овете как е, но такава постановка си работи като пушка на TI в техния Code Composer (за DSP), и то от доста години насам - паралелен дебъг му викат. Там пускат отделни инстанции на средата.
А дали J-Link и подобните имат нещо в тази насока?


Пон Апр 22, 2013 7:11 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 8 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни