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

 
 
> Не нашел .h файл в IAR с описанием uint8_t
_Алекс
сообщение Oct 3 2007, 19:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 14-09-06
Пользователь №: 20 377



Похоже, в IAR нет что то типа inttypes.h, может есть у кого заголовочный файл с описанием типов uint8_t, uint16_t и т.д. для IAR как в AVRGCC например.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение Oct 4 2007, 01:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(_Алекс @ Oct 4 2007, 03:55) *
Похоже, в IAR нет что то типа inttypes.h, может есть у кого заголовочный файл с описанием типов uint8_t, uint16_t и т.д. для IAR как в AVRGCC например.


Код
#define uint8_t unsigned char

#define uint16_t unsigned int
и т.д


--------------------
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 4 2007, 03:00
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(prottoss @ Oct 4 2007, 10:20) *
Код
#define uint8_t unsigned char

#define uint16_t unsigned int
и т.д

Наверно правильнее все таки так:
typedef unsigned char uint8_t;
typedef unsinged short int uint16_t;
и т.д.
Таким образом мы вводим новые типы, которые поддаются контролю компилятора.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 4 2007, 10:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(haker_fox @ Oct 4 2007, 11:00) *
Наверно правильнее все таки так:
typedef unsigned char uint8_t;
typedef unsinged short int uint16_t;
и т.д.
Таким образом мы вводим новые типы, которые поддаются контролю компилятора.
А зачем мне вводить новый тип, если меня вполне устраивает старый, кроме того, что он длинно пишется :-) - unsinged short int - и я переживаю за свою мультимедийную клавиатуру


--------------------
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 4 2007, 10:37
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(prottoss @ Oct 4 2007, 13:29) *
А зачем мне вводить новый тип, если меня вполне устраивает старый, кроме того, что он длинно пишется :-)
Видимо для того, чтобы переменная имела 16 бит и на ARM и на AVR.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 4 2007, 10:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Сергей Борщ @ Oct 4 2007, 18:37) *
Видимо для того, чтобы переменная имела 16 бит и на ARM и на AVR.
Вы считаете что тип unsinged short int будет иметь разное количество бит для AVR и ARM?
Код
#define UINT16 unsinged short int
...
UINT16 var;

Переменная var для двух вышеназванных платформ будет разной длины?


--------------------
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 4 2007, 10:53
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(prottoss @ Oct 4 2007, 16:43) *
Вы считаете что тип unsinged short int будет иметь разное количество бит для AVR и

В стандарте Си нет жестко заданной разрядности типов данных. Есть только ограничения типа char>=short>=int>=long. Ограничения на разрядность данных описаны в хидере limits.h в виде INT_MIN, INT_MAX, LONG_MIN, LONG_MAX и т.п. Так что для разных CPU/MCU разрядность схожих типов данных может быть тоже различной.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 4 2007, 11:05
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(rezident @ Oct 4 2007, 18:53) *
В стандарте Си нет жестко заданной разрядности типов данных. Есть только ограничения типа char>=short>=int>=long. Ограничения на разрядность данных описаны в хидере limits.h в виде INT_MIN, INT_MAX, LONG_MIN, LONG_MAX и т.п. Так что для разных CPU/MCU разрядность схожих типов данных может быть тоже различной.
Тогда назовите хотя бы одну платформу или хотя бы один современный компилятор, в которой

char не равно 8 бит

short int не равно 16 бит

long int не равно 32 бит

long long int не равно 64 бит



"просто" int я в учет не беру, потому что тип этот на самом деле с "плавающей" разрядностью от платформы к платформе


--------------------
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 4 2007, 11:36
Сообщение #9


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(prottoss @ Oct 4 2007, 18:05) *
Тогда назовите хотя бы одну платформу или хотя бы один современный компилятор, в которой

char не равно 8 бит

TMS320F28xx. 16 бит.

Дело не том, старые или новые платформы. Вот TMS вполне новый. Дело в принципе. Завтра может появиться еще платформа, у которой типы будут иметь "непривычную" разрядность. Стандарт регламентирует правила, все обязаны их соблюдать, для того правила и придуманы. Если кто-то их не соблюдает, он сам себе злобный буратина.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 4 2007, 12:03
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(dxp @ Oct 4 2007, 19:36) *
TMS320F28xx. 16 бит.
А что за компилятор?


