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

 
 
> RSEG(-z), перемещаемый сегмент
Fynjy86
сообщение May 13 2009, 07:15
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



Хочу использовать для подпрограм перемещаемые сегменты что б не заморачиваться на размещение самому их по памяти самому и не отвлекаться на случаи перекрытия сегментов. Подскажите как правельно это сделать. Советы типа:"Читай юзергвайд" не пишите, т.к. пишу сюда только в крайнем случае, когда уже ничего не помогает.


тут пример написанного кода подпрограммы:


NAME M1E1_add_M2E2

RSEG M1E1_add_M2E2

M1E1_add_M2E2:

NOP

END

ерор:
Fatal Error[e72]: Segment M1E1_add_M2E2 must be defined in a segment definition option (-Z, -b or -P)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение May 13 2009, 07:33
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Fynjy86 @ May 13 2009, 14:15) *
ерор:
Fatal Error[e72]: Segment M1E1_add_M2E2 must be defined in a segment definition option (-Z, -b or -P)

Вы сегмент-то завели свой собственный, а по каким адресам его размещать, не указали. Вам нужно в линкерном скрипте (я так понял, что речь идет об IAR'е), .xcl файл, указать, в какие адреса этот сегмент помещать. Откройте любой .xcl файл и посмотрите, как там сделано. Сделайте по аналогии. Там буквально в одну строку это делается.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Fynjy86
сообщение May 13 2009, 07:56
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



// ---------------------------------------------------------
// All memory 0 - 0xFFFFF
// ---------------------------------------------------------
// ---------------------------------------------------------
// M1E1_add_M2E2

-P(CODE)M1E1_add_M2E2=3100-FFBF,10000-1FFFF

// ---------------------------------------------------------
// Code

-P(CODE)CODE=3100-FFBF,10000-1FFFF

// ---------------------------------------------------------

ВРОДЕ ДОБАВИЛ, ТАК ИЛИ НЕТ??
ВЫДАЕТ ОШИБКУ
Wed May 13 15:53:44 2009: Error (col 1): Unknown or ambiguous symbol. main
Go to the top of the page
 
+Quote Post
arttech
сообщение May 13 2009, 08:06
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 28-10-06
Из: г. Севастополь
Пользователь №: 21 744



Цитата(Fynjy86 @ May 13 2009, 10:56) *
ВРОДЕ ДОБАВИЛ, ТАК ИЛИ НЕТ??
ВЫДАЕТ ОШИБКУ
Wed May 13 15:53:44 2009: Error (col 1): Unknown or ambiguous symbol. main

Попробуйте сделать так:

-P(CODE)CODE=3100-FFBF,10000-1FFFF
-P(CODE)M1E1_add_M2E2=3100-FFBF,10000-1FFFF

Дело в том, что main находится в том же сегменте, вы изначально указали свой сегмент, вот стартап на него и переходит
Причина редактирования: Излишнее цитирование.
Go to the top of the page
 
+Quote Post
Fynjy86
сообщение May 13 2009, 09:02
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



сделал, полезли ошибки
Error[e18]: Range error,
Address out of range. Valid range is 0 to 65535 (0xFFFF).
File: K:\IAR Systems\E'Board\Библиотека подпрограмм\asm.s43, Line: 19
Source: CALL M1E1_add_M2E2

Where $ = main + 0xA [0x310E]
in module "main" (K:\IAR Systems\E'Board\Библиотека подпрограмм\Debug\Obj\asm.r43),
offset 0xE in segment part 2, segment CODE
What: __XMS430F5438__ [0x10000]
Allowed range: 0x0 - 0xFFFF
Operand: __XMS430F5438__ [0x10000]
in module main (K:\IAR Systems\E'Board\Библиотека подпрограмм\Debug\Obj\asm.r43),
Offset 0x0 in segment part 0, segment M1E1_add_M2E2
Error while running Linker

В яре есть возможность объявлять кусок кода, автоматически распологаемого в памяти без кройки линковки?? к примеру как это сделано в фитоновском редакторе?

Сообщение отредактировал Fynjy86 - May 13 2009, 09:03
Go to the top of the page
 
+Quote Post



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

 


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


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