Перейти к содержанию
    

Плата olimex lpc2106. Mt-link V.5. Все дрова поставил, соотвественно инструкции для j-link. dll использую 3.48 от DASM'a, недавно выложенные здесь.

Отладка в Кроссворкс работает без проблем.

Но есть проблемы при отладке через rdi в Keil. Выдается уже замечанная здесь ошибка Write to IR: Expected 0x1, got 0x7 (TAP command: 2) @ Off 0x5.

Путем работы с консольной прогой Jlinkarm выяснил, что проблема - некоректная отработка комманды на софр ресест. Когда жму r (комманда reset) - процессор отваливается и установить с ним связь можно только выдернув из usb mt-link и включив обратно. Пробовал менять скорость - не помогате, пробывал ставить adaptive clocking (вроде lpc2106 умеет это, по крайней мере Jlinkarm это сказал). Пробывал менять usb шнур -ничего не помогает.

 

Если в настройках rdi драйвера, отключить reset процессора, то прошивка заливается, но сразу же на автомате выполняется код до конца, причем breakpoint'ы не срабатывают.

 

и еще - почему-то все время горит зеленый светодиод - busy, а красный ready изредка моргает. При общении с процессором красный начинает моргать активнее. Такое ощющение, что при сборке напутали и должно быть наоборот. Или так задамано и я не прав?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такое ощющение, что при сборке напутали и должно быть наоборот. Или так задамано и я не прав?

Напутали при маркировке светодиодов.

На остальные вопросы ответов нет. Свою борьбу уже описывал :(.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Светодиоды да, напутал. Но вроде никого не напрягало. С reset - ом сложнее. Какой тип reset стоит ? Там их несколько.. Вообще - 2106 - не самый приятный проц по JTAG , у меня он тоже то так, то этак работал. С новыми сериями все намного проще. Ну чтобы меня совсем ногами не принали, напомню, что все идущие сейчас линки - полные аналоги, только тип выходного буфера иной. Поставьте hardware reset и задержку 250 мс после него. Впрочем не уверен что поможет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Светодиоды да, напутал. Но вроде никого не напрягало. С reset - ом сложнее. Какой тип reset стоит ? Там их несколько.. Вообще - 2106 - не самый приятный проц по JTAG , у меня он тоже то так, то этак работал. С новыми сериями все намного проще. Ну чтобы меня совсем ногами не принали, напомню, что все идущие сейчас линки - полные аналоги, только тип выходного буфера иной. Поставьте hardware reset и задержку 250 мс после него. Впрочем не уверен что поможет

Собственно пробывал все ресеты. С задержками особо не игрался, так как понятия не имею зачем они нужны. По идее ведь jtag должен перехватить работу процессора как можно скорее, пока тот не успел натворить всякого непонятного.

Вообще решение есть, ведь кроссворку удается рестартануть проц. Попробую покапаться в его функциях инициализации jlink, может там найду чего-нить.

Кстати может эта инфа поможет (сам я про аппаратное исполнение jtag мало что понимаю):

До рестарта процессора на ноге tRST=1, это пишет jlinkarm, а после ресета, он пишет, что находит не тот уровень напряжения на этой ноге (точно не помню, но по-моему находит НИЗКИЙ, а хочет ВЫСОКИЙ, или наоборот, но в общем не тот уровень) и просит проверить hardware.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а может его и правда проверить :-) Схемку подключения не покажите ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а может его и правда проверить :-) Схемку подключения не покажите ?

Вот:

http://olimex.com/dev/images/lpc-p2106-sch.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На ресете RC с постоянной времени 1мс.

Т.е. после снятия RST проц воспримет это снятие ресета через 1-3мс. (где там эта граница между 0.8 и 2В). Мож тут собачка порылась?

В CW TargetInterface.resetAndStop(50);

Кстати как народ поступает с теми-же супервизорами питания/ресета которые генерят ресет например по 100мс.?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем целый день мучился с отладчиком, а "воз и ныне там".

Проверил дорожки на плате - hardware problem нету, все разведено правильно и соотествует схеме. Обрывов дороже нету, о чем можно убедиться работой кросворка.

 

Проект кроссворка содержит следующие функции инициализации jtag:

function LPC210X_Reset()

