| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Използване на OpenOCD с два контролера,свързани в JTAG chain http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=11309 |
Страница 1 от 1 |
| Автор: | gicho [ Нед Апр 21, 2013 11:56 am ] |
| Заглавие: | Използване на OpenOCD с два контролера,свързани в JTAG chain |
В едно устройство трябва да сложа два контролера - единия е cortex-m4, другия е по-стар ARM966 ядро. Ако закача двата чипа в chain на JTAG-а, дали имам шанс да конфигурирам OpenOCD-то да се връзва ЕДНОВРЕМЕННО към двата за дебъг? Т.е. през един JTAG интерфейс? Дали ще мога да накарам да пусне два отделни порта за две отделни инстанции на gdb-то, че да дебъгвам и двата процесора едновременно? Засега мисля да заложа на изпитания вариант с отделно изведени JTAG-ци, но любопитството ме човърка да разбера дали принципно е възможно, т.е. някой успявал ли е? |
|
| Автор: | ДедоБоре [ Нед Апр 21, 2013 12:02 pm ] |
| Заглавие: | Re: Използване на OpenOCD с два контролера,свързани в JTAG c |
не. когато са навързани във верига, само един е активен. другите са в състояние 'disabled'. по веригата може да има само един 'enabled' има смисъл да правиш верига, ако програмираш много чипове. за дебъгване не става. |
|
| Автор: | t_i_t_o [ Нед Апр 21, 2013 12:42 pm ] |
| Заглавие: | Re: Използване на OpenOCD с два контролера,свързани в JTAG c |
По принцип става, зависи софта дали го поддържа, в случая опеноцд. По лесния вариант е когато един тип. |
|
| Автор: | tgi [ Нед Апр 21, 2013 12:56 pm ] |
| Заглавие: | Re: Използване на OpenOCD с два контролера,свързани в JTAG c |
Най-вероятно зависи само от софтуера но не непременно. Нищо не пречи на софтуера да пуска а тоя а оня в bypass mode (по-скоро да вади един от всичките по JTAG веригата от bypass mode) и да говори с активния; въпросът е дали минаването към bypass mode няма да разбута нещо насред диалога вътре в някой от процесорите. Не би трябвало де, но питанката дали не се случва преди човек да почне да прави платка е повече от основателна, а и колко от тия интерфейси са публично документирани. |
|
| Автор: | miro_atc [ Нед Апр 21, 2013 2:21 pm ] | |||||||||
| Заглавие: | Re: Използване на OpenOCD с два контролера,свързани в JTAG c | |||||||||
На теория трябва да стане... STM-а така или иначе вътре е 2-3 тап-а доколкото си спомням. Абе сигурност ОЦД-то може да работи с много тапове - гаранция! За мултикура не съм 100% сигурен ама като гледам нета бачка, даже се оплакват, че не можело в една сесия ами трябвало да се пускат различни gdb сесии... Сега дали ще хукне на практика обаче е друга бира. Според мен ако ресетите не се сбият има голям шанс да тръгне. Но единственият смисъл от подобно упражение е да се улесни производството, демек всичко да става с едно закачане на конектор... За дебъгване обаче един чейн ще е супер неудобен. Да не говорим че куртекса в jtag режим го скопяваш и няма trace. С две думи мнението ми е твърдо "нье.." Все пак ако държиш може да ги предвидиш и двата варианта. Предвиди си втори конектор (който може да не се насища) предвиди си шунт за tdo-tdi и прекъсване на веригата между двата чепа. Може с буфери, а може и с място за джъмпери или направо рейка 2*5 която по схема е окъсена и няма нужда да се насища. Така за платките дето искаш да дебъгваш с един скалпел прекъсваш пистите, по средата на рейката и слагаш шунта. Псле може да ги възстановиш като сложиш рейка с джъмпери... |
||||||||||
| Автор: | gicho [ Нед Апр 21, 2013 6:27 pm ] | |||||||||
| Заглавие: | Re: Използване на OpenOCD с два контролера,свързани в JTAG c | |||||||||
Благодаря за коментарите. Със сигурност платката няма да я правя на chain докато не видя с очите си дали може. А ако видя да може, ще трябва доста да тествам докато се реша да го правя. Това с disabled и enabled също ми направи впечатление. ОпънОЦД-то прави разлика между видовете TAP-ове, т.е. има си определен вид за "кор", друг за флаш контролер и т.н. Така че е много вероятно да има ограничението само един ТАП от вид "кор" да е активен. Ако го поддържа, ще трябва да има начин да се пусне на отделни телнет/gdb портове. Иначе няма да ми свърши работа. А то май няма такава възможност.
Имаш ли някой линк в който да има нещо по темата, т.е. оплакванията, примерни конфигурации? |
||||||||||
| Автор: | miro_atc [ Нед Апр 21, 2013 7:49 pm ] |
| Заглавие: | Re: Използване на OpenOCD с два контролера,свързани в JTAG c |
Не помня линкове, просто пуснах да видя какво ще каже чичко гугъл на тема мултикур, че и на мен ми стана интересно. Предполагам вече си го питал и ти Иначе гарантирано само един тап се ползва в даден момент. Просто смяната на стейтовете има странични ефекти, най-малкото не винаги се ползва един и същ път. Примерно шифтваш един регистър и в зависимост от старата стойност може да го ъпдейтнеш с новата или да не ъпдейтнеш, а просто да се върнеш да го изчетеш пак (полиране). Няма как тая логика да работи с повече от един тап, защото стейтовете се сменят на всички. Ако направиш UPDATE всички ще ъпдейтнат, демек ще ти се омажат. Освен ако наистина не искаш да ги клатиш по един и същ начин. Но в твоя случай са различни ядра и това не става. Така че ако работи, ще работи с изчакване и няма да има връзка между двете сесии. Примерно едната слага брейкпоинт и отива в run idle. Другата получава управлението, избира си нейния тап (останалите в байпас). Прави каквото прави и освобождава чейна... Между другото не е задължително сесиите да са на различни портове. То ако работи ще работи и на един и същ порт. Въпросът е за къф чеп ти е... ама ти си знаеш. |
|
| Автор: | gicho [ Пон Апр 22, 2013 7:11 am ] |
| Заглавие: | Re: Използване на OpenOCD с два контролера,свързани в JTAG c |
Не знам при арм-овете как е, но такава постановка си работи като пушка на TI в техния Code Composer (за DSP), и то от доста години насам - паралелен дебъг му викат. Там пускат отделни инстанции на средата. А дали J-Link и подобните имат нещо в тази насока? |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|