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

 
 
> Распределение переменных в ОЗУ, как заставить Keil раскидать данные правильно??
AndreyS
сообщение Oct 17 2006, 10:30
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Добрый день всем.


Возник вопрос.

Какие настройки заставляют Keil раскидывать данные линейно, последовательно для ВСЕГО проекта?

Поясню.

Имею проект с 5 файлами. В каждом из файлов определил переменные доступные только для этого файла. При работе программы наблюдаю как одна (пока одна может и больше) переменная меняется не помоим законам. Что-то туда еще перекидывает данные. Закомментил все процедуры связанные с изменением этой переменной и все равно переменная дергается.

Как заставить Кеил построить для меня всю карту памяти для всего проекта? Что, куда она положила по каким адресам? Хочу найти перекрестные ссылки.

И еще как в настройках компилятора (не в коде) задать SP??? Хочется чтобы SP устанавливался один раз, а не дважды.


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
YAM
сообщение Oct 17 2006, 16:31
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Имею ту же давнюю проблему в Keil для 51-го... И это тянется практически от начала проекта (2001 год) и до текущей V8.02 компилятора. Так как проект очень большой и я использую far memory type support для доступа к данным, хранящимся во внешних EEPROM, да и проект довольно старый, уже и нет смысла переходить на IAR. В IAR я таких "глюков" не наблюдал, правда использую в нем только ARV и ARM. Эти глюки у меня проявляются в порче локальных переменных в функции при вызове других фуекций, т.к. компилятор почему-то выделяет для временных операций адреса тех-же переменных... Поэтому приходится извращаться таким способом:
uchar * data TDST;
uint data TSIZE;
void ymemclr(uchar *uk, uint size)
{
TDST = (uchar*)uk;
TSIZE = size;
do
{
*TDST++ = 0;
} while(--TSIZE);
}


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 15:48
Рейтинг@Mail.ru


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