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

 
 
> STM32, backup registers, как бы поудобнее реализовать с ними работу
sonycman
сообщение Jun 7 2010, 19:22
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Доброго времени суток!
Вот думаю использовать регистры бэкап домена.
Как бы прозрачнее это сделать, в идеале так, чтобы работа с ними не отличалась от работы с ячейками обычного ОЗУ?
Можно ли это?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Serj78
сообщение Dec 14 2010, 06:55
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



А что включают ваши функции? (какие биты в каких регистрах)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP | RCC_APB1Periph_PWR,ENABLE); // вкл тактирование нужной периферии
PWR_BackupAccessCmd(ENABLE);// разрешаем доступ к BKP

Я включаю так:

RCC->APB1ENR|=(1<<27); // включили тактирование BKP
PWR->CR|=(1<<8); // разрешили запись в BKP

Включаю после включения всего тактирования и запуска PLL. Пробовал и до- не меняется ничего..

Но!! почему-то в отладчике я не вижу в этих регистрах установленных галочек.

А в PWR_CR бит PWR_CR_DBP вообще не выставляется из отладчика sad.gif пропадает сразу..
Go to the top of the page
 
+Quote Post
zoddy
сообщение Dec 14 2010, 07:32
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 4-12-05
Из: Екатеринбург
Пользователь №: 11 773



Цитата(Serj78 @ Dec 14 2010, 11:55) *
А что включают ваши функции? (какие биты в каких регистрах)


Это функции из ST-шной библиотеки. Я особо над ними не заморачивался, выдернул из примера и вставил в свою прогу.

а вообще в Reference Manual написано

Цитата
After reset, access to the Backup registers and RTC is disabled and the Backup domain
(BKP) is protected against possible parasitic write access. To enable access to the Backup
registers and the RTC, proceed as follows:
● enable the power and backup interface clocks by setting the PWREN and BKPEN bits
in the RCC_APB1ENR register
● set the DBP bit the Power Control Register (PWR_CR) to enable access to the Backup
registers and RTC.


Соответственно у Вас закралась ошибка и скорее всего должно быть так
RCC->APB1ENR|=(1<<27)|(1<<28); // включили тактирование BKP и PWR
Go to the top of the page
 
+Quote Post
zoddy
сообщение Dec 14 2010, 07:57
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 4-12-05
Из: Екатеринбург
Пользователь №: 11 773



В общем, проверил на своей железяке вариант

RCC-> APB1ENR|=(1<<27)|(1<<28);
PWR-> CR |=(1<<8);

...работает


Цитата(Serj78 @ Dec 14 2010, 12:52) *
Да, спасибо! узел контроля питания ( 28-й бит) включить забыл sm.gif !


Вам тож спасибо, заодно свою программу чуток укоротил :-D... ато все руки не доходили!


Сообщение отредактировал zoddy - Dec 14 2010, 07:57
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 14 2010, 15:53
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А если немножко удлиннить программу, написав вместо
Цитата(zoddy @ Dec 14 2010, 12:57) *
RCC-> APB1ENR|=(1<<27)|(1<<28);
PWR-> CR |=(1<<8);

что-то типа
Код
    RCC->APB1ENR |= RCC_APB1ENR_PWREN | RCC_APB1ENR_BKPEN;
    PWR->CR |= PWR_CR_DBP;
, то работать будет так же, а разбираться через месяц или через год - легчеsm.gif
Да и остальным читателям в форуме будет понятнее.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
zoddy
сообщение Dec 15 2010, 04:36
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 4-12-05
Из: Екатеринбург
Пользователь №: 11 773



Цитата(AHTOXA @ Dec 14 2010, 23:53) *
А если немножко удлиннить программу, написав вместо


Ну вообще-то... чуть выше по тексту, были приведены комментарии к выполняемым действиям... а уж... в каком виде оформлять битовые маски - это дело вкуса... я в данном случае написал так, как удобно для понимания автору, который задал вопрос :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sonycman   STM32, backup registers   Jun 7 2010, 19:22
- - baralgin   Из RM0008: Backup data register x (BKP_DRx) (x = 1...   Jun 7 2010, 20:38
- - rezident   Стесняюсь спросить, а компиляторы про эту фичу не ...   Jun 7 2010, 20:48
- - sonycman   Спасибо за советы. Реализация в виде дефайнов слиш...   Jun 9 2010, 12:34
- - baralgin   Цитата(sonycman @ Jun 9 2010, 15:34) А во...   Jun 9 2010, 18:43
- - adnega   помним, что слова BKP_DRx 16-битные и между ними е...   Jun 9 2010, 19:31
- - baralgin   adnega так именно из-за этого то и весь сыр-бор ра...   Jun 9 2010, 20:11
- - adnega   Мне кажется, что "прозрачность" будет за...   Jun 10 2010, 07:45
- - sonycman   Ну, необходимость вызова функций Load\Save и ...   Jun 10 2010, 09:37
- - adnega   Если под "прозрачностью" понимать непрер...   Jun 10 2010, 09:46
- - sonycman   Нет, в моём понимании "прозрачность" - э...   Jun 10 2010, 10:39
- - adnega   Добился-таки "прозрачности", но на lpc17...   Jun 11 2010, 05:19
|- - Serj78   А у кого- нибудь получилось записать в эти регистр...   Dec 14 2010, 03:23
|- - adnega   Цитата(Serj78 @ Dec 14 2010, 06:23) А у к...   Dec 14 2010, 04:17
|- - zoddy   Цитата(Serj78 @ Dec 14 2010, 08:23) А у к...   Dec 14 2010, 04:21
- - Serj78   Да, спасибо! узел контроля питания ( 28-й бит...   Dec 14 2010, 07:52


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:01
Рейтинг@Mail.ru


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