|
От HELP MEGA8 к вопрос по IAR!, Переходим с проблемы на проблему! |
|
|
|
Jun 21 2005, 11:40
|
Местный
  
Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526

|
Я два дня назад создал тему HELP MEGA8. Спасибо всем, кто откликнулся. Однако, проблема оказалась совсем не в подключении кристалла, в совершенно в другом месте! Проблема оказалась в IAR 4.10B/W32 (4.10.2.5). Вот такой код на С: #include <iom8.h>
int main( void ) { long unsigned int i; DDRB|= (1<<1);
while(1) {
PORTB^=(1<<1); i=0xffff; while (i--); } } все догадались, что должно произойти. Диод на PB1 должен моргать. Однако, камень запускается раз на 4 - 5 включений питания. (Все подтянуто, все сглажено).
Меняем проект на: .include "m8def1.inc"
begin:
ldi r16,low(RAMEND) out spl,r16 ldi r16,high(RAMEND) out sph,r16
ldi r16,(1<<1) out DDRB,r16
; основной цикл программы loop: ldi r16,(1<<1) ; светится один светодиод out PORTB,r16 rcall delay ; задержка ldi r16,(0<<1) ; теперь гасим его out PORTB,r16 rcall delay ; задержка rjmp loop ; повторение цикла
; процедура задержки ; примерно полсекунды при частоте 7,37 МГц ; три пустых вложенных цикла соответственно delay: ldi r16,30 ; 30 delay1: ldi r17,200 ; 200 delay2: ldi r18,200 ; и еще 200 итераций delay3: dec r18 brne delay3 dec r17 brne delay2 dec r16 brne delay1 ret вот такая нехитрая замена, сгенеренная в AVRStudio 4. Все работает как часы!!!Вопросов нет!!! То есть есть, но уже к знатокам IAR!!! Компилю проект с опциями: оптимизация отключена кристалл - м8 модель Small Подскажите, ведь не может быть, что IAR не может работать с этим типом контроллеров!!! Понимаю, что сам дурак, но в чем???
|
|
|
|
|
 |
Ответов
|
Jun 21 2005, 14:19
|
Местный
  
Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526

|
Цитата(NickB @ Jun 21 2005, 16:59) А чем Вы грузите устр в первом и во втором случае? AS-2 Argussoft на других проектах проблем не было. Кстати, откомпиллированный код на асме (который работает без вопросов) я шью этим же программатором.
|
|
|
|
|
Jun 21 2005, 17:39
|
Местный
  
Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526

|
Есть!!!!! Заработало!!! Обратил внимание на то, что не выполняется первая команда программы. Оказалось, что в нулевом слове зашиты 00, т.е. по ресету выполняется NOP, и далее - по всем векторам. А вектора инициализированы RETI, далее - понятно. Начал искать, как инициализировать RST_VECT, и оказалось, что в опциях линкера, почему то указан выходной формат intel-extended, а он в свою очередь (это тоже оказалось) 4 прервых байта просто меняет на 0!!! Вот и все!!! И это целый день коллективного мозгового штурма. Спасибо всем, кто принял участие!
|
|
|
|
Сообщений в этой теме
Sergio66 От HELP MEGA8 к вопрос по IAR! Jun 21 2005, 11:40 yung Только сейчас бросилось в глаза. А почему main опи... Jun 21 2005, 11:59 Miron Цитата(yung @ Jun 21 2005, 15:59)Только сейча... Jun 21 2005, 12:14  Sergio66 Цитата(Miron @ Jun 21 2005, 15:14)Цитата(yung... Jun 21 2005, 12:26 Olegovich Цитата(yung @ Jun 21 2005, 14:59)Только сейча... Jun 21 2005, 12:49 NickB Надобно посмотреть что за код генерирует компилято... Jun 21 2005, 12:28 Sergio66 Цитата(NickB @ Jun 21 2005, 15:28)Надобно пос... Jun 21 2005, 13:23 NickB Напишите вместо
while (i--);
таким образом
while ... Jun 21 2005, 12:39 Sergio66 Цитата(NickB @ Jun 21 2005, 15:39)Напишите вм... Jun 21 2005, 13:09 NickB А что асм в листинге показывает ?
Может глюк какой... Jun 21 2005, 13:25 dxp Цитата(Sergio66 @ Jun 21 2005, 17:40)Я два дн... Jun 21 2005, 13:36 Sergio66 long unsigned int i;
long - случайно попало при... Jun 21 2005, 13:47  Sergio66 И еще, я убрал из программы все, что может косвенн... Jun 21 2005, 13:49 NickB так чтобы получился цикл задержки надо либо убрать... Jun 21 2005, 13:48 indela Цитата(Sergio66 @ Jun 21 2005, 18:07)Еще один... Jun 21 2005, 17:33 NickB Похоже что ваш программатор неверно понимает форма... Jun 22 2005, 06:52 yung Зато сколько информативных постов! Jun 22 2005, 06:58
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|