Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: реализация булевых переменных в bit-band
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
Сергей Борщ
Цитата(copov @ Oct 22 2015, 13:59) *
Нельзя переменные uint32_t должны располагаться по адресам кратным 4
Да, про это я не подумал, но вопрос был о другом. Пусть будет так:

volatile uint32_t Var_for_bit1 __attribute__((at(0x20000000)));
volatile uint32_t Var_for_bit2 __attribute__((at(0x20000004)));
volatile uint32_t Var_for_bit3 __attribute__((at(0x20000000)));
jcxz
Цитата(copov @ Oct 22 2015, 13:05) *
Область bit-band и так лежит вне области ОЗУ для данных, поэтому для нее ничего не надо специально резервировать, если обращаться туда по абсолютным адресам. С какого компоновщик будет туда размещать переменные.
Обидели Голикова, чуть ли не единственно грамотного человека в этой ветке и радуются.

Golikov A то хоть поздно, но всё-же прозрел, а Вы так и блуждаете в темноте....
copov
Цитата(Сергей Борщ @ Oct 22 2015, 14:18) *
Да, про это я не подумал, но вопрос был о другом. Пусть будет так:

volatile uint32_t Var_for_bit1 __attribute__((at(0x20000000)));
volatile uint32_t Var_for_bit2 __attribute__((at(0x20000004)));
volatile uint32_t Var_for_bit3 __attribute__((at(0x20000000)));

volatile uint32_t Var_for_bit1 __attribute__((at(0x20001000)));
volatile uint32_t Var_for_bit2 __attribute__((at(0x20001004)));
volatile uint32_t Var_for_bit3 __attribute__((at(0x20001000)));
В Keil комплилятор ругается, что переменная Var_for_bit3 должна начинаться с 0x20001008 адреса. Что не удивительно - это прямая обязанность нормального компилятора (может быть только по-другому ругаться будет в другой среде разработки).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.