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

 
 
> Управление сегментами из Keil uVision for ARM, Проблема с заданием расположения сегментов в памяти
WhiteWolf
сообщение May 22 2007, 07:32
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 22-05-07
Пользователь №: 27 874



Здравствуйте.

Я пишу программу на Keil uVision v3.23 for ARM. Программа состоит из сишных и ассемблерных модулей. Мне необходимо, чтобы определенная часть программы помещалась в начале FLASH-памяти МК, а оставшаяся - после этой части. В справке по этому поводу есть описание директив линкера SEGMENTS и CLASSES. Но когда я пытаюсь использовать эти команды, результат нулевой.

Когда я вызываю из среды окно "Options for Target ...", и на закладке LA Locate пытаюсь определить новый класс для сегментов, например так: INITIAL_LOADER (0x80000-0x804FF), то при компиляции получаю:
*** ERROR L237: INVALID CLASS NAME
Описания этой ошибки в справке нет

Когда я директивой SEGMENTS хочу установить порядок следования сегментов - один раньше, второй после, то программа компилируется, но просмотр файла ProjectName.map показывает, что линкер никак не реагирует на мою директиву.

Я что-то делаю не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DeadMoroz
сообщение May 22 2007, 23:27
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-02-05
Пользователь №: 2 391



Если Вы используете RV компилятор, то для манипуляций с сегментами можно использовать scatter (.scf) файл (указывается в свойствах линкера). В Кейле есть соответствующие примеры.
Что-то типа этого (для AT91M40800):
LOAD_FLASH 0x00400000
{
Flash 0x00400000
{
File1.o (EnterPoint1, +First)
* (+RO)
}
ExtRAM 0x01400000
{
* (+RW, +ZI)
}
}
Т.е. во флэше первым будет лежать код из модуля File1 с точкой входа EnterPoint1, а далее будет остальной код (RO), во внешней памяти будут расположены все данные (RW, ZI).
Go to the top of the page
 
+Quote Post



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

 


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


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