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

 
 
> Помогите разобраться с RVMDK
vesago
сообщение Apr 4 2006, 11:31
Сообщение #1


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Писал проект в карме решил перебраться на RVMDK. В моем устройстве на LPC2214 две внешние микросхемы памяти. Одна статика для буфера, вторая - флешка. В карме я их прописывал в опциях проекта и объявлял как массивы по конкретным адресам, дабы линкер не пытался в них какие переменные запихнуть. Ну еще пред ними ставил но инит, чтоб при запуске не инициализировало.
В RMDK вообще не возможно массив поместить по поределенному адресу. По крайней мере __at не работатет. Как сделать, чтоб не инициализировало - тоже не знаю. Память в опциях диалога прописываю, а она в отладчике не пашет. Пишет, что запись не возможна. Стартап я поправил. Как мне прописать этувнешнюю память? Не хочется назад в карм возвращаться. Помогите.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vesago
сообщение Apr 5 2006, 08:59
Сообщение #2


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Благодарю! Я почитал. Переварю. Пробовал и примеры из кейла разбирать. В общем понятно, но вопрос открыт. Я прописал для LPC2214 основную память и внешнюю срам:
Код
LR_IROM1 0x00000000 0x00040000  {; load region
  ER_IROM1 0x00000000  {     ; load address = execution address
   *.o (RESET, +First)
   * (+RO)
  }
  RW_IRAM1 0x40000000 0x00004000  {; RW data
   * (+RW +ZI)
  }
  RW_RAM1 0x80000000 UNINIT 0x00004000  {
    2.o (+RW)
  }
}

В файле 2.с создавал различные переменные, которые пользовал в майне. В опшионс для 2.с прописал кроме дефаулт внешнюю память. Мне не понравилось, что линкер упорно не захотел разместить массив данных, расположенный в 2.с во внешней памяти. Массив он пихает в набортную память. Код как положено, а переменные в файле 2. как раз во внешней памяти. Я вообще представлял, что создаешь любые переменные, прописываешь в опциях модуля память и линкер автоматом их размещает. А тут он как-то избирательно подходит. Если массив - в инициализируемой памяти, если переменная, то во внешней. Таким образом не могу придумать главное - как мне помещать и считывать данные из внешней SRAM.
Вообще реалвью показался мне недружественным. С указателями требует крайней точности. unsigned char *blabla = 0x80000 не пройдет. Обязательно надо поставить unsigned char *blabla = (unsigned long*)0x80000. В функцию передаю аргумент, внутри функции он каким-то макаром передает левое значение. Я и volatile писал - не помогает. Короче не пойму - чего его народ хвалит?
Go to the top of the page
 
+Quote Post



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

 


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


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