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

 
 
> Помогите. AVRstudio+Jtag+Atmega128
big_nikolas
сообщение Nov 2 2006, 10:07
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 28-04-06
Пользователь №: 16 574



help.gif
Всем привет! Помогите разобраться, плиз.
Накалякал простую программу:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

#define Freq 16000000

SIGNAL(SIG_OVERFLOW1)
{
TCNT1 = 0x10000 - (Freq / 1024);
PORTA ^= 0x01;
}

int main (void)
{
DDRA = 0x01;
TCCR1A = 0;
TCCR1B = 5;
TCNT1 = 0x10000 - (Freq / 1024);
TIFR = 0;
TIMSK = 0x04;

sei();
while(1);
}
Подключил JTAGice собранный своими руками. Всё вроде нормально. Запустил программу, эмулятор зашуршал, светодиодик через каждую секунду замигал (на тестируемой плате) см. программу. Поставил breakpoint на начало прерывания, всё нормально. Остановился в прерывании, жму RUN, тоже всё нормально возвращается к breakpoint. Начинаю делать step into, когда доходит до конца подпрограммы прерывания и как-бы зависает. Нажимаю на паузу он высвечивает окно Дизассемблера и показывает что жёлтая стрелочка находится вне телы программы на не понятном адресе. Посмотрел окно памяти DATA а там о ужас непонятные числа и причём вся область, и когда он возвращается из подпрограммы он выходит по лже-значениям в DATA, а не по значению адреса сохраннём стеком.
За што зацепится, даже ума не приложу. Мож кто подскажет, ЧТО ЭТО? help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
big_nikolas
сообщение Nov 3 2006, 06:35
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 28-04-06
Пользователь №: 16 574



Спасибо Klop что откликнулся. Но дело, по ходу, в другом.
Чего я обнаружил: У Atmega128 внутреннее ОЗУ с $0100 по $10FF. Так вот, компилятор С естественно указатель стека записывает в конец ОЗУ. НО! как видно из приложенного фото, ОЗУ забито непонятно чем, начиная с адреса $0FFE по $10FF записано хрен знает што и я даже изменить это значение не могу.
Взял специально в программе указал стек $0FEE и у меня всё заработало.
ЧТО ЭТО? может я настройки какие то в AVRstudio не сделал, но микросхему atmega128 я выбрал, он память определил правильно. Или же это что-то с контроллером? тогда как проверить?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
aesok
сообщение Nov 3 2006, 10:06
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Разберитесь с фюзой M103

Анатолий.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 22:24
Рейтинг@Mail.ru


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