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

 
 
> МК после сброса по WatchDog
ListenReality
сообщение Jan 21 2016, 09:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 2-04-15
Из: Железногорск
Пользователь №: 86 023



Всем привет.

Проблема такая: Необходимо завести такую переменную, которая после сброса МК по WatchDog сохранит свое значение.

Пробовал через static. Но видимо я чего-то глубоко не понимаю. Если переменную не инициализировать, то в ней рандомное значение, которое нельзя никак изменить. (А писать static int i=0 глупо, т.к. оно каждый раз будет обнуляться).

Вообще возможно ли это? или МК после сброса по WatchDog затирает память?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение Jan 21 2016, 14:39
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(ListenReality @ Jan 21 2016, 12:47) *
Всем привет.

Проблема такая: Необходимо завести такую переменную, которая после сброса МК по WatchDog сохранит свое значение.
. . .
Вообще возможно ли это? или МК после сброса по WatchDog затирает память?


В опциях проекта подключите файл линкера не по умолчанию, а с Вашими настройками.
(скопировать стандартный в каталог проекта)

В шапке лин-файла ( для MSP430F149 это файл lnk430F149.xcl )
есть такое:
Код
// segment     Restrictions    Usage
// -------     ------------    --------------------------
// DATA16_I    < 10000         Data16 initialized variables
// DATA16_Z    < 10000         Data16 zero initialized variables
// DATA16_N    < 10000         Data16 uninitialized variables
// DATA16_HEAP < 10000         Data16 heap used by malloc and free
// DATA20_I                    Data20 initialized variables
// DATA20_Z                    Data20 zero initialized variables
// DATA20_N                    Data20 uninitialized variables
// DATA20_HEAP                 Data20 heap used by malloc and free
// CSTACK      < 10000         Runtime stack


обратите внимание на сегмент DATA16_N.
Если переменную разместить там, то она не дожна инициализироваться при пергрузке.

int my_data @ "MY_DATA_IN_SEG" = 123;
MY_DATA_IN_SEG - указать в списке для DATA16_N в lnk430F149.xcl
Я сам это не проверял, но кажется в этом направлении.

также префикс __no_init
__no_init volatile unsigned __READ char U0RXBUF @ 0x0076;
итд




Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ListenReality   МК после сброса по WatchDog   Jan 21 2016, 09:47
- - mcheb   Компилятор по умолчанию при сбросе устанавливает у...   Jan 21 2016, 10:49
|- - jcxz   Цитата(k155la3 @ Jan 21 2016, 20:39) обра...   Jan 31 2016, 07:46
|- - k155la3   Цитата(jcxz @ Jan 31 2016, 10:46) Это кон...   Jan 31 2016, 12:24
|- - jcxz   Цитата(k155la3 @ Jan 31 2016, 18:24) Случ...   Feb 1 2016, 05:34
- - ListenReality   mcheb, k155la3 Спасибо за ваши ответы. Не вижу фа...   Jan 22 2016, 03:07
- - Obam   Так вы бы сразу указали, что не IARом пользуетесь.   Jan 22 2016, 07:56
|- - ListenReality   Цитата(Obam @ Jan 22 2016, 14:56) Так вы ...   Jan 22 2016, 08:35
|- - k155la3   Цитата(ListenReality @ Jan 22 2016, 12:35...   Jan 22 2016, 10:50
- - Dog Pawlowa   Цитата(ListenReality @ Jan 21 2016, 12:47...   Jan 30 2016, 18:57
|- - ListenReality   Цитата(Dog Pawlowa @ Jan 31 2016, 01:57) ...   Feb 2 2016, 02:43
|- - jcxz   Цитата(ListenReality @ Feb 2 2016, 08:43)...   Feb 2 2016, 03:49
- - E.V.G.   В компиляторе IAR есть такая функция - int __low_...   Jan 31 2016, 09:51
- - ListenReality   Спасибо всем за помощь. Впредь буду детальнее чита...   Mar 10 2016, 03:43
- - d7d1cd   Цитата(ListenReality @ Jan 21 2016, 12:47...   Apr 24 2016, 07:08
|- - Baser   Цитата(d7d1cd @ Apr 24 2016, 10:08) Меня ...   Apr 24 2016, 11:41
- - d7d1cd   Baser, Спасибо за ответ. Он, кстати, был Вашим 100...   Apr 24 2016, 18:52


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

 


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


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