dukvbg 0 4 октября, 2016 Опубликовано 4 октября, 2016 · Жалоба Имеется древний контроллер AT91R40807 (ядро ARM7TDI). Работаю с ним через J-LINK v. 8. ИД ядра считывается нормально. Но это единственное, что можно с ним сделать. В остальном вылезает ошибка "Unable to halt CPU core" Ошибка вылезает как при попытке залить прогу так и просто попытавшись "за-halt-ить" ядро ( команда "h" в jlink.exe). Та же самая ошибка после всех вариантов ресетов (хотя если уж быть точнее то только хардверный ресет срабатывает после которого так же не удаётся застопить ядро). Изменение скорости шины не помогает (игрался в диапазоне с 1 кГЦ до 12 МГц). На плате 20 МГц кварцевый генератор. В разводке ошибки нет (уверен на 150%). Программатор рабочий. Контроллер рабочий, чистый (только со склада поступил). Более того, подобное поведение отмечается на 5 контроллерах (2 мк с одной партии, 3 с другой). Наличие пина NTRI учёл. Статикой не пожог,с этим делом строго. В общем, прошу помощи, друзья! ПО: jlink.exe (v. 5.10d), а также IAR и Keil. (везде Unable to halt CPU core). Программатор: J-link ARM v.8 IAR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nvn 0 4 октября, 2016 Опубликовано 4 октября, 2016 · Жалоба Ух как давно это было... могу уже напутать Пользовался таким в связке Multi2000 + LPT JTAG (просто буферы) Такое было вроде когда проц не заводился с кварца, смотрел частоту NWAIT в каком состоянии? Иногда было непонятно почему, игрался с кнопкой ресет и одновременным подкл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dukvbg 0 4 октября, 2016 Опубликовано 4 октября, 2016 (изменено) · Жалоба NWAIT в каком состоянии? А это играет роль при отладке/прошивке? Предполагал что это важно при работе с шиной адрес-данных для внешних приблуд (внешней памяти и тд тп). Но попробую вверху подержать его (до этого был низким всё время), спасибо. ЗЫ Кстати в названии темы опечатка(и в топике кстати) ядро- ARM7TDMI. (Модеры/админы, если есть возможность подправьте пжл, а то я что то не нашел как топик править) Изменено 4 октября, 2016 пользователем snab Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nvn 0 5 октября, 2016 Опубликовано 5 октября, 2016 (изменено) · Жалоба А это играет роль при отладке/прошивке? Предполагал что это важно при работе с шиной адрес-данных для внешних приблуд (внешней памяти и тд тп). Но попробую вверху подержать его (до этого был низким всё время), спасибо. Лет 14 минуло, как им пользовался, потому могу и напутать. У процессора нет своей флэш, значит прошивать вы можете либо внутреннюю SRAM либо внешнюю SRAM/FLASH. А какая схема включения у вас, т.е. откуда при включении стартует проц, где храниться прошивка? Во внешней флэш по CS0? Внешние памяти как подключены? 8, 16 бит? Если так, то я это к тому, что возможно он "успевает" при старте обратиться к внешней шине (флэш) а NWAIT в ноле, лучше сразу привести его в порядок и если не поможет то отмести этот вариант, да и дальше не будет проблем. Вроде бы для прошивки надо было еще конфигурить какие-то регистры, чтобы открыть доступы к шинам. Но Вам до этого еще рано, у вас не стопится похоже ядро. Я тогда первым делом пробовал прочитать регистры проца. Сейчас гляну в архивах может найду чего. не знаю как с jlink и т.п. но на всякий случай вот мой стратовый скрипт был такой: halt # Disable all AIC interrupts memwrite long 0xfffff124 0xffffffff # Disable all USART0 interrupts memwrite long 0xfffd000c 0xffffffff reg cpsr 0x60000010 # Setup script for the Ateml AT91 board # This is only required if the Angel ROM monitor does not do the board setup # EBI_CSR0 memwrite long 0xffe00000 0x01002529 memwrite long 0xffe00004 0x02002121 memwrite long 0xffe00008 0x0300253D memwrite long 0xffe0000c 0x30000000 memwrite long 0xffe00010 0x0400253E memwrite long 0xffe00014 0x05002536 memwrite long 0xffe00018 0x06002536 memwrite long 0xffe0001c 0x70000000 # REMAP Done memwrite long 0xffe00020 0x00000001 #2M bytes per CS memwrite long 0xffe00024 0x00000006 #Disable Extended-SRAM write protection memwrite long 0xfff0000c 0x00000001 зы: а раньше вы их шили нормально, или впервые с ними? Изменено 5 октября, 2016 пользователем IgorKossak [codebox] для длинного кода, [code] - для короткого! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dukvbg 0 5 октября, 2016 Опубликовано 5 октября, 2016 · Жалоба Прошивка шьётся во внутреннюю память. Вы были правы по поводу NWAIT, большое спасибо. Проблема решена. Зашился на 4 МГц На будущее для тех кто еще столкнется с подобными контроллерами: - NWAIT и NTRI держать вверху; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться