vlad_new 1 25 июля, 2013 Опубликовано 25 июля, 2013 · Жалоба Есть возможность объявлять статические переменные, массивы и структуры для STM32F4XX, что бы компилятор их определял в BKP память, но при этом не инициализировал. Сейчас я это делаю через структуру, объедененную с union. Вот и подумал может есть способ покрасивее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 25 июля, 2013 Опубликовано 25 июля, 2013 · Жалоба Есть возможность объявлять статические переменные, массивы и структуры для STM32F4XX, что бы компилятор их определял в BKP память, но при этом не инициализировал. Можно, это делается через секцию с атрибутом UNINIT. Сейчас я это делаю через структуру, объедененную с union. Вот и подумал может есть способ покрасивее. А зачем union? Просто структура и указатель. Способ годный, так все BKP-переменные будут сведены в тексте в одном месте. Да и писанины меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex5 0 26 июля, 2013 Опубликовано 26 июля, 2013 · Жалоба В иаре так можно получить адрес начала секции потом инициализировать указатели типа структура, по размеру рассчитать смещения. #pragma section = "BKP" void *GetBkpAddr(void) { /* Return start address of section BKP. */ return __section_begin("BKP"); } думаю в Кейле подобно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 26 июля, 2013 Опубликовано 26 июля, 2013 · Жалоба а BKP - это бэкап секция? А почему 4 килобайта, там же всего порядка 20 регистров или я чего то не понимаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex5 0 26 июля, 2013 Опубликовано 26 июля, 2013 · Жалоба В некоторых STM32 например STM32F205xx бонус дополнительно 4K backup SRAM VBAT supply for RTC, 20 × 32 bit backup registers, and optional 4 KB backup SRAM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 26 июля, 2013 Опубликовано 26 июля, 2013 · Жалоба понятно, спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 26 июля, 2013 Опубликовано 26 июля, 2013 · Жалоба А зачем union? Просто структура и указатель. Способ годный, так все BKP-переменные будут сведены в тексте в одном месте. Да и писанины меньше. +1. Сам бы так и сделал. struct bkp_vars { int i; float f; }; struct bkp_vars* const bkp = (struct bkp_vars*)0x12345678; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vlad_new 1 26 июля, 2013 Опубликовано 26 июля, 2013 · Жалоба Ну да. Мне тоже понравилось.Через указатель действительно красивее чем с секциями возиться. Всем спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться