реклама на сайте
подробности

 
 
> AT91R40807 (ARM7TDI) проблемы с JTAGом (Unable to halt CPU core)
snab
сообщение Oct 4 2016, 11:53
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 4-10-16
Пользователь №: 93 591



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

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
nvn
сообщение Oct 4 2016, 14:54
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486



Ух как давно это было... могу уже напутать
Пользовался таким в связке Multi2000 + LPT JTAG (просто буферы)
Такое было вроде когда проц не заводился с кварца, смотрел частоту
NWAIT в каком состоянии?
Иногда было непонятно почему, игрался с кнопкой ресет и одновременным подкл.
Go to the top of the page
 
+Quote Post
snab
сообщение Oct 4 2016, 15:01
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 4-10-16
Пользователь №: 93 591



Цитата(nvn @ Oct 4 2016, 14:54) *
NWAIT в каком состоянии?



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

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

Сообщение отредактировал snab - Oct 4 2016, 15:06
Go to the top of the page
 
+Quote Post
nvn
сообщение Oct 5 2016, 08:08
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486



Цитата(snab @ Oct 4 2016, 20:01) *
А это играет роль при отладке/прошивке? Предполагал что это важно при работе с шиной адрес-данных для внешних приблуд (внешней памяти и тд тп).
Но попробую вверху подержать его (до этого был низким всё время), спасибо.

Лет 14 минуло, как им пользовался, потому могу и напутать.
У процессора нет своей флэш, значит прошивать вы можете либо внутреннюю SRAM либо внешнюю SRAM/FLASH.
А какая схема включения у вас, т.е. откуда при включении стартует проц, где храниться прошивка? Во внешней флэш по CS0?
Внешние памяти как подключены? 8, 16 бит?
Если так, то я это к тому, что возможно он "успевает" при старте обратиться к внешней шине (флэш) а NWAIT в ноле, лучше сразу привести его в порядок и если не поможет то отмести этот вариант, да и дальше не будет проблем.
Вроде бы для прошивки надо было еще конфигурить какие-то регистры, чтобы открыть доступы к шинам.
Но Вам до этого еще рано, у вас не стопится похоже ядро. Я тогда первым делом пробовал прочитать регистры проца.
Сейчас гляну в архивах может найду чего.

не знаю как с jlink и т.п. но на всякий случай вот мой стратовый скрипт был такой:
CODE
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 - Oct 5 2016, 17:58
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016