Перейти к содержанию
    

Что лучше взять для AVR?

Вопрос по опциям ИАРа - char можно сделать по умолчанию беззнаковым, а про int я такого не нашел, возможно ли это. А то у меня получилось, что 0х8000 < 0, т.е. по умолчанию int идет со знаком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос по опциям ИАРа - char можно сделать по умолчанию беззнаковым, а про int я такого не нашел, возможно ли это. А то у меня получилось, что 0х8000 < 0, т.е. по умолчанию int идет со знаком.

 

Переопредели типы typedef (ом) если надо. и сделай WORD, DWORD и т.д.

 

typedef unsigned char       BYTE;      
typedef unsigned char       WORD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так я так и делаю, только в последнем примере не char а int. Просто, для char сделана специальная галочка, а про int не подумали. В "большом" Си int по умолчанию беззнаковый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Георгий, обычно программисты стремятся к независимости своих программ от конкретного компилятора или среды.

Rash для этого указал Вам приемлемое решение.

Стандарт MISRA, кстати, тожеэто рекомендует.

Вы же наоборот пытаетесь сделать Ваш проект зависимым от "галочек" среды.

Что касается знаковости типов, то насколько я помню, согласно стандарта только char по умолчанию беззнаковый, а int и long - знаковые.

Или я ошибаюсь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думаю, что Вы правы , спорить не буду. В тонкостях Си я еще не силен.:smile3046:

Уточнился по борладндовскому хэлпу (Билдер), там сказано что и char по умолчанию знаковый. В IAR-е видимо для таких как я галочку поставили, чтоб хоть с char поначалу не заморачиваться. Привыкли, что в железе знаков нет.

Изменено пользователем Георгий

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думаю, что Вы правы , спорить не буду. В тонкостях Си я еще не силен.:smile3046:

Уточнился по борладндовскому хэлпу (Билдер), там сказано что и char по умолчанию знаковый. В IAR-е видимо для таких как я галочку поставили, чтоб хоть с char поначалу не заморачиваться. Привыкли, что в железе знаков нет.

В любом мало-мальски приличном букваре по С сказано - не закладываться на знаковость char вообще - нигде и никогда, ни явно, ни неявно.

Вот писатели пикада не подумали об этом где-то пропустили при чтении ASCII-формата входящие симовлы через char - и мы имеем облом на русской букве "я" - код 0xFF, который при пропускании через знаковый char в int превращается в полновесный -1 и мы имеем unexpected end of file на строке "схема электрическая принципиальная" - надо большими буквами писать. Естественно, это моё предположение, но больно оно правдоподобно выглядит.

 

Так о чём это я... А! Так вот, любая приличная книга говорит - если знак важен - указывать явно unsigned char или signed char - в зависимости от того, что надо.

У меня тип char если используется - то это явное предупреждение для меня же более позднего - "тут хранятся не более чем символы, никакой арифметики, сравнение только с символьными константами на равенство"

 

А стандарт языка С 99-го года заводит стандартный заголовочный файл stdint.h , в котором должны через typedef определяться типы int8_t uint8_t ... int64_t uint64_t.

Я бы рекомендовал пользоваться этими типами, а не byte/word/dword (особенно учитывая то, что word на x86 - это halfword на ARM, dword на x86 - это word на ARM).

Если stdint.h в поставке имеющегося компилятора нет - несложно написать и приложить самому.

Что я во всех новых проектах и делаю уже года 4. И даже один старый, но развивающийся - не поленился со старых i08/u08/../i32/u32 пере-sed-ить на новые стандартные typedef-ы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что касается знаковости типов, то насколько я помню, согласно стандарта только char по умолчанию беззнаковый,

В Стандарте на С, afair, знаковость char отдана на откуп реализации. В Стандарте С++ типы char, unsigned char и signed char - это три разных типа.

 

а int и long - знаковые.

Да, целые типы - знаковые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я использую

WinAvr + VMLAB получается хорошая связка

 

до этого работал на IAR C++ симулятор AVRstudio

 

WinAvr немного больше код делает на компилит давольно таки хорошо

VMLAB очень хороший симулятор правда не без хрехов

 

 

На счет того что VMLAB - хороший я согласен - внутренности МК видит прекрасно!! Вот может

кто-то знает как его вылечить от того чтобы он обрабатывал код больше 500 слов, меньше у меня программы не получаются..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, подскажите новичку: скачал последнюю AStudio с плагином для С от GCC, но он пишет, что ПСС надо устанавливать отдельно. Установил с диска от книжки Голубцова версию 3.0.2 кажется. В хелпе к АВР Студии прочел как конфигурить, но вот беда кнопка с "..." у меня не жмется, не5 могу прописать пути. Что делать? Качать новую версию GCC или косяк в другом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Несколько лет назад, когда начинал работать с gcc соблазнился возможностью прикрутить его к AStudio(разных версий). Полноценной работы так и не удалось добиться. Вроде бы с 4.10 это наконец работает,но предыдущий опыт убеждает - не стоИт на это тратить время -прикрути к любому текстовому редактору и воюй.

Под тем же PN, который идет с WinAVR у меня подцеплены gcc под Win32, AVR, MSP,ARM.Под ним же работаю с TCL, Python и и редактирую HTML. Рука уже набита на конкретные меню и шорткаты.

Ну а если позарез нужна отладка, тогда юзать студию как симулятор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, подскажите новичку: скачал последнюю AStudio с плагином для С от GCC, но он пишет, что ПСС надо устанавливать отдельно. Установил с диска от книжки Голубцова версию 3.0.2 кажется. В хелпе к АВР Студии прочел как конфигурить, но вот беда кнопка с "..." у меня не жмется, не5 могу прописать пути. Что делать? Качать новую версию GCC или косяк в другом?

вот эта версия автоматически подхватывается AVR-Studio http://prdownloads.sourceforge.net/winavr/...ll.exe?download (~14mb)

 

почитать можно здесь:

http://sourceforge.net/forum/forum.php?forum_id=446217

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...