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

 
 
> Пару вопросов по IAR AVR
SZ0
сообщение Mar 14 2009, 19:44
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



Компилятор 5.11

1.
В файле var.h

Код
typedef union
{
unsigned char f4_b;
struct
{
  unsigned char start1:1;           //0 - клавиша отжата, 1 - нажата
  unsigned char stop1:1;
  unsigned char block1:1;
  unsigned char start2:1;
  unsigned char stop2:1;
  unsigned char block2:1;
  unsigned char start3:1;
  unsigned char stop3:1;
};
}flag4;

extern flag4 f4;


В файле var.c

Код
flag4 f4;


При обращении к флагам f4.start1 = 1 компилятор пишет Error[Pe134]: expected a field name
Если убрать 1 в конце названия флага в описании типа (start:1) и обращаться в программе f4.start = 1 то всё нормально. Ещё оказалось если так же в названии типа написать start_1 и в программе обращаться f4.start_1 = 1 то тоже всё замечательно. Чем же компилятору не понравилось название start1? Переменные с цифрами в конце не создают проблем.

2.
После компиляции проекта компилятор выдал: 736 bytes of DATA memory (+ 22 absolute )
При этом все переменные у меня просто не занимают столько памяти! Полез копаться в листингах, там я не шибко силён. Нашёл в файле map следующее:

Код
                ****************************************
                *                                      *
                *            MODULE SUMMARY            *
                *                                      *
                ****************************************

Module               CODE      DATA         XDATA
------               ----      ----         -----
                    (Rel)  (Rel)  (Abs)  (Rel)  (Abs)
?C_STARTUP             36
?EEPROM_16             26
?EPILOGUE_B_L09        18
?FILLER_BYTES           8
  + common            220
?PROLOGUE_L09          10
?RESET
  + common              4
?__exit                 6
?low_level_init         4
?segment_init         128
?xV_SWITCH_L06        192
lcd                   836
  + shared                                          1
main                  617      6      9
  + shared              7             3
tcnt1                 144     11      4
  + common             72
uart                  382      6      6
  + common            220
var                          137           135
N/A (command line)           576
N/A (alignment)
----------          -----    ---     --    ---      -
Total:              2 414    736     22    135      1
  + common            220


Что это за строка - N/A (command line) 576? Откуда эти 576 байт данных могли взяться? cranky.gif

Сообщение отредактировал SZ0 - Mar 14 2009, 19:48
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Димитрий
сообщение Mar 17 2009, 05:03
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 184
Регистрация: 21-03-06
Из: Нижний Новгород
Пользователь №: 15 435



Цитата(SZ0 @ Mar 14 2009, 22:44) *
При обращении к флагам f4.start1 = 1 компилятор пишет Error[Pe134]: expected a field name


Сдела все тоже самое (единственно файлы называются test.c(h)) ни каких проблем. А вто если писать
f4.start = 1;
или
f4.start_1 = 1;
как раз выдает ошибку на отсутствие field.
У меня IAR AVR 5.11В

Сообщение отредактировал Димитрий - Mar 17 2009, 05:04
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 17 2009, 07:49
Сообщение #3


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Димитрий @ Mar 17 2009, 07:03) *
Сдела все тоже самое (единственно файлы называются test.c(h)) ни каких проблем. А вто если писать
f4.start = 1;
или
f4.start_1 = 1;
как раз выдает ошибку на отсутствие field.
У меня IAR AVR 5.11В

У меня работает в любом случае, с любыми настройками и без ошибок (если я правильно понял написанное Вами).
Во втором случае Вы, очевидно, не изменили start1 на start или на start_1 в определении.

Присоединить патч так и не получается.
Go to the top of the page
 
+Quote Post
SZ0
сообщение Mar 17 2009, 09:19
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



Цитата(IgorKossak @ Mar 17 2009, 12:49) *
Присоединить патч так и не получается.


Может на рапиду или сахару закините? В сети я его так и не нашёл.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SZ0   Пару вопросов по IAR AVR   Mar 14 2009, 19:44
- - SergeyTT   Я не гуру в программировании,но вот такой код не р...   Mar 14 2009, 22:40
|- - SZ0   Цитата(SergeyTT @ Mar 15 2009, 03:40) Я н...   Mar 16 2009, 07:31
|- - IgorKossak   Цитата(SZ0 @ Mar 16 2009, 09:31) Оставил ...   Mar 16 2009, 09:00
|- - SZ0   Цитата(IgorKossak @ Mar 16 2009, 14:00) В...   Mar 16 2009, 10:21
|- - IgorKossak   Цитата(SZ0 @ Mar 16 2009, 12:21) А где ск...   Mar 16 2009, 13:01
|- - SZ0   Цитата(IgorKossak @ Mar 16 2009, 18:01) Я...   Mar 16 2009, 15:24
|- - IgorKossak   Цитата(SZ0 @ Mar 16 2009, 17:24) На сайте...   Mar 16 2009, 15:27
- - Непомнящий Евгений   Цитата(SZ0 @ Mar 14 2009, 22:44) Что это ...   Mar 16 2009, 05:20
|- - SZ0   Цитата(Димитрий @ Mar 17 2009, 10:03) А в...   Mar 17 2009, 05:15
- - IgorKossak   Выкладываю патч, если ещё нужен.   Mar 19 2009, 18:24
|- - SZ0   Цитата(IgorKossak @ Mar 19 2009, 23:24) В...   Mar 24 2009, 11:15
|- - IgorKossak   Цитата(SZ0 @ Mar 24 2009, 13:15) А вот ес...   Mar 24 2009, 13:04
|- - SZ0   Цитата(IgorKossak @ Mar 24 2009, 18:04) О...   Mar 26 2009, 05:26
- - IgorKossak   Скорее всего в Вашем большом проекте имеется конфл...   Mar 26 2009, 09:05


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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 11:59
Рейтинг@Mail.ru


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