Karl 0 6 декабря, 2006 Опубликовано 6 декабря, 2006 · Жалоба Запускаю иаровский демо-проект. При отладке из ОЗУ вроде работает. При отладке во флэшь в самом конце файла Cstartup.s выскакивает ошибка: J-Link RDI Error Read memory error @ addres 0x00000000, word acces: Memory access timeout. При выходе из режима отладки выдает следующую ошибку: Fatal error WinRdi Clear Break Failed [Rdi Error 145] Tried to clear a non existing a breacpoint/watchpoint. Что не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Karl 0 14 декабря, 2006 Опубликовано 14 декабря, 2006 · Жалоба Вопросов стало больше: 1) часто при запуске отладки все вроде прошивается, но по нулевому адресу стоит неверный код (видно в окне дизассемблера). В результате получается то, что описано выше. Лечится перезапуском отладчика, иногда приходится дергать питание. В чем проблема? 2) После прошивки контроллера и выключения/включения программа работает только в том случае, если кабель житага не был отключен. Если кабель отключить - программа запускаться перестает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NikolaKirov 0 16 декабря, 2006 Опубликовано 16 декабря, 2006 · Жалоба Для первой проблем попробуите поставит в mac фаил для дебугрера execUserReset() { __message "-------------------------------Periferial reset ----------------------------------"; __writeMemory32(0xA5000004,0xFFFFFD00,"Memory"); } Ето делает ресет периферии перед каждой запуске дебагера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Karl 0 18 декабря, 2006 Опубликовано 18 декабря, 2006 · Жалоба Для первой проблем попробуите поставит в mac фаил для дебугрера execUserReset() { __message "-------------------------------Periferial reset ----------------------------------"; __writeMemory32(0xA5000004,0xFFFFFD00,"Memory"); } Ето делает ресет периферии перед каждой запуске дебагера. Спасибо, попробую. По второй проблеме: как показали опыты, после прошивки по адресу 0х100000 действительно присутствует код и программа работает. Включение/ выключение питания при подключенном МТлинке ни к чему плохому не приводит - после включения программа начинает работать. Но если отключить житаг и дернуть питание - с адреса 0х100000 появляются одни 0хFF - программа стирается. Почему это может происходить? И еще - можно ли с помощью житага проверять и устанавливать биты настройки (в частности отвечающий за ремап) и если да, то как? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 18 декабря, 2006 Опубликовано 18 декабря, 2006 · Жалоба Для первой проблем попробуите поставит в mac фаил для дебугрера execUserReset() { __message "-------------------------------Periferial reset ----------------------------------"; __writeMemory32(0xA5000004,0xFFFFFD00,"Memory"); } Ето делает ресет периферии перед каждой запуске дебагера. Не работает. Во всяком случае с IAR4.30A - "Memory access timed out @ 0x00000010 -> JTAG speed too high?" Правда пользую MT-Link без RDI. Какая у вас версия IAR? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NikolaKirov 0 18 декабря, 2006 Опубликовано 18 декабря, 2006 · Жалоба Ето не зависит из типа дебугера ни от версии. Я давано ползуюс етого. Куда вставили? Options->Debugger->SetupMacros нада в етот фаил вставит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
miro_atc 0 18 декабря, 2006 Опубликовано 18 декабря, 2006 · Жалоба О может бит нет проблема? Если JTAG clock болше чем CPU клок - дебугер соидет с ума Вставте breakpoint после установки PLL и нажмите GO - так дебугер не будет активен когда CPU clock is too slow ;-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 18 декабря, 2006 Опубликовано 18 декабря, 2006 · Жалоба Ето не зависит из типа дебугера ни от версии. Я давано ползуюс етого.Да, виноват. Работает. Поставил JTAG speed Fixed 32 KHz все работает. Но медленно :-( Если JTAG clock болше чем CPU клок - дебугер соидет с ума Вставте breakpoint после установки PLL и нажмите GO - так дебугер не будет активен когда CPU clock is too slow ;-) Это не красиво. Мне скажем вообще не надо run to main. Надо подумать как заставить его из .maс "прийти в себя" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 18 декабря, 2006 Опубликовано 18 декабря, 2006 · Жалоба Это не красиво. Мне скажем вообще не надо run to main. Надо подумать как заставить его из .maс "прийти в себя" Придумал. Reset() { __writeMemory32(0xA5000004, 0xFFFFFD00, "Memory"); // reset the peripherals if( __driverType("jlink") ) { __sleep(1000000); // wait __emulatorSpeed(32000); // set JTAG speed ~ slow clock } __writeMemory32(0x00000001, 0xFFFFFC20,"Memory"); // OSC enable, no timeout while (! (__readMemory32(0xFFFFFC68, "Memory") & (1 << 0)) ); // wait until MOSCS __writeMemory32(0x00190605, 0xFFFFFC2C,"Memory"); // *26/5 set LOCK after 6 SCLK __writeMemory32(0x00000004, 0xFFFFFC30,"Memory"); // PRES = 2 while (! (__readMemory32(0xFFFFFC68, "Memory") & (1 << 3)) ); // wait untli MCKRDY __writeMemory32(0x00000007, 0xFFFFFC30,"Memory"); // MCK = PLLCK / 2 while (! (__readMemory32(0xFFFFFC68, "Memory") & (1 << 3)) ); // wait untli MCKRDY if( __driverType("jlink") ) { __emulatorSpeed(0); // auto-detect new JTAG speed __sleep(1000000); // wait } __message " MCK ready "; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться