|
скрипт Linkera |
|
|
|
Jan 24 2009, 17:43
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Помогите разобраться с скриптами для linkera. Yagarto eclips at91sam7s256 После компиляции, создаются два объектных файла crt.o main.o сделал самый простейший скрипт,который должен разместить секции text в ram и data в flash. После того как проходит компиляция компоновка, копирование получаю файл hex, при попытки его загрузить с помощью h jtag выходит ошибка что память ухотит за пределы, пробовал адреса ставить 0ч0 и 0ч100000 такаже проблема. Подозреваю что ошибка в скрипте. CODE OUTPUT_FORMAT("elf32-littlearm") /* формат памяти. прямой порядок байт (Little-endian). */ OUTPUT_ARCH(arm) /* архитектура АРМ */
_vec_reset = 0x0;
_stack_end = 0x20FA00; /* конец стека (верх стека) */
ENTRY(_vec_reset) /* вектор сброса */
/* Память микроконтроллера AT91SAM7S256 */ MEMORY { flash (rx) : ORIGIN = 0x100000, LENGTH = 256K /* FLASH EPROM */ ram (rw) : ORIGIN = 0x200000, LENGTH = 64K /* static RAM area */ }
SECTIONS {
.text : { *crt.o (.text) }>flash . = ALIGN(4);
.data : { *crt.o (.data) }> ram . = ALIGN(4);
.bss : { *(.bss) *(COMMON) }>ram . = ALIGN(4); }
|
|
|
|
|
 |
Ответов
|
Feb 4 2009, 14:32
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045