{

TargetInterface.setNSRST(0);

TargetInterface.setNSRST(1);

TargetInterface.delay(100);

TargetInterface.trst();

TargetInterface.setICEBreakerBreakpoint(0, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x100, 0xF7);

TargetInterface.waitForDebugState(1000);

TargetInterface.getICEBreakerRegister(5); /* Clear out Debug Comms Data */

TargetInterface.pokeWord(0xE0000000, 0); /* Reset Watchdog */

TargetInterface.pokeWord(0xE0028008, 0); /* Reset IODIR */

TargetInterface.pokeWord(0xE002C000, 0); /* Reset PINSEL0 */

TargetInterface.pokeWord(0xE01FC000, 0); /* Reset MAMCR */

TargetInterface.pokeWord(0xE01FC080, 0); /* Reset PLL */

TargetInterface.pokeWord(0xE01FC08C, 0xAA); /* Feed PLL */

TargetInterface.pokeWord(0xE01FC08C, 0x55); /* Feed PLL */

TargetInterface.pokeWord(0xFFFFF014, 0xFFFFFFFF); /* Disable all interrupts */

TargetInterface.setICEBreakerBreakpoint(0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000, 0x00);

}

Я весь инет перерыл пытась найти аналогичный .setup файл для jlinkrdi под lpc2106. Написал бы и сам, но не увидел в коммандах макрофайла аналога вот этой функции: TargetInterface.trst(); - сброс TAP, кажется мне тут собака порылась.

Либо же нужно отключать wdt, pll и прочее...

Обидно в общем, мучился с вигглером, купил девайс вроде качественный, результат нулевой. Причем проблема эта с Bad jtag communication действительно не mt-link, a j-link и хоть бы кто толковое что про это сказал. Все англоязычные источники облазил.

 

Кстати когда связь устанавливается и все хоршо, состояние пинов следующее:

TCK=1 TDI=0 TDO=0 TMS=0 TRES=1 TRST=1

А после ресета, следующее:

J-Link>rx 250

Reset delay: 250 ms

Reset type NORMAL: Using RESET pin, halting CPU after Reset

Info: Resetting target using RESET pin

Info: Halting CPU core

Info: Resetting target using RESET pin

Info: Halting CPU core

 

****** Error: Received 0xFFFFFFFF as core Id. No communication with core.

Bad JTAG communication: Write to IR: Expected 0x1, got 0x7 (TAP Command : 2) @ O

ff 0x5.

 

J-Link>st

VTarget=3.293V

ITarget=0mA

TCK=1 TDI=0 TDO=1 TMS=0 TRES=1 TRST=1

 

то есть активна линия TDO=1, что это может значить? Хорошего или плохого?

 

Надежда на решение проблемы тает с каждым часом :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Bad JTAG communication: Write to IR: Expected 0x1, got 0x7 (TAP Command : 2) @ Off 0x5.
Похожее сообщение мне выдает ИАР если в программе запускается WatchDog. Естественно, что пока ядро стоит на точке останова собака срабатывает и переводит его в неожиданное для отладчика состояние. Приходится на время отладки собаку отключать. Ваш кристалл точно чистый или в нем может быть какая-то старая прошивка с инициализацией собаки? Может попробовать его включить в режиме загрузчика (P0.14 = 0)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заказал недавно MT-LINK новой версии.

Проблемы очень похожие на описанные автором поста.

При работе с новыми драйверами RDI равно как и с J-LINK от IAR наблюдается нижеследующее:

 

Процесс загрузки начинается с вывода окна сообщения

There were warnings during download, see log Window

и программа сразу идет в работу. При остановке отладки (пауза) окно CSTACK переполнено, да

Wed Apr 04 15:15:44 2007: Warning: Target inconsistency detected in Memory range 0x00008114-0x00008197
Wed Apr 04 15:15:44 2007: Warning: Target inconsistency detected in Memory range 0x00008000-0x0000806F
Wed Apr 04 15:15:44 2007: Warning: Target inconsistency detected in Memory range 0x00008198-0x000081BB
Wed Apr 04 15:15:44 2007: Warning: Target inconsistency detected in Memory range 0x00008220-0x0000822B

 

Если убрать галочку Run to Main, то отладчик останавливается на __programm_start но все остальное также.

Как с этим бороться ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какой процессор ? Почему флеш стоит с адресов 0x8000 ? Очень похоже на дефолтные настройки Keil уж не помню для какого дефолтного проца. Глядите примеры в Keil

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какой процессор ? Почему флеш стоит с адресов 0x8000 ? Очень похоже на дефолтные настройки Keil уж не помню для какого дефолтного проца.
Угу. Только не кейл а ИАР, настройки дефолтные из lnkarm.xcl Это раз. Второе - скорее всего не включен собственно флеш-загрузчик (Проверить тип процессора в Project->Options->GeneralOptions->processor variant и включение загрузчика в Project->Options->Debugger->Download).

