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

 
 
 
Reply to this topicStart new topic
> Помогите! Косяк в IARе или в чем?
vitek101
сообщение Nov 6 2009, 10:30
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Пишу для XMega128, IAR 5.20.
Началось с того, что прикручиваю BootLoader. Вроде он прописался куда надо (смотрел map-файл и окошко Disassembly в отладчике). Но не работало главное окно (где по коду бегает зеленый указатель).
При следующем запуске отладчика вылетело окно Прикрепленный файл  warning.bmp ( 223.45 килобайт ) Кол-во скачиваний: 61
. Теперь главное окно также не работает, но и дизассемблер тоже через раз.
Переустановил IAR, поменял процессор, пробовал другие проекты - то же самое.
Че делать не пойму....

Исправил. Включил Debug information for C-SPY.
Go to the top of the page
 
+Quote Post
vitek101
сообщение Nov 9 2009, 11:26
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Почему может не работать переход на начало программы?
Взял пример атмела:
void (*funcptr)( void ) = 0x0000; // Set up function pointer to RESET vector.
funcptr(); // Jump to Reset vector 0x0000 in Application Section.
пробую и в симуляторе и на живом XMEGA128. Не работает... sad.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 9 2009, 12:33
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vitek101 @ Nov 9 2009, 13:26) *
пробую и в симуляторе и на живом XMEGA128. Не работает... sad.gif

А что происходит при выполнении funcptr()?
Go to the top of the page
 
+Quote Post
vitek101
сообщение Nov 9 2009, 13:22
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Просто дальше выполняется код, как будто этой строки вообще нет...
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 9 2009, 15:56
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vitek101 @ Nov 9 2009, 15:22) *
Просто дальше выполняется код, как будто этой строки вообще нет...

Поставьте в симуляторе точку останова на вызов funcptr(), запустите программу, когда выполение остановится, откройте окно дизассемблера перейдите в него и посмотрите что там выполняется. Если совсем туго с асмом, снимите и приатачте скриншот (с исходником и дизассемблером) сюда.
Go to the top of the page
 
+Quote Post
vitek101
сообщение Nov 10 2009, 08:24
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Он прыгает по адресу 0х0000, а потом сразу на следующую за funcptr() строку. Может это быть из-за того, что в памяти находится только загрузчик, а программы самой нет?
Все-таки я склоняюсь к объединению загрузчика с программой в один проект и отключению его если надо по #ifdef. Так хоть что-то работает Вернее все работает, кроме прерываний... Вот сейчас копаю, как создать вторую таблицу прерываний smile3046.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 10 2009, 16:39
Сообщение #7


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vitek101 @ Nov 10 2009, 10:24) *
Он прыгает по адресу 0х0000, а потом сразу на следующую за funcptr() строку. Может это быть из-за того, что в памяти находится только загрузчик, а программы самой нет?

Очень возможно. Какая там команда по адресу 0?

Цитата
Все-таки я склоняюсь к объединению загрузчика с программой в один проект и отключению его если надо по #ifdef. Так хоть что-то работает Вернее все работает, кроме прерываний... Вот сейчас копаю, как создать вторую таблицу прерываний smile3046.gif

а смысл? только ради отладки одной команды jmp 0x0?
bootloader один, а приложений разных много. Зачем объединять бутлоадер с каким-то одним конкретным приложением?
Go to the top of the page
 
+Quote Post
vitek101
сообщение Nov 11 2009, 05:10
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Этот бутлоадер специфичен для конкретной платы, он будет грузить программу из FRAM, предварительно загруженную основной программой. Т.е. для нового приложения все равно придется переделывать, а скопировать кусок кода и вставить в другое место не трудно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 15:10
Рейтинг@Mail.ru


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