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

AT91R40807 (ARM7TDI) проблемы с JTAGом (Unable to halt CPU core)

Имеется древний контроллер 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.

 

 

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


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

Ух как давно это было... могу уже напутать

Пользовался таким в связке Multi2000 + LPT JTAG (просто буферы)

Такое было вроде когда проц не заводился с кварца, смотрел частоту

NWAIT в каком состоянии?

Иногда было непонятно почему, игрался с кнопкой ресет и одновременным подкл.

 

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


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

NWAIT в каком состоянии?

 

 

А это играет роль при отладке/прошивке? Предполагал что это важно при работе с шиной адрес-данных для внешних приблуд (внешней памяти и тд тп).

Но попробую вверху подержать его (до этого был низким всё время), спасибо.

 

ЗЫ

Кстати в названии темы опечатка(и в топике кстати) ядро- ARM7TDMI. (Модеры/админы, если есть возможность подправьте пжл, а то я что то не нашел как топик править)

Изменено пользователем snab

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


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

А это играет роль при отладке/прошивке? Предполагал что это важно при работе с шиной адрес-данных для внешних приблуд (внешней памяти и тд тп).

Но попробую вверху подержать его (до этого был низким всё время), спасибо.

Лет 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

зы: а раньше вы их шили нормально, или впервые с ними?

Изменено пользователем IgorKossak
[codebox] для длинного кода, [code] - для короткого!

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


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

Прошивка шьётся во внутреннюю память.

Вы были правы по поводу NWAIT, большое спасибо.

 

Проблема решена.

Зашился на 4 МГц

 

На будущее для тех кто еще столкнется с подобными контроллерами:

- NWAIT и NTRI держать вверху;

 

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


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

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

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

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

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

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

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

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

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

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