|
Цитата(sergey sva @ Feb 3 2009, 22:38)  Еще есть одна непонятная ситуация, может что подскажите,из за чего может быть такое: если запускаю программу из отладчика все работает, а если отлючаю wiggler, сброс жму, программа не стартует, хотя в флэш программа записана, пробовал считать hjtag. Возможно это связано с тем, что вы используете программные точки останова. Попробуйте аппаратные. Для этого замените Код monitor arm7_9 sw_bkpts enable на Код monitor arm7_9 force_hw_bkpts enable
|
|
|
|
|
Feb 4 2009, 15:04
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(gotty @ Feb 4 2009, 17:32)  Возможно это связано с тем, что вы используете программные точки останова. Попробуйте аппаратные. Для этого замените Код monitor arm7_9 sw_bkpts enable на Код monitor arm7_9 force_hw_bkpts enable Пробовал и аппаратные и программные, но все равно та же ситуация, виглером запускается и останавливается, после отключения включения питания программа не стартует. вот окне инициализации : CODE target remote localhost:2001 monitor reset monitor sleep 500 monitor poll monitor soft_reset_halt monitor arm7_9 force_hw_bkpts enable #monitor arm7_9 sw_bkpts enable
# WDT_MR, disable watchdog monitor mww 0xFFFFFD44 0x00008000
# RSTC_MR, enable user reset monitor mww 0xfffffd08 0xa5000001
# CKGR_MOR monitor mww 0xFFFFFC20 0x00000601 monitor sleep 10
# CKGR_PLLR monitor mww 0xFFFFFC2C 0x00481c0e monitor sleep 10
# PMC_MCKR monitor mww 0xFFFFFC30 0x00000007 monitor sleep 10
# PMC_IER monitor mww 0xFFFFFF60 0x00480100 monitor sleep 100
# needed for gdb 6.8 and higher set mem inaccessible-by-default off
load break main continue
Вот файл мап, может здесь будет видно что нибудь подозрительное: CODE
Memory Configuration
Name Origin Length Attributes rom 0x00100000 0x00040000 ram 0x00200000 0x00010000 *default* 0x00000000 0xffffffff
Linker script and memory map
LOAD ./src/crt.o LOAD ./src/main.o START GROUP LOAD c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.3.2\libgcc.a LOAD c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.3.2/../../../../arm-elf/lib\libc.a END GROUP 0x00000100 FIQ_STACK_SIZE = 0x100 0x00000100 IRQ_STACK_SIZE = 0x100 0x00000100 ABT_STACK_SIZE = 0x100 0x00000100 UND_STACK_SIZE = 0x100 0x00000100 SVC_STACK_SIZE = 0x100 0x00000400 USE_STACK_SIZE = 0x400
.text 0x00100000 0x214 *(.vectors) .vectors 0x00100000 0x40 ./src/crt.o 0x00100040 . = ALIGN (0x4) *(.init) .init 0x00100040 0xf8 ./src/crt.o 0x001000f4 FIQHandler 0x001000e8 PAbortHandler 0x00100040 ResetHandler 0x001000ec DAbortHandler 0x001000f0 IRQHandler 0x001000e0 UndefHandler 0x00100138 . = ALIGN (0x4) *(.text) .text 0x00100138 0x0 ./src/crt.o .text 0x00100138 0xdc ./src/main.o 0x00100138 main 0x001001b4 inicializaciya 0x00100214 . = ALIGN (0x4) *(.rodata) 0x00100214 . = ALIGN (0x4) *(.rodata*) 0x00100214 . = ALIGN (0x4) *(.glue_7t) .glue_7t 0x00100214 0x0 ./src/crt.o .glue_7t 0x00100214 0x0 ./src/main.o 0x00100214 . = ALIGN (0x4) *(.glue_7) .glue_7 0x00100214 0x0 ./src/crt.o .glue_7 0x00100214 0x0 ./src/main.o 0x00100214 . = ALIGN (0x4) 0x00100214 etext = .
.vfp11_veneer 0x00000000 0x0 .vfp11_veneer 0x00000000 0x0 ./src/crt.o .vfp11_veneer 0x00000000 0x0 ./src/main.o
.data 0x00200000 0x4 0x00200000 PROVIDE (__data_start, .) *(.data) .data 0x00200000 0x0 ./src/crt.o .data 0x00200000 0x4 ./src/main.o 0x00200000 pPIO 0x00200004 . = ALIGN (0x4) 0x00200004 edata = . 0x00200004 _edata = . 0x00200004 PROVIDE (__data_end, .)
.bss 0x00200004 0x9fc 0x00200004 PROVIDE (__bss_start, .) *(.bss) .bss 0x00200004 0x0 ./src/crt.o .bss 0x00200004 0x0 ./src/main.o *(COMMON) 0x00200004 . = ALIGN (0x4) 0x00200004 PROVIDE (__bss_end, .) 0x00200100 . = ALIGN (0x100) *fill* 0x00200004 0xfc 00 0x00200100 PROVIDE (__stack_start, .) 0x00200100 PROVIDE (__stack_fiq_start, .) 0x00200200 . = (. + FIQ_STACK_SIZE) *fill* 0x00200100 0x100 00 0x00200200 . = ALIGN (0x4) 0x00200200 PROVIDE (__stack_fiq_end, .) 0x00200200 PROVIDE (__stack_irq_start, .) 0x00200300 . = (. + IRQ_STACK_SIZE) *fill* 0x00200200 0x100 00 0x00200300 . = ALIGN (0x4) 0x00200300 PROVIDE (__stack_irq_end, .) 0x00200300 PROVIDE (__stack_abt_start, .) 0x00200400 . = (. + ABT_STACK_SIZE) *fill* 0x00200300 0x100 00 0x00200400 . = ALIGN (0x4) 0x00200400 PROVIDE (__stack_abt_end, .) 0x00200400 PROVIDE (__stack_und_start, .) 0x00200500 . = (. + UND_STACK_SIZE) *fill* 0x00200400 0x100 00 0x00200500 . = ALIGN (0x4) 0x00200500 PROVIDE (__stack_und_end, .) 0x00200500 PROVIDE (__stack_svc_start, .) 0x00200600 . = (. + SVC_STACK_SIZE) *fill* 0x00200500 0x100 00 0x00200600 . = ALIGN (0x4) 0x00200600 PROVIDE (__stack_svc_end, .) 0x00200600 PROVIDE (__stack_use_start, .) 0x00200a00 . = (. + USE_STACK_SIZE) *fill* 0x00200600 0x400 00 0x00200a00 . = ALIGN (0x4) 0x00200a00 PROVIDE (__stack_use_end, .) 0x00200a00 PROVIDE (__stack_end, .) 0x00200a00 PROVIDE (__heap_start, .) OUTPUT(at91sam7s256_v1_rom.elf elf32-littlearm)
.ARM.attributes 0x00000000 0x10 .ARM.attributes 0x00000000 0x10 ./src/crt.o .ARM.attributes 0x00000010 0x10 ./src/main.o
.debug_line 0x00000000 0xea .debug_line 0x00000000 0x7e ./src/crt.o .debug_line 0x0000007e 0x6c ./src/main.o
.debug_info 0x00000000 0x508 .debug_info 0x00000000 0x67 ./src/crt.o .debug_info 0x00000067 0x4a1 ./src/main.o
.debug_abbrev 0x00000000 0xed .debug_abbrev 0x00000000 0x12 ./src/crt.o .debug_abbrev 0x00000012 0xdb ./src/main.o
.debug_aranges 0x00000000 0x48 .debug_aranges 0x00000000 0x28 ./src/crt.o .debug_aranges 0x00000028 0x20 ./src/main.o
.debug_ranges 0x00000000 0x20 .debug_ranges 0x00000000 0x20 ./src/crt.o
.debug_frame 0x00000000 0x38 .debug_frame 0x00000000 0x38 ./src/main.o
.debug_loc 0x00000000 0x2b .debug_loc 0x00000000 0x2b ./src/main.o
.debug_pubnames 0x00000000 0x37 .debug_pubnames 0x00000000 0x37 ./src/main.o
.debug_str 0x00000000 0x281 .debug_str 0x00000000 0x281 ./src/main.o 0x29d (size before relaxing)
.comment 0x00000000 0x12 .comment 0x00000000 0x12 ./src/main.o
Cross Reference Table
Symbol File DAbortHandler ./src/crt.o FIQHandler ./src/crt.o IRQHandler ./src/crt.o PAbortHandler ./src/crt.o ResetHandler ./src/crt.o UndefHandler ./src/crt.o __bss_end ./src/crt.o __bss_start ./src/crt.o __stack_abt_end ./src/crt.o __stack_fiq_end ./src/crt.o __stack_irq_end ./src/crt.o __stack_svc_end ./src/crt.o __stack_und_end ./src/crt.o __stack_use_end ./src/crt.o inicializaciya ./src/main.o main ./src/main.o ./src/crt.o pPIO ./src/main.o
|
|
|
|
Сообщений в этой теме
sergey sva скрипт Linkera Jan 24 2009, 17:43 Сергей Борщ Цитата(sergey sva @ Jan 24 2009, 19:43) П... Jan 24 2009, 19:23 sergey sva фот файл map, не чего неправильного не вижу, конеч... Jan 25 2009, 17:23 alx2 Цитата(sergey sva @ Jan 24 2009, 22:43) п... Jan 25 2009, 18:19 sergey sva ЦитатаПрямо так и выходит? Как это "память ух... Jan 25 2009, 18:35 alx2 Цитата(sergey sva @ Jan 25 2009, 23:35) О... Jan 26 2009, 10:37  Vitaliy_ARM Как здесь разместить вектора перерывания по указан... Jan 27 2009, 13:26   alx2 Цитата(Vitaliy_ARM @ Jan 27 2009, 18:26) ... Jan 28 2009, 10:45    Vitaliy_ARM Цитата(alx2 @ Jan 28 2009, 13:45) КодSECT... Jan 28 2009, 15:04     Vitaliy_ARM Задам еще, наверное глупый вопрос.
Может ли кто-ни... Jan 29 2009, 10:52     alx2 Цитата(Vitaliy_ARM @ Jan 28 2009, 20:04) ... Jan 29 2009, 14:03 sergey sva Уже какой день разбираюсь, но все еще не могу полу... Jan 30 2009, 17:16 amw Цитата(sergey sva @ Jan 30 2009, 19:16) У... Jan 30 2009, 18:19 sergey sva Помогло
хотел попробовать запустить отладчик ... Jan 30 2009, 19:23 Vitaliy_ARM Цитата(sergey sva @ Jan 30 2009, 22:23) П... Feb 2 2009, 08:28 sergey sva Пробую запустить openocd , не запускается пишет ош... Feb 2 2009, 21:21 gotty судя по всему Вы используете довольно свежую верси... Feb 3 2009, 08:23  sergey sva Цитата(gotty @ Feb 3 2009, 11:23) судя по... Feb 3 2009, 13:52   gotty Цитата(sergey sva @ Feb 3 2009, 15:52) со... Feb 3 2009, 14:02    sergey sva Цитата(gotty @ Feb 3 2009, 17:02) Ответ с... Feb 3 2009, 14:07     gotty Цитата(sergey sva @ Feb 3 2009, 16:07) я ... Feb 3 2009, 14:21      sergey sva Цитата(gotty @ Feb 3 2009, 17:21) Всё вер... Feb 3 2009, 15:33       gotty Цитата(sergey sva @ Feb 3 2009, 17:33) Ус... Feb 3 2009, 15:47        sergey sva Цитата(gotty @ Feb 3 2009, 18:47) А чего ... Feb 3 2009, 16:13         sergey sva ошибки были это сам не правильно запуска(повторно)... Feb 3 2009, 19:36          Vitaliy_ARM Цитата(sergey sva @ Feb 3 2009, 22:36) од... Feb 4 2009, 10:43           amw Цитата(Vitaliy_ARM @ Feb 4 2009, 12:43) А... Feb 4 2009, 12:13            Vitaliy_ARM Цитата(amw @ Feb 4 2009, 15:13) Хм. Я тож... Feb 4 2009, 12:54             sergey sva Цитата(Vitaliy_ARM @ Feb 4 2009, 15:54) П... Feb 4 2009, 13:26              Vitaliy_ARM Цитата(sergey sva @ Feb 4 2009, 16:26) по... Feb 4 2009, 13:36             amw Цитата(Vitaliy_ARM @ Feb 4 2009, 14:54) П... Feb 4 2009, 19:11              Vitaliy_ARM Цитата(amw @ Feb 4 2009, 22:11) 0xe01fc04... Feb 5 2009, 08:51               Vitaliy_ARM Заметил такую штуку.
Когда использовал GDB сервер... Feb 6 2009, 12:24 alx2 Цитата(sergey sva @ Feb 3 2009, 02:21) Во... Feb 3 2009, 13:03 sergey sva У меня обратная проблема,пока wigller подключен пр... Feb 4 2009, 12:13 alx2 Цитата(sergey sva @ Feb 4 2009, 17:13) но... Feb 5 2009, 10:48  sergey sva Цитата(alx2 @ Feb 5 2009, 13:48) По повод... Feb 5 2009, 17:52   amw Цитата(sergey sva @ Feb 5 2009, 19:52) По... Feb 5 2009, 18:58 sergey sva компиляция линкование и ассемблирование проходит б... Feb 4 2009, 16:29 sergey sva Спасибо теперь все работает. причина была : секци... Feb 5 2009, 19:43 amw Цитата(sergey sva @ Feb 5 2009, 21:43) Сп... Feb 5 2009, 19:48 _Pasha Подскажите, уважаемые, как бороться с такой чепухо... Apr 30 2009, 08:54 amw Цитата(_Pasha @ Apr 30 2009, 11:54) Подск... Apr 30 2009, 15:33 Сергей Борщ Цитата(_Pasha @ Apr 30 2009, 11:54) Пишу ... Apr 30 2009, 20:33 _Pasha Всем спасибо.
Отключил -mshort-calls проблема ушл... May 3 2009, 12:23 SysRq Цитата(_Pasha @ May 3 2009, 16:23) Отключ... May 3 2009, 13:20  Vitaliy_ARM Можно ли как-нибудь создать один регион памяти из ... Sep 7 2009, 13:04   Vitaliy_ARM Цитата(Vitaliy_ARM @ Sep 7 2009, 17:04) М... Sep 10 2009, 10:52    Vitaliy_ARM После длительной переписки со службой поддержки вы... Sep 14 2009, 08:17     Сергей Борщ Цитата(Vitaliy_ARM @ Sep 14 2009, 11:17) ... Sep 14 2009, 08:54      Vitaliy_ARM Цитата(Сергей Борщ @ Sep 14 2009, 12:54) ... Sep 14 2009, 09:42       Vitaliy_ARM После разговора со службой поддержики. И после тог... Sep 15 2009, 11:16     alx2 Цитата(Vitaliy_ARM @ Sep 14 2009, 13:17) ... Sep 17 2009, 13:14      Vitaliy_ARM Цитата(alx2 @ Sep 17 2009, 17:14) Наверно... Sep 21 2009, 08:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|