Вот тут про настройку проекта подробнее

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу. Только не кейл а ИАР, настройки дефолтные из lnkarm.xcl Это раз. Второе - скорее всего не включен собственно флеш-загрузчик (Проверить тип процессора в Project->Options->GeneralOptions->processor variant и включение загрузчика в Project->Options->Debugger->Download).

Вот тут про настройку проекта подробнее

Да, к сожалению, а может и к счастью, у меня IAR. Проц LPC2294 но демоборде от Olimex

Спасибо за ссылку, одна проблема решилась. Стало работать при отладке кода в RAM.

для отладки во flash указал phytec_pcm023_iflash.xcl ну и далее по пунктам 6.1 и 7.2.

Проблемы со CSTACK остались.

Wed Apr 04 17:00:08 2007: Sign on message from RDI driver:
Segger JLink ARM JTAG
Wed Apr 04 17:00:08 2007: 10641 bytes downloaded and verified (26.58 Kbytes/sec)
Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x00000154-0x000001D7
Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x00000040-0x000000AF
Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x000001D8-0x000001FB
Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x0000025C-0x00000267
Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x000001FC-0x0000024B
Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected at Memory address 0x00000020
Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x000000B0-0x00000153
Wed Apr 04 17:00:08 2007: Warning: Target inconsistency detected in Memory range 0x0000024C-0x0000025B
Wed Apr 04 17:00:08 2007: There were warnings during download, see Log Window
Wed Apr 04 17:00:10 2007: Loaded debugee: E:\PJT\asa\C-Soft\Debug\Exe\H2294.d79
Wed Apr 04 17:00:10 2007: Target reset
Wed Apr 04 17:00:10 2007: A breakpoint has been set on a SWI instruction at 0x000001D8
The interrupt handler reading the SWI number field, will read incorrect value
Avoid setting breakpoints on these instructions
Wed Apr 04 17:00:12 2007: The stack 'CSTACK' is filled to 100% (8192 bytes used out of 8192). The warning threshold is set to 90%.
Wed Apr 04 17:00:12 2007: The stack pointer for stack 'IRQ_STACK' (currently 0x40001310) is outside the stack range (0x40002000 to 0x40002100)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RDI настраивается отдельно - там надо тип процессора выставить и частоту.

Кстати что-то не припомню там таких сообщений. Загрузку флеш в опциях САМОГО IAR - отключить. Но выставить галки Flash download в RDI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RDI настраивается отдельно - там надо тип процессора выставить и частоту.

а там это где ?

и даже если переключиться на J_LINK

результат неизменный

Wed Apr 04 17:25:48 2007: Logging to file: C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\ARM\cspycomm.log
Wed Apr 04 17:25:48 2007: DLL version: V3.68b, compiled Mar 30 2007 16:52:49
Wed Apr 04 17:25:48 2007: Firmware: J-Link compiled Mar 22 2007 16:08:22 ARM Rev.5
Wed Apr 04 17:25:48 2007: JTAG speed is initially set to: 32 kHz
Wed Apr 04 17:25:48 2007: Halting CPU core
Wed Apr 04 17:25:48 2007: Software reset was performed
Wed Apr 04 17:25:48 2007: Initial reset was performed
Wed Apr 04 17:25:48 2007: J-Link found 1 JTAG device. ARM core Id: 4F1F0F0F(ARM7)
Wed Apr 04 17:25:48 2007: Device at TAP0 selected
Wed Apr 04 17:25:48 2007: RTCK reaction time is approx. 126ns
Wed Apr 04 17:25:48 2007: Auto JTAG speed: Adaptive
Wed Apr 04 17:25:48 2007: 560 bytes downloaded and verified (1.46 Kbytes/sec)
Wed Apr 04 17:25:48 2007: Warning: 
Verify error at address 0x00000154, target byte: 0x00, byte in file: 0x01
Wed Apr 04 17:25:48 2007: Warning: 
Verify error at address 0x00000155, target byte: 0x20, byte in file: 0x00
Wed Apr 04 17:25:48 2007: Warning: 
Verify error at address 0x00000156, target byte: 0x00, byte in file: 0x50

причем в стеке лежит в основном CDCDCDCDCDCDCDCD ....

 

Нашел по поводу RDI? настроил под свой процессор. Вроде все нормально, тока не работает код :)

причем код самый простейший - мограние диодом.

Пошел искать что не так ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...