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

 
 
> AT91R40008 - программирование флэша
forever failure
сообщение Dec 18 2005, 11:51
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Имеется дивайс с сабжевым контроллером и флэшкой AM29LV29160DB и требуется это всё
запрограммировать, т. е. залить во флэш прогу.
Пробую заливать во время отладки в MULTI 2000 v 3.6.1 через OCD Wiggler,
в результате чего получаю:

Connected to target `Generic-ARM ARM 7tm with Macraigor OCD Connection (ocdserv) for ARM'.
Initializing `C:\GHS\arm361\ocdserv -cpu arm7t -port LPT1 -checks -fix -setup D:\Trash\Projects\ARM\src\ocdserv_standard.dbs -little'.
Target cpu: ARM

Downloading program text and data. Please Wait...

ocdserv: A remote target memory check failed in the .text program segment.
ocdserv: This is usually caused by failure to set the board up properly, but can
ocdserv: also be caused by a bad link map or by a program that is bigger than
ocdserv: available board memory. Make sure the board setup procedure completed
ocdserv: without errors, as this is the most common cause of this problem.

Download failed, error during write 0x2008000 - 0x2008fff
debug server: download of "D:\Trash\Projects\ARM\hello" failed
Couldn't load program.

По осциллографу видно, что сигналы на JTAGе есть, но на шине данных и шине адреса самого
контроллера - молчок. Сразу после включения видно, что контроллер обращается к флэшке
и перебирает адреса, после команды "connect" этот пербор останавливается, но запись на флэшку почему-то не идёт.

Где могут быть грабли? (конешно есть ненулевая вероятность, что как-то контороллер сдох,
однако хотелось бы попробовать сперва все возможные средства отладки и диагностики).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
forever failure
сообщение Jan 19 2006, 15:24
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Инициализационный скрипт - это, похоже, то что и требовалось. Сейчас отлаживается после ремапа,
но по прежнему при обращении по адресу внешнего устройства выкидывает в data abort prefetch
(т. е. адрес вектора обработчика - 0x10). На всякий случай даю тренировочный код,
может кто подскажет где ошибка или что неправильно инициализируется.

/* hello.c */

#include "parts/r40008/r40008.h"
#include "periph/special_function/sf.h"

static void init (void);
static void main_loop (void);

int main (void)
{
init ();
main_loop ();
return 0;
}

static void init (void)
{
int i;
for (i = 1;i < 8;i++)
EBI_BASE->EBI_CSR[i] = EBI_DBW_16 | EBI_NWS_1 | EBI_PAGES_1M | EBI_TDF_0 | EBI_CSEN;
EBI_BASE->EBI_MCR = EBI_ALE_1M | EBI_DRP_STANDARD;
}

static void main_loop (void)
{
register short int t;
const signed short int volatile * addr = (const signed short int volatile *) (0x08000000);
const signed short int volatile * const b = addr, * const e = addr + 15;
for (;;)
{
t = *addr++; /* <- здесь возникает эксепшн */
if (addr > e) addr = b;
if (t == 0x5a5a5a5a) break;
}
for (;;);
}

ЗЫ. Дивайс - одноплатный универсальный компьютер TEC32 произодства Тритона. На борту сетевуха,
часы, компакт флэш, CAN, флэшка программная 1 м и шина расширения PC-104.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 1st August 2025 - 20:39
Рейтинг@Mail.ru


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