--------------------
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 4 2007, 12:45
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(prottoss @ Oct 4 2007, 18:03) *
А что за компилятор?

Code Composer Studio вестимо. Вот хидер limits.h из его комплекта. Причем еще обращаю ваше внимание на аннотацию к User's Guide этого CCS.
Цитата.
Цитата
The TMS320C28x™ C/C++ compiler accepts C and C++ code conforming to the International Organization for Standardization (ISO) standards for these languages, and produces assembly language source code for the TMS320C28x device. The compiler supports the 1989 version of the C language.

This user’s guide discusses the characteristics of the C/C++ compiler. It assumes that you already know how to write C/C++ programs. The C Programming Language (second edition), by Brian W. Kernighan and Dennis M. Ritchie, describes C based on the ISO C standard. You can use the Kernighan and Ritchie (hereafter referred to as K&R) book as a supplement to this manual. References to K&R C (as opposed to ISO C) in this manual refer to the C language as defined in first edition of Kernighan and Ritchie’s The C Programming Language.

То бишь он в полном соответствии со стандартом разработан wink.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Алекс   Не нашел .h файл в IAR с описанием uint8_t   Oct 3 2007, 19:55
- - Сергей Борщ   Цитата(_Алекс @ Oct 3 2007, 22:55) Похоже...   Oct 3 2007, 20:07
- - rezident   Можно и самому создать хидер с типами, в чем пробл...   Oct 3 2007, 21:11
|||- - rezident   Цитата(prottoss @ Oct 4 2007, 17:05) Тогд...   Oct 4 2007, 11:23
||||- - prottoss   Цитата(rezident @ Oct 4 2007, 19:23) В Re...   Oct 4 2007, 11:35
||- - alexander55   Стандарт ANSI/ISO C Standart char 8 unsigned char ...   Oct 4 2007, 11:17
|||- - prottoss   Цитата(alexander55 @ Oct 4 2007, 19:17) Н...   Oct 4 2007, 11:23
||- - dxp   Цитата(rezident @ Oct 4 2007, 17:53) char...   Oct 4 2007, 11:33
||- - rezident   Цитата(dxp @ Oct 4 2007, 17:33) Чуть-чуть...   Oct 4 2007, 11:51
|- - zltigo   Цитата(prottoss @ Oct 4 2007, 13:29) он д...   Oct 4 2007, 11:27
- - _Алекс   Мне кажется лучше пользоваться готовыми встроенным...   Oct 4 2007, 04:14
|- - Сергей Борщ   Цитата(_Алекс @ Oct 4 2007, 07:14) Исполь...   Oct 4 2007, 10:15
|- - _Алекс   Цитата(Сергей Борщ @ Oct 4 2007, 13:15) Я...   Oct 4 2007, 17:34
|- - rezident   Цитата(_Алекс @ Oct 4 2007, 23:34) Если с...   Oct 4 2007, 18:10
|- - IgorKossak   Цитата(_Алекс @ Oct 4 2007, 20:34) Один м...   Oct 5 2007, 07:15
- - prottoss   Хорошо, признаю, был не прав Но мне так и не...   Oct 4 2007, 12:57
|- - IgorKossak   Цитата(prottoss @ Oct 4 2007, 15:57) Но м...   Oct 4 2007, 13:02
||- - prottoss   Цитата(IgorKossak @ Oct 4 2007, 21:02) Да...   Oct 4 2007, 13:09
||- - zltigo   Цитата(prottoss @ Oct 4 2007, 16:09) Я то...   Oct 4 2007, 13:30
|- - dxp   Цитата(prottoss @ Oct 4 2007, 19:57) Но м...   Oct 4 2007, 13:20
|- - prottoss   Цитата(dxp @ Oct 4 2007, 21:20) В данном ...   Oct 4 2007, 13:40
|- - Сергей Борщ   Цитата(prottoss @ Oct 4 2007, 16:40) а dd...   Oct 4 2007, 14:10
|- - prottoss   Цитата(Сергей Борщ @ Oct 4 2007, 22:10) c...   Oct 4 2007, 14:18
- - mdmitry   Если не изменяет память, то char на VAX 32 бита. ...   Oct 4 2007, 19:26
- - alexander55   Цитата(mdmitry @ Oct 4 2007, 23:26) Если ...   Oct 5 2007, 05:07


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

 


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


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