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

 
 
> Вопрос по IAR, Настройки среды программирования
d7d1cd
сообщение Nov 8 2013, 18:19
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Привет всем. Подскажите, возможно ли настроить IAR так, чтобы он сделал компиляцию кода (например какой-то отдельной функции или всего кода) строго в определенный участок флешь памяти (от сих до сих, так сказать)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
d7d1cd
сообщение Jan 6 2014, 13:29
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Уже устал биться с линкером. Помогите...
У меня в проекте на ассемблере 2 файла (1 и 2). В 1 основные функции программы, во 2 так сказать рутинные функции (умножение, деление и прочее). Функции из файла 2 вызываются в 1 файле посредством директив PUBLIC и EXTERN. XCL-файл я использую свой. Его содержимое, состоящее из одной строки, такое:
Код
-Z(CODE)CODE=FC60-FFDF,9668-97EB          // Весь мой код должен быть в этих диапазонах адресов

Перед каждой функцией в файлах 1 и 2 я указываю сегмент размещения. Делаю это вот так (на примере функции умножения):
Код
RSEG    CODE:NOROOT:REORDER:SORT
Mul16u16uTo32u:                            
        DINT
        NOP
        MOV     R12, &MPY
        MOV     R13, &OP2
        MOV     &RESLO, R12
        MOV     &RESHI, R13
        EINT
        RET

Все было хорошо, пока мой код был мал. Линкер его размещал начиная с адреса FC60. Я думал, что когда закончится место в диапазоне FC60-FFDF, то линкер начнет размещать код в диапазоне 9668-97EB. Однако этого не произошло. Когда размер скомпилированного кода стал превышать размер диапазона FC60-FFDF, то линкер выдал мне ошибку:
Цитата
Linking
Error[e16]: Segment CODE (size: 0x384 align: 0x1) is too long for segment definition. At least 0x4 more bytes needed. The problem
occurred while processing the segment placement command "-Z(CODE)CODE=FC60-FFDF,9668-97EB", where at the moment of
placement the available memory ranges were "CODE:fc60-ffdf,CODE:9668-97eb"
Reserved ranges relevant to this placement:
9668-97eb CODE
fc60-ffdf CODE
Error while running Linker

Total number of errors: 1
Total number of warnings: 0

Я попробовал изменить порядок диапазонов адресов в XCL-файле. Однако это не помогло. Линкер выдает ту же ошибку. Что самое интересное, после изменения порядка адресов в XCL-файле, я убрал некоторые строки кода (чтобы "все стало помещаться"). После компиляции ошибки не стало, однако линкер все равно размещает код в диапазоне FC60-FFDF, хотя в XCL-файле этот диапазон прописан после диапазона 9668-97EB. Подскажите, что за напасть и как с ней бороться... smile3046.gif

P.S. Для информации:
CODE
NOROOT, ROOT
NOROOT means that the segment part is discarded by the linker if no symbols in this segment part are referred to.
Normally, all segment parts except startup code and interrupt vectors should set this flag.
The default mode is ROOT which indicates that the segment part must not be discarded.

REORDER, NOREORDER
REORDER allows the linker to reorder segment parts. For a given segment, all segment parts must specify the same state for this flag.
The default mode is NOREORDER which indicates that the segment parts must remain in order.

SORT, NOSORT
SORT means that the linker sorts the segment parts in decreasing alignment order. For a given segment,
all segment parts must specify the same state for this flag. The default mode is NOSORT
which indicates that the segment parts are not sorted.


Сообщение отредактировал d7d1cd - Jan 6 2014, 13:35
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 6 2014, 13:52
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(d7d1cd @ Jan 6 2014, 18:29) *
Я попробовал изменить порядок диапазонов адресов в XCL-файле. Однако это не помогло. Линкер выдает ту же ошибку. Что самое интересное, после изменения порядка адресов в XCL-файле, я убрал некоторые строки кода (чтобы "все стало помещаться"). После компиляции ошибки не стало, однако линкер все равно размещает код в диапазоне FC60-FFDF, хотя в XCL-файле этот диапазон прописан после диапазона 9668-97EB. Подскажите, что за напасть и как с ней бороться... smile3046.gif

Приложите в сообщению весь ваш XCL-файл полностью.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- d7d1cd   Вопрос по IAR   Nov 8 2013, 18:19
- - Xenia   Цитата(d7d1cd @ Nov 8 2013, 22:19) Подска...   Nov 8 2013, 18:35
- - d7d1cd   При попытке компиляции IAR выдает ошибку Fatal Err...   Nov 9 2013, 04:51
|- - Xenia   Цитата(d7d1cd @ Nov 9 2013, 08:51) Спасиб...   Nov 9 2013, 15:56
|- - d7d1cd   Цитата(Xenia @ Nov 9 2013, 19:56) А потом...   Nov 9 2013, 17:31
|- - Xenia   Цитата(d7d1cd @ Nov 9 2013, 21:31) По рас...   Nov 9 2013, 20:19
- - d7d1cd   Попытался указать переменной конкретный адрес. Нич...   Nov 10 2013, 10:30
|- - Xenia   Цитата(d7d1cd @ Nov 10 2013, 14:30) В код...   Nov 10 2013, 12:25
|- - d7d1cd   Сделал объявление переменной глобально, то есть вн...   Nov 10 2013, 13:42
|- - Xenia   Цитата(d7d1cd @ Nov 10 2013, 17:42) Все х...   Nov 10 2013, 13:53
- - d7d1cd   Хорошо. А возможно ли какой-то локальной переменно...   Nov 10 2013, 14:04
|- - SSerge   Цитата(d7d1cd @ Nov 10 2013, 21:04) Возмо...   Nov 10 2013, 14:45
||- - d7d1cd   Цитата(SSerge @ Nov 10 2013, 18:45) Остав...   Nov 10 2013, 14:57
||- - rezident   Цитата(d7d1cd @ Nov 10 2013, 19:57) Если ...   Nov 11 2013, 20:28
|- - Xenia   Цитата(d7d1cd @ Nov 10 2013, 18:04) Хорош...   Nov 10 2013, 14:53
- - d7d1cd   Уважаемый rezident, объяснения как всегда на высот...   Nov 12 2013, 05:02
|- - Xenia   Цитата(d7d1cd @ Nov 12 2013, 09:02) Хочет...   Nov 12 2013, 09:33
|- - d7d1cd   Цитата(Xenia @ Nov 12 2013, 13:33) ...нап...   Nov 12 2013, 10:01
|- - MrYuran   Цитата(d7d1cd @ Nov 12 2013, 14:01) Как п...   Nov 13 2013, 06:34
- - d7d1cd   Создал я проект, добавил в него файл. В этом файле...   Nov 13 2013, 09:09
- - MrYuran   Прямо так и вызывать, предварительно объявив прото...   Nov 13 2013, 09:26
- - d7d1cd   Попробовал следовать Вашему совету. Файл с функцие...   Nov 13 2013, 10:19
|- - MrYuran   Цитата(d7d1cd @ Nov 13 2013, 14:19) Скажи...   Nov 13 2013, 10:53
- - d7d1cd   Ошибка Bad instruction. Возникает в строке ассембл...   Nov 13 2013, 11:02
- - d7d1cd   Сделал я проект. Прикладываю его сюда. В этом прое...   Nov 14 2013, 07:48
|- - rezident   Цитата(d7d1cd @ Nov 14 2013, 12:48) Сдела...   Nov 14 2013, 15:20
- - d7d1cd   Спасибо всем за помощь! Наконец то я победил к...   Nov 14 2013, 17:28
- - d7d1cd   И снова здравствуйте. Теперь я умею в одном проект...   Nov 17 2013, 09:56
|- - Xenia   Цитата(d7d1cd @ Nov 17 2013, 13:56) Подск...   Nov 17 2013, 10:47
|- - d7d1cd   Цитата(Xenia @ Nov 17 2013, 14:47) У IAR ...   Nov 17 2013, 11:08
|- - Xenia   Цитата(d7d1cd @ Nov 17 2013, 15:08) Пока ...   Nov 17 2013, 12:01
|- - d7d1cd   Цитата(Xenia @ Nov 17 2013, 16:01) ...вы ...   Nov 17 2013, 12:49
|- - Xenia   Цитата(d7d1cd @ Nov 17 2013, 16:49) Как ж...   Nov 17 2013, 13:13
- - d7d1cd   И снова здравствуйте. Подскажите, пожалуйста, как ...   Nov 22 2013, 07:29
|- - Xenia   Цитата(d7d1cd @ Nov 22 2013, 11:29) Подск...   Nov 22 2013, 11:23
- - d7d1cd   Спасибо, Xenia. Я пока не пробовал в компиляторе, ...   Nov 22 2013, 16:36
- - d7d1cd   Все получилось. Спасибо. Есть еще вопрос по распол...   Nov 23 2013, 16:53
|- - Xenia   Цитата(d7d1cd @ Nov 23 2013, 20:53) Спаси...   Nov 23 2013, 18:01
- - d7d1cd   Я пытался свою задачу выполнить следующим образом....   Nov 24 2013, 07:04
|- - Xenia   Цитата(d7d1cd @ Nov 24 2013, 11:04) Все з...   Nov 24 2013, 17:58
- - d7d1cd   А чем, собственно, отличаются конфигурации Debug и...   Nov 25 2013, 15:21
|- - Xenia   Цитата(d7d1cd @ Nov 25 2013, 19:21) А чем...   Nov 25 2013, 21:12
- - d7d1cd   Привет всем. Снова вопрос по среде программировани...   Dec 28 2013, 15:06
- - d7d1cd   Разобрался в своем вопросе. Необходимо перед объяв...   Jan 1 2014, 13:25
- - d7d1cd   Решил один вопрос, появился другой. Задам тут, мож...   Jan 4 2014, 09:09
|- - rezident   Цитата(d7d1cd @ Jan 4 2014, 14:09) А нель...   Jan 4 2014, 15:31
- - d7d1cd   Спасибо за помощь!   Jan 4 2014, 17:15
|- - d7d1cd   Цитата(rezident @ Jan 6 2014, 17:52) Прил...   Jan 6 2014, 14:59
- - SM   Сделайте еще одну секцию с кодом, с другим именем,...   Jan 6 2014, 15:30
|- - d7d1cd   Цитата(SM @ Jan 6 2014, 19:30) Сделайте е...   Jan 6 2014, 15:46
|- - SM   Цитата(d7d1cd @ Jan 6 2014, 19:46) Я пони...   Jan 6 2014, 16:57
|- - d7d1cd   Цитата(SM @ Jan 6 2014, 20:57) Вообще, об...   Jan 6 2014, 17:16
|- - SM   Цитата(d7d1cd @ Jan 6 2014, 21:16) Тогда ...   Jan 6 2014, 19:17
- - d7d1cd   Итак, у меня снова возник вопрос по системе програ...   Feb 27 2014, 15:30
|- - rezident   Цитата(d7d1cd @ Feb 27 2014, 20:30) А воз...   Feb 27 2014, 15:38
|- - d7d1cd   Цитата(rezident @ Feb 27 2014, 19:38) Сде...   Feb 27 2014, 16:09
|- - _Артём_   Цитата(d7d1cd @ Feb 27 2014, 20:09) [code...   Feb 27 2014, 16:54
|- - d7d1cd   Цитата(_Артём_ @ Feb 27 2014, 20:54) Може...   Feb 27 2014, 16:56
|- - _Артём_   Цитата(d7d1cd @ Feb 27 2014, 20:56) ASEG ...   Feb 27 2014, 17:23
- - d7d1cd   Вроде разобрался как использовать директиву ASEG: ...   Feb 28 2014, 13:39
- - d7d1cd   При создании проекта на ассемблере я вижу, что ест...   Mar 11 2014, 13:20


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 03:14
Рейтинг@Mail.ru


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