|
RSEG(-z), перемещаемый сегмент |
|
|
|
May 13 2009, 07:15
|
Участник

Группа: Участник
Сообщений: 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)
|
|
|
|
|
 |
Ответов
|
May 13 2009, 07:33
|

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 файл и посмотрите, как там сделано. Сделайте по аналогии. Там буквально в одну строку это делается.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
May 13 2009, 07:56
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
May 13 2009, 08:06
|
Участник

Группа: Участник
Сообщений: 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 находится в том же сегменте, вы изначально указали свой сегмент, вот стартап на него и переходит
Причина редактирования: Излишнее цитирование.
|
|
|
|
|
May 13 2009, 09:02
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
Сообщений в этой теме
Fynjy86 RSEG(-z) May 13 2009, 07:15    arttech Цитата(Fynjy86 @ May 13 2009, 12:02) В яр... May 13 2009, 10:10     Fynjy86 вроде работает, огромное спасибо всем May 13 2009, 13:13      Fynjy86 Цитата(Fynjy86 @ May 13 2009, 17:13) врод... May 20 2009, 07:44       arttech Цитата(Fynjy86 @ May 20 2009, 10:44) в си... May 20 2009, 16:27        Fynjy86 сам вопрос возник из-за постоянной необходимости п... May 21 2009, 05:57 SSerge Одно непонятно, а зачем Вам вся эта суета с объявл... May 20 2009, 13:20
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|