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

 
 
 
Reply to this topicStart new topic
> ошибка линкера в IAR 5.11
Jurdens
сообщение Jun 17 2008, 12:15
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 9-07-05
Пользователь №: 6 656



Выдает сообщение
ielftool error: Range must be 4-byte aligned: 0-0
Что делать непонимаю
Настройки КС в меню линкира вроде все перепробовал.
Go to the top of the page
 
+Quote Post
Jurdens
сообщение Jun 19 2008, 03:20
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 9-07-05
Пользователь №: 6 656



в продолжение к выше изложенному
Когда снимаешь галочку Fill unused code memory в закладке линкера checksum
то сообщение меняется на ielftool error: The checksum symbol is of an invalid type
Есть еще заметка на ИАРе по поводу расчета КС
http://supp.iar.com/Support/?note=11927&from=note+91733
но внедрение приведенного там примера по расчету КС в мой проект не привело к изменению
ситуации.По прежнему сообщение The checksum symbol is of an invalid type Хотя отдельно пример работает.
Пример взял из ЮКОСА для LPC2378 -название проекта LPC2378-SK-OS-View.ewp он не работает хотя
другой пример на LPC2468 - LPC2468-EA-OS-View.ewp работает нормально с теми же настройками проекта.
Собственно если внимательно посмотреть то ошибка происходит на фазе преобразования
в HEX формат
Ниже сообщение при правилно работающем линкере(или конверторе)
Link time: 0.31 (CPU) 1.44 (elapsed)
ielftool --checksum __vector_0x14:4,sum32:2;__vector-__vector+0x1f --verbose C:\arm\lpc\Micrium\Software\
EvalBoards\NXP\LPC2468-EA\IAR\OS-View\Flash\Exe\LPC2468-EA-OS-View.out.tmp C:\arm\lpc\Micrium\Software\
EvalBoards\NXP\LPC2468-EA\IAR\OS-View\Flash\Exe\LPC2468-EA-OS-View.out
Loading C:\arm\lpc\Micrium\Software\EvalBoards\NXP\LPC2468-EA\IAR\OS-View\Flash\Exe\
LPC2468-EA-OS-View.out.tmp
Calculated checksum for __vector_0x14: 0xb8a06f58

Saving ELF file to C:\arm\lpc\Micrium\Software\EvalBoards\NXP\LPC2468-EA\IAR\OS-View\Flash\Exe\
LPC2468-EA-OS-View.out

LPC2468-EA-OS-View.out
Converting
ielftool.exe --ihex --verbose C:\arm\lpc\Micrium\Software\EvalBoards\NXP\LPC2468-EA\IAR\OS-View\Flash\Exe\
LPC2468-EA-OS-View.out C:\arm\lpc\Micrium\Software\EvalBoards\NXP\LPC2468-EA\IAR\OS-View\Flash\Exe\
LPC2468-EA-OS-View.hex
Loading C:\arm\lpc\Micrium\Software\EvalBoards\NXP\LPC2468-EA\IAR\OS-View\Flash\Exe\
LPC2468-EA-OS-View.out
Saving ihex file to C:\arm\lpc\Micrium\Software\EvalBoards\NXP\LPC2468-EA\IAR\OS-View\Flash\Exe\
LPC2468-EA-OS-View.hex

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


А сейчас нижеприведен фрагмент со сбоем в процессе

Link time: 0.30 (CPU) 0.44 (elapsed)
ielftool --checksum __vector_0x14:4,sum32:2;__vector-__vector+0x1f --verbose C:\arm\lpc\Micrium\Software\EvalBoards\
NXP\LPC2378-SK\IAR\OS-View\DebugFlash\Exe\LPC2378-SK-OS-View-v5.out.tmp C:\arm\lpc\Micrium\Software\
EvalBoards\NXP\LPC2378-SK\IAR\OS-View\DebugFlash\Exe\LPC2378-SK-OS-View-v5.out
Loading C:\arm\lpc\Micrium\Software\EvalBoards\NXP\LPC2378-SK\IAR\OS-View\DebugFlash\Exe\
LPC2378-SK-OS-View-v5.out.tmp

