Easyelectronics.ru

Электроника для всех
Текущее время: 11 авг 2020, 02:57

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Привязка переменной в ОЗУ к определенному адресу
СообщениеДобавлено: 15 дек 2016, 16:52 
Здравствуйте!

Зарегистрирован: 03 ноя 2016, 18:24
Сообщения: 2
GCC ARM
надо при инициализации переменную в ОЗУ привязать к определенному адресу, чтобы иметь возможность после мягкого рестарта (без сброса питания)
прочитать ее значение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Привязка переменной в ОЗУ к определенному адресу
СообщениеДобавлено: 15 дек 2016, 18:02 
Старожил
Аватара пользователя

Зарегистрирован: 23 июл 2010, 09:54
Сообщения: 207
Откуда: Чебоксары
Такое сойдет:
Код:

#define BL_TEST_CELL_ADRS        (0x20004900)
#define BL_MAG_NUM                  (0x54329834)
uint32_t* bl_test_cell = (uint32_t*) BL_TEST_CELL_ADRS;
...
if(*bl_test_cell  == BL_MAG_NUM){
  do_it();
}
..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Привязка переменной в ОЗУ к определенному адресу
СообщениеДобавлено: 15 дек 2016, 18:22 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2769
Откуда: Санкт-Петербург
Статические переменные "из коробки" получаются привязанными к адресам, при следующем запуске попадут в то ж место. Вам afaik надо чуть другое - положить её в секцию .noinit, чтобы при старте программы её не зачистило.
int foo __attribute__ ((section (".noinit")));


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Привязка переменной в ОЗУ к определенному адресу
СообщениеДобавлено: 16 дек 2016, 13:01 
Только пришел

Зарегистрирован: 09 фев 2012, 21:29
Сообщения: 17
Eсли проц STM проще использовать backup registers. Они же и у lpc17xx есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Привязка переменной в ОЗУ к определенному адресу
СообщениеДобавлено: 27 дек 2016, 12:57 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 856
Использование секции .noinit в данном случае, ИМХО тактически верно. Потому как это почти всегда сработает.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB