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

 
 
 
Reply to this topicStart new topic
> Иницмализация переменных в Keil Arm
IIIIII
сообщение Sep 18 2006, 10:32
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 8-09-04
Пользователь №: 620



Работаю с LPC2148 Keil ARM, столкнулся с проблемой:
программа после софт ресета инициализирует
переменные в 0. Хотя мне это не нужно.
Нужно, чтобы после ресета без снятия напряжения
переменные оставались прежними. Как отключить
инициализацию переменных и можно ли это?
В Keil для 51 этого не было.
Go to the top of the page
 
+Quote Post
DimG
сообщение Sep 18 2006, 11:46
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 70
Регистрация: 4-04-06
Из: г. Омск
Пользователь №: 15 777



Программа на Си? Если да, то это свойство языка. Насколько помню, глобальные переменные в Си инициализируются нулем.
Попробуйте переменные, которые не должны сбрасываться при рестарте, не описывать, а определить через #define. Только хорошо бы еще зарезервировать эту область.
Удачи.
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Sep 18 2006, 11:53
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



Читаем NOINIT для Кейловского компилятора
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Sep 18 2006, 11:57
Сообщение #4


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(DimG @ Sep 18 2006, 15:46) *
Попробуйте переменные, которые не должны сбрасываться при рестарте, не описывать, а определить через #define. Только хорошо бы еще зарезервировать эту область.
Удачи.

Как это -- через #define описать переменные? Это же директива компилятора, под дефайны не выделяется память. И как зарезервировать область? Объяснитесь, пожалуйста.


--------------------
شامل
Go to the top of the page
 
+Quote Post
DimG
сообщение Sep 18 2006, 12:26
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 70
Регистрация: 4-04-06
Из: г. Омск
Пользователь №: 15 777



Цитата
Как это -- через #define описать переменные? Это же директива компилятора, под дефайны не выделяется память.

Я подразумевал работу напрямую с памятью, а чтобы в коде стояло символьное имя, а не адрес, определить его через define.
Цитата
И как зарезервировать область?

Конкретно как в Keil-м компиляторе, не знаю, не было необходимости. Сегодня посмотрю, если найду, сообщу. А сам язык Си предусматривавает возможность резервирования области памяти.
Подробнее завтра.

Что касается темы, то Andy Great дал лучший совет.
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Sep 18 2006, 12:44
Сообщение #6


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(DimG @ Sep 18 2006, 16:26) *
Я подразумевал работу напрямую с памятью, а чтобы в коде стояло символьное имя, а не адрес, определить его через define.
Теперь понял.

Цитата
Сегодня посмотрю, если найду, сообщу. А сам язык Си предусматривавает возможность резервирования области памяти.
Нет необходимости, я это применительно к define спрашивал.

Цитата
Что касается темы, то Andy Great дал лучший совет.
Согласен.


--------------------
شامل
Go to the top of the page
 
+Quote Post
IIIIII
сообщение Sep 19 2006, 02:32
Сообщение #7





Группа: Участник
Сообщений: 11
Регистрация: 8-09-04
Пользователь №: 620



2 Andy Great все работает, огромное спасибо!
Go to the top of the page
 
+Quote Post

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

 


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


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