ielftool error: The checksum symbol is of an invalid type

Error while running Linker

Total number of errors: 2
Total number of warnings: 0

Аналогичные фрагменты выделены красным цветом.
Может приведенная выше информация как то прояснит ситуацию?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 19 2008, 05:30
Сообщение #3


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Символ __vector_0x14 определяется обычно в файле cstartup.s (или с похожим названием).
Сравните содержимое этих файлов в работающем и неработающем проектах на предмет определения __vector_0x14.
Описанные Вами настройки линкера и ссылка на статью отвечают за подсчёт КС для всего пространства кода и сюда отношения не имеют.
Go to the top of the page
 
+Quote Post
Jurdens
сообщение Jun 19 2008, 06:35
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 9-07-05
Пользователь №: 6 656



Цитата(IgorKossak @ Jun 19 2008, 08:30) *
Символ __vector_0x14 определяется обычно в файле cstartup.s (или с похожим названием).
Сравните содержимое этих файлов в работающем и неработающем проектах на предмет определения __vector_0x14.
Описанные Вами настройки линкера и ссылка на статью отвечают за подсчёт КС для всего пространства кода и сюда отношения не имеют.

Спасибо Игорь помогло а я про вектор этот подумал что это ИАР бредит
ниже привожу нерабочий и рабочий фрагмент стартапа


;*******************************************************************************
*************************
; ARM EXCEPTION VECTORS
;*******************************************************************************
*************************

SECTION .intvec:CODE:NOROOT(2)
PUBLIC __vector
PUBLIC __iar_program_start


IMPORT OS_CPU_ARM_ExceptUndefInstrHndlr
IMPORT OS_CPU_ARM_ExceptSwiHndlr
IMPORT OS_CPU_ARM_ExceptPrefetchAbortHndlr
IMPORT OS_CPU_ARM_ExceptDataAbortHndlr
IMPORT OS_CPU_ARM_ExceptIrqHndlr
IMPORT OS_CPU_ARM_ExceptFiqHndlr

ARM

__vector:
LDR PC, [PC,#24] ; Absolute jump can reach 4 GByte
LDR PC, [PC,#24] ; Branch to undef_handler
LDR PC, [PC,#24] ; Branch to swi_handler
LDR PC, [PC,#24] ; Branch to prefetch_handler
LDR PC, [PC,#24] ; Branch to data_handler
__vector_0x14:
DC32 0 ; Reserved
LDR PC, [PC,#24] ; Branch to irq_handler
LDR PC, [PC,#24] ; Branch to fiq_handler

.. рабочий стартап
;*******************************************************************************
*************************
; ARM EXCEPTION VECTORS
;*******************************************************************************
*************************

SECTION .intvec:CODE:NOROOT(2)
PUBLIC __vector
PUBLIC __vector_0x14
PUBLIC __iar_program_start

IMPORT OS_CPU_ARM_ExceptUndefInstrHndlr
IMPORT OS_CPU_ARM_ExceptSwiHndlr
IMPORT OS_CPU_ARM_ExceptPrefetchAbortHndlr
IMPORT OS_CPU_ARM_ExceptDataAbortHndlr
IMPORT OS_CPU_ARM_ExceptIrqHndlr
IMPORT OS_CPU_ARM_ExceptFiqHndlr

ARM

__vector:
LDR PC, [PC,#24] ; Absolute jump can reach 4 GByte
LDR PC, [PC,#24] ; Branch to undef_handler
LDR PC, [PC,#24] ; Branch to swi_handler
LDR PC, [PC,#24] ; Branch to prefetch_handler
LDR PC, [PC,#24] ; Branch to data_handler
__vector_0x14:
DC32 0 ; Reserved
LDR PC, [PC,#24] ; Branch to irq_handler
LDR PC, [PC,#24] ; Branch to fiq_handler
Go to the top of the page
 
+Quote Post

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

 


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


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