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

 
 
> Keil. __main обнуляет переменные в Backup SRAM, как не дать ему этого делать?
ViKo
сообщение Apr 3 2015, 16:20
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Жил-был проект, функция SystemInit была самодельная, задавала частоту PLL и от нее частоты шин. Дальше выполнялась __main, задавала переменные, и переходила к Main.
Решил я добавить в SystemInit инициализацию FSMC (контроллера внешней памяти). Не могу вспомнить, зачем. Вроде, что-то не инициализировалось. [Кстати, стандартная SystemInit тоже так делает.] Заодно и всю остальную периферию инициализировал. До выполнения __main. И теперь эта __main очищает мои переменные, отвечающие за режимы работы прибора, лежащие во внутренней Backup SRAM. Предполагаю, что раньше она просто не могла добраться до этих переменных.
Что наблюдаю в отладчике: Жму Reset - переменные заполнены абракадаброй, но это не настоящее их содержимое, просто доступа нет. После выполнения SystemInit читается их реальное значение, бывшее до сброса. После выполнения __main все эти переменные обнуляются!
Вопрос - что, так и должно быть? И раньше не обнулялись переменные только оттого, что __main не могла до них добраться? В исходниках переменные описаны с атрибутами, в скаттере секции описаны, переменные положены, куда положено ( biggrin.gif )... Типа, вот так:
volatile uint32_t Signature __attribute((section("backup")));

RW_IRAM2 0x40024000 UNINIT 0x00001000 { ; Backup RAM
Main.o (backup)
}
Да, имею вариант вернуться к прежней SystemInit. Но для чего-то мне же понадобилось инициализировать контроллер внешней памяти до __main...

Как заставить Keil не инициализировать избранные глобальные переменные?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ViKo   Keil. __main обнуляет переменные в Backup SRAM   Apr 3 2015, 16:20
- - ViKo   Так и есть. Задал остановку МК при записи к переме...   Apr 6 2015, 07:38
- - aaarrr   Странно, UNINIT у меня работал корректно. И это не...   Apr 6 2015, 07:43
|- - ViKo   Цитата(aaarrr @ Apr 6 2015, 10:43) Странн...   Apr 6 2015, 07:50
|- - aaarrr   Цитата(ViKo @ Apr 6 2015, 10:50) Копирова...   Apr 6 2015, 07:52
- - ViKo   Цитата(aaarrr @ Apr 6 2015, 10:52) Послов...   Apr 6 2015, 08:07
- - aaarrr   Вот копирование меня и смущает: структура в Backup...   Apr 6 2015, 08:18
- - ViKo   Код Signature 0x40024000 Data 4 silu...   Apr 6 2015, 08:21
- - aaarrr   А как она объявлена, структура эта?   Apr 6 2015, 08:31
- - ViKo   Там структура из структур. Атрибут - только общий,...   Apr 6 2015, 08:53
- - aaarrr   Надо разбираться, почему они получили атрибут RW в...   Apr 6 2015, 08:59
|- - Dr.Alex   Если в ИАРе, добавьте __no_init и наверняка пробле...   Apr 6 2015, 09:25
|- - ViKo   Цитата(aaarrr @ Apr 6 2015, 11:59) Надо р...   Apr 6 2015, 09:29
- - aaarrr   Попробуйте это. Цитата(ViKo @ Apr 6 2015, 12...   Apr 6 2015, 09:32
- - ViKo   Я вже попробовав ось таке. Помогло. Спасибо! У...   Apr 6 2015, 09:41
- - aaarrr   Цитата(ViKo @ Apr 6 2015, 12:41) zero_ini...   Apr 6 2015, 09:46


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

 


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


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