Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR 4.41a Debug AT91R40008
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
cpl
Скачал IAR 4.41a, установил пропатчил универсальным лекарством, больше нечего непросит.
использую отладчик jlink.
пишу пример (прилагается) на С (для отладки в памяти),
компилирую собираю все в порядке.
Перехожу в отладку и тут начинаются непонятки после загрузки в окне отладчика все кода FF,
причем что непонятно иногда загружает нормально и все работает а при повторном вхождении в отладку опять FF, непойму в чем проблема.
startup+xcl брал из примера atmel под плату eb40a, плата своя флеш пока неустанавливал.
контролер подключен шиной к fpga. Частота работы контролера 14Мгц.
Пробовал снижать скорость до 32к нечего неменяется

при загрузке
Thu May 10 18:26:33 2007: Loaded macro file: C:\40008\at91_startup.mac
Thu May 10 18:26:33 2007: DLL version: V3.56f, compiled Dec 7 2006 19:47:04
Thu May 10 18:26:33 2007: Firmware: J-Link compiled Mar 22 2007 16:08:22 ARM Rev.5
Thu May 10 18:26:33 2007: JTAG speed is initially set to: 32 kHz
Thu May 10 18:26:33 2007: Resetting target using RESET pin
Thu May 10 18:26:33 2007: Halting CPU core
Thu May 10 18:26:33 2007: Hardware reset with strategy 0 was performed
Thu May 10 18:26:33 2007: Initial reset was performed
Thu May 10 18:26:33 2007: J-Link found 1 JTAG device. ARM core Id: 1F0F0F0F(ARM7)
Thu May 10 18:26:33 2007: Device at TAP0 selected
Thu May 10 18:26:33 2007: Auto JTAG speed: 8000 kHz
Thu May 10 18:26:34 2007: 2493 bytes downloaded (4.73 Kbytes/sec)
Thu May 10 18:26:34 2007: Loaded debugee: C:\CAD\PRJ\UDU-2\ARM\40008\Debug\Exe\mem_xilinx.d79
Thu May 10 18:26:34 2007: Target reset
Thu May 10 18:26:34 2007: AIC set to protected mode, __SF_PMR = 0x27a80020
Thu May 10 18:26:34 2007: The stack 'CSTACK' is filled to 100% (8192 bytes used out of 8192). The warning threshold is set to 90%.
Thu May 10 18:26:34 2007: The stack 'IRQ_STACK' is filled to 100% (256 bytes used out of 256). The warning threshold is set to 90%.
Thu May 10 18:26:34 2007: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00010004 to 0x00012004)
Thu May 10 18:26:34 2007: The stack pointer for stack 'IRQ_STACK' (currently 0x00000000) is outside the stack range (0x00012004 to 0x00012104)

непойму в чем проблема с самого начала работало теперь стабильно вылетает в FF.
1111493779.gif
Сергей Борщ
Цитата(cpl @ May 10 2007, 17:26) *
непойму в чем проблема с самого начала работало теперь стабильно вылетает в FF.
Похоже на проблемы с ремапом:
Цитата
The primary RAM bank is always mapped at address 0x30 0000 before remap and at address 0x0 after the remap
Возможно это из-за того, что вы закомментировали строчки
Код
//  __message "REMAP __EBI_RCR = 0x00000001\n";
//  __writeMemory32(0x00000001, 0xFFE00020, "Memory");
cpl
Цитата(Сергей Борщ @ May 10 2007, 21:14) *
Похоже на проблемы с ремапом:Возможно это из-за того, что вы закомментировали строчки
Код
//  __message "REMAP __EBI_RCR = 0x00000001\n";
//  __writeMemory32(0x00000001, 0xFFE00020, "Memory");


Разкоментирывал ремап, все тоже....
копнул xcl файл оказался немного под другой процессор, переделал (файл прилагаю) согласно рекомендациям, перенес все сегменты в РАМ по адресам после ремапа (т.е. с 000000 тк у него внутреняя память одна sram начинается с адресса 0x300000 -> 0x303FFFF)
перекомпилирывал, теперь в отладчике появился код но только не тот что получается в симуляторе
явно отсутствует таблица векторов
(снимок прилагаю)

В чем может быть проблема ? wacko.gif smile3046.gif
Сергей Борщ
Цитата(cpl @ May 11 2007, 14:55) *
Разкоментирывал ремап, все тоже....
Есть предположение - у вас ремап делается после загрузки, т.е. загрузка осуществляется "в никуда" а потом на это место накладывается RAM со случайными значениями. Попробуйте в .mac назвать этот макрос не execUserReset() а execUserPreload(). Тогда ремап будет осуществляться перед загрузкой. И включите в Options->Debugger->Download галочку verify.
cpl
Цитата(Сергей Борщ @ May 11 2007, 16:05) *
Есть предположение - у вас ремап делается после загрузки, т.е. загрузка осуществляется "в никуда" а потом на это место накладывается RAM со случайными значениями. Попробуйте в .mac назвать этот макрос не execUserReset() а execUserPreload(). Тогда ремап будет осуществляться перед загрузкой. И включите в Options->Debugger->Download галочку verify.

a14.gif
Спасибо огромное заработало !!! yeah.gif

Вопрос по xcl файлу,
Несовсем понимаю, если адреса сегментов ROM и RAM одно и тоже то, то линкер сам разбирается где уу него будет RAM а где ROM ?
Сергей Борщ
Цитата(cpl @ May 11 2007, 19:42) *
Вопрос по xcl файлу,
Несовсем понимаю, если адреса сегментов ROM и RAM одно и тоже то, то линкер сам разбирается где уу него будет RAM а где ROM ?
Ну если вам все равно (задали одни и те же адреса), то ему тем более. Он вообще не знает что есть RAM и ROM. Для него есть лишь диапазоны адресов. Линкер тупо складывает сегменты в свободное место заданных областей адресов в порядке объявления.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.