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

 
 
> IAR 7.5 STM32, Ограничения в именах констант?
DmitryTDF
сообщение Jan 24 2017, 15:32
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 24-01-17
Пользователь №: 95 140



Здравствуйте!
Пишу для STM32F4xx некоторые фрагменты кода на ассемблере. При объявлении в подключаемом файле констант, заметил, что маски по ИЛИ не всегда работают. Например:
Код
...
#define OBJECT_CLASS_PIPE 1 << 16;Класс объекта - канал сообщений
...
#define OBJECT_SUBCLASS_PIPE_BYTE 1 << 24;Субкласс объекта - канал, работающий с байтами
...
#define RE 1;Флаг, символизирующий о том, что буфер пуст
...


Использую в коде:

Код
...
LDR R0,=OBJECT_CLASS_PIPE|OBJECT_SUBCLASS_PIPE_BYTE|RE
...


В отладчике, в результате выполнения инструкции, в R0 оказывается 0x00010000, а должно быть 0x01010001

При перестановке некоторых масок местами:
Код
...
LDR R0,=RE|OBJECT_CLASS_PIPE|OBJECT_SUBCLASS_PIPE_BYTE
...


R0 становится равным 0x00010001, что уже немного лучше, нежели первый результат.
Также заметил, что в случае присвоения этим же константам имен "const1", "const2", "const3" - в регистре R0 оказывается значение 0x01010001, то есть, правильное.

Если кто-то сталкивался с подобным - как боролись?
Go to the top of the page
 
+Quote Post



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

 


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


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