Два контроллера at91rm9200 установлены на одной плате. По отдельности они оба в IARe нормально работают. Возникла необходимость управлять ими обоими через один JTAG. Сделан кабель, в котором образована цепочка: сигнал TDI с JTAGa приходит на первый (ближний) ARM, TDO с него проходит на второй ARM на TDI, и TDO со второго ARMa возвращается на JTAG. Остальные сигналы идут параллельно на оба контроллера. В IAR ближний контроллер указан как TAP0, дальний - как TAP1.
Однако оказалось, что работать удается только с ближним контроллером. Т.е. при работе с дальним контроллером IAR рапортует (в DEBUG LOGe) что "Device at TAP1 selected", но программа грузится и выполняется на ближнем ARMe (который TAP0). Переключение кабеля не помогает - всегда работает ближайший контроллер. MT-Link дает такой же результат как и J-Link. Из фактов, возможно имеющих значение, обнаружено некоторое различие в отчетах jlink.exe и IAR. Jlink.exe сообщает: "Found 2 JTAG devices, Total IRlen=8: Id of device #1: 0x05B0203F, Id of device #2: 0x05B0203F". В Debug Log IARa выводится: "J-link found 2 JTAG devices. ARM core Id: 05B0203F(ARM9), ARM core Id: 00000000(ARM9)." Из этого предполагаю, что что-то не так с IARом, но что делать - непонятно. Кто с такой проблемой сталкивался - помогите разобраться.
|