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

 
 
> Непонятное значение, PPC405 (XPS 9.2)
tolik1
сообщение Jul 24 2009, 08:33
Сообщение #1


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

Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016



Есть функция:
//====================================================
void LoadLastByte(Xuint8 Data)
{
Xuint32 d=0xFFFFFD00 + Data;
xil_printf("LoadLastByte - %x; Data - %x\r\n",d,Data);
GENERAL_SIMPLE_IO_32_mWriteSlaveReg3(XPAR_CTRLTEMAC_BASEADDR,0,d);
}
//====================================================

Есть вызов этой функции:
//====================================================
Xuint8 i;

LoadLastByte(i);
Переменная не инициализирована...
Результат следующий:

LoadLastByte - FFFF2444; Data - FFFF2744

Вопрос: Если переменная Xuint8 Data - один байт, то почеу значение - FFFF2744?
заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Jul 24 2009, 10:32
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Вы хотите сказать, что при вызове LoadLastByte(Xuint8 Data) компилятор имеет право передавать в старших байтах аргумента всякий мусор?


Неа. Он передает там нолики (т.к. это unsigned). Но, т.к. переменная неинициализированна, то он имеет полное право забить болт на этот and. Например, считая, что в регистр уже загруженно правильное значение, не превышающее 256 (если бы перед этим была загрузка непосредственного значения или LBZ из озу).


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 24 2009, 11:16
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Rst7 @ Jul 24 2009, 16:32) *
Неа. Он передает там нолики (т.к. это unsigned). Но, т.к. переменная неинициализированна, то он имеет полное право забить болт на этот and. Например, считая, что в регистр уже загруженно правильное значение, не превышающее 256 (если бы перед этим была загрузка непосредственного значения или LBZ из озу).


При компиляции функции неизвестно, инициализированное будет передано значение или нет. Поэтому, по крайней мере при

Xuint32 d=0xFFFFFD00 + Data;

компилятор должен провести расширение Data до Xuint32. Я так думаю.

А то, что вы пишете, очень напоминает работу IAR с bool из вот этой ветки. За единственным исключением - там программист применил хитрый финт ушами, чтобы добиться подобного.

Поэтому я всё же версию с неправильной интерпретацией параметра printf. Ждём топикстартераsmile.gif

ЗЫ. И интересно на всякий случай посмотреть на объявление Xuint8. Вдруг это пресловутый uint_least8_t? smile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- tolik1   Непонятное значение   Jul 24 2009, 08:33
- - Rst7   ЦитатаПеременная не инициализирована... Проинициа...   Jul 24 2009, 08:41
- - AHTOXA   Сдаётся мне, надо написать xil_printf("LoadLa...   Jul 24 2009, 09:40
- - Rst7   ЦитатаСдаётся мне, надо написать Это компилятор с...   Jul 24 2009, 09:44
|- - AHTOXA   Цитата(Rst7 @ Jul 24 2009, 15:44) Это ком...   Jul 24 2009, 10:02
- - Rst7   ЦитатаДля printf - нет. Во-первых, будет приведен...   Jul 24 2009, 10:05
|- - AHTOXA   Цитата(Rst7 @ Jul 24 2009, 16:05) И в дан...   Jul 24 2009, 10:15
|- - scifi   Цитата(AHTOXA @ Jul 24 2009, 15:16) При к...   Jul 24 2009, 12:54
|- - AHTOXA   Цитата(scifi @ Jul 24 2009, 18:54) А я ду...   Jul 24 2009, 13:31
- - alx2   Цитата(tolik1 @ Jul 24 2009, 13:33) Xuint...   Jul 24 2009, 10:41
- - Rst7   ЦитатаЯ так думаю. К сожалению, гнуся, да еще и п...   Jul 24 2009, 11:40
|- - AHTOXA   Цитата(Rst7 @ Jul 24 2009, 17:40) К сожал...   Jul 24 2009, 12:28
- - Rst7   ЦитатаУ меня есть под арм (cortex-m3): ... Гнусь т...   Jul 24 2009, 12:43
- - Rst7   ЦитатаКому это надо? Тому разгильдяю, который не х...   Jul 24 2009, 12:59
- - Rst7   ЦитатаКстати, подход IAR-а не всегда выиграет. По ...   Jul 24 2009, 13:36
|- - AHTOXA   Цитата(Rst7 @ Jul 24 2009, 19:36) При зап...   Jul 24 2009, 13:52
|- - _Pasha   Цитата(AHTOXA @ Jul 24 2009, 16:52) когда...   Jul 24 2009, 23:33
|- - AHTOXA   Цитата(_Pasha @ Jul 25 2009, 05:33) Дык и...   Jul 25 2009, 05:32
- - Rst7   ЦитатаЛишь на тех архитектурах, где есть побайтовы...   Jul 25 2009, 18:16


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

 


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


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