|
скрипт 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, 12:13
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
У меня обратная проблема,пока wigller подключен программу можно запустить остановить все работает, но если отсоединить wiggler, сбросить, или питание отключить включить то программа не запускается. Вот startup может в нем где что не так : CODE
ARM_MODE_USER = 0x10 /* Normal User Mode */ ARM_MODE_FIQ = 0x11 /* FIQ Fast Interrupts Mode */ ARM_MODE_IRQ = 0x12 /* IRQ Standard Interrupts Mode */ ARM_MODE_SVC = 0x13 /* Supervisor Interrupts Mode */ ARM_MODE_ABORT = 0x17 /* Abort Processing memory Faults Mode */ ARM_MODE_UNDEF = 0x1B /* Undefined Instructions Mode */ ARM_MODE_SYS = 0x1F /* System Running in Priviledged Operating Mode */ ARM_MODE_MASK = 0x1F
I_BIT = 0x80 /* disable IRQ when I bit is set */ F_BIT = 0x40 /* disable IRQ when I bit is set */
/* * Register Base Address */ AIC_BASE = 0xFFFFF000 AIC_EOICR_OFF = 0x130 AIC_IDCR_OFF = 0x124
RSTC_MR = 0xFFFFFD08 RSTC_KEY = 0xA5000000 RSTC_URSTEN = 0x00000001
WDT_BASE = 0xFFFFFD40 WDT_MR_OFF = 0x00000004 WDT_WDDIS = 0x00008000
MC_BASE = 0xFFFFFF00 MC_FMR_OFF = 0x00000060 MC_FWS_1FWS = 0x00480100
@-------------------------------------------------------- @ PMC адреса регистров PMC_BASE = 0xFFFFFC00 PMC_SCER = 0x00 PMC_SCDR = 0x04 PMC_MOR = 0x20 PMC_MCFR = 0x24 PMC_PLLR = 0x2C PMC_MCKR = 0x30 PMC_SR = 0x68 PMC_PCK0 = 0x40 @ PMC биты PMC_MOSCEN = (1 << 0) @ разрешение тактового генератора PMC_OSCBYPASS = (1 << 1) @ включение тактового генератора PMC_OSCOUNT = (0xFF << 8) @ время запуска основного тактового генератора. @ PLL биты PMC_DIV = (0x01 << 0) @ предварительный делитель PMC_PLLCOUNT = (0x3F << 8) @ Определяет число тактов сигнала SLCK, через которое устанавливается LOCK PMC_OUT = (0x00 << 14) @ Диапазон тактовых частот ФАПЧ PMC_MUL = (0x07 << 16) @ множитель ФАПЧ коэффициент (MUL+1) PMC_USBDIV = (0x01 << 28) @ предварительный делитель USB 28 / 2 ; 29 / 4 @ MCKR биты PMC_CSS = (3 << 0) @ Выбор источника основного синхронизирующего сигна 3pll PMC_PRES = (0 << 2) @ Предделитель основного генератора @ SR биты PMC_MOSCS = (1 << 0) @ Тактовый генератор стабилизирован PMC_LOCK = (1 << 2) @ ФАПЧ зафиксирована PMC_MCKRDY = (1 << 3) @ Состояние главного синхронизирующего сигнала MCK PMC_PCKRDY0 = (1 << 8) @ Состояние программируемого тактового сигнала @ Регистры PMC_MOR_Val = (PMC_OSCOUNT | PMC_MOSCEN) PMC_PLLR_Val = (PMC_USBDIV | PMC_MUL | PMC_OUT | PMC_PLLCOUNT | PMC_DIV) PMC_MCKR_Val = (PMC_PRES | PMC_CSS) @--------------------------------------------------------
.section .vectors,"ax" .code 32
/****************************************************************************/ /* Vector table and reset entry */ /****************************************************************************/ _vectors: ldr pc, ResetAddr /* Reset */ ldr pc, UndefAddr /* Undefined instruction */ ldr pc, SWIAddr /* Software interrupt */ ldr pc, PAbortAddr /* Prefetch abort */ ldr pc, DAbortAddr /* Data abort */ ldr pc, ReservedAddr /* Reserved */ ldr pc, IRQAddr /* IRQ interrupt */ ldr pc, FIQAddr /* FIQ interrupt */
ResetAddr: .word ResetHandler UndefAddr: .word UndefHandler SWIAddr: .word SWIHandler PAbortAddr: .word PAbortHandler DAbortAddr: .word DAbortHandler ReservedAddr: .word 0 IRQAddr: .word IRQHandler FIQAddr: .word FIQHandler
.ltorg
.section .init, "ax" .code 32
.global ResetHandler .global ExitFunction .extern main /****************************************************************************/ /* Reset handler */ /****************************************************************************/ ResetHandler: @---------------------------------------------------------------------------------------- @ включение тактового генератора и установка времени запуска ldr r0, = PMC_BASE ldr r1, = PMC_MOR_Val str r1, [r0, #PMC_MOR] @ настройка PMC_USBDIV PMC_MUL PMC_OUT PMC_PLLCOUNT PMC_DIV ldr r1, = PMC_PLLR_Val str r1, [r0, #PMC_PLLR] @ выбор источника генератора и настройка предварительного делителя ldr r1, = PMC_MCKR_Val str r1, [r0, #PMC_MCKR] @---------------------------------------------------------------------------------------- /* * The watchdog is enabled after processor reset. Disable it. */ ldr r1, =WDT_BASE ldr r0, =WDT_WDDIS str r0, [r1, #WDT_MR_OFF]
/* * сброс */ ldr r0, = (RSTC_KEY | RSTC_URSTEN ) ldr r1, = RSTC_MR str r0, [r1, #0]
/* * Use 2 cycles for flash access. */ ldr r1, =MC_BASE ldr r0, =MC_FWS_1FWS str r0, [r1, #MC_FMR_OFF]
/* * Disable all interrupts. Useful for debugging w/o target reset. */ ldr r1, =AIC_BASE mvn r0, #0 str r0, [r1, #AIC_EOICR_OFF] str r0, [r1, #AIC_IDCR_OFF]
/* * Setup a stack for each mode */ msr CPSR_c, #ARM_MODE_UNDEF | I_BIT | F_BIT /* Undefined Instruction Mode */ ldr sp, =__stack_und_end
msr CPSR_c, #ARM_MODE_ABORT | I_BIT | F_BIT /* Abort Mode */ ldr sp, =__stack_abt_end
msr CPSR_c, #ARM_MODE_FIQ | I_BIT | F_BIT /* FIQ Mode */ ldr sp, =__stack_fiq_end
msr CPSR_c, #ARM_MODE_IRQ | I_BIT | F_BIT /* IRQ Mode */ ldr sp, =__stack_irq_end
msr CPSR_c, #ARM_MODE_SVC | I_BIT | F_BIT /* Supervisor Mode */ ldr sp, =__stack_svc_end
/* * Clear .bss section */ ldr r1, =__bss_start ldr r2, =__bss_end ldr r3, =0 bss_clear_loop: cmp r1, r2 strne r3, [r1], #+4 bne bss_clear_loop
/* * Jump to main */ @ mrs r0, cpsr @ bic r0, r0, #I_BIT | F_BIT /* Enable FIQ and IRQ interrupt */ @ msr cpsr, r0
mov r0, #0 /* No arguments */ mov r1, #0 /* No arguments */ ldr r2, = main mov lr, pc bx r2 /* And jump... */
ExitFunction: nop nop nop b ExitFunction
/****************************************************************************/ /* Default interrupt handler */ /****************************************************************************/
UndefHandler: b UndefHandler
SWIHandler: b SWIHandler
PAbortHandler: b PAbortHandler
DAbortHandler: b DAbortHandler
IRQHandler: b IRQHandler
FIQHandler: b FIQHandler
.weak ExitFunction .weak UndefHandler, PAbortHandler, DAbortHandler .weak IRQHandler, FIQHandler
.ltorg
|
|
|
|
Сообщений в этой теме
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 Еще есть одна непонятная ситуация, может что подск... Feb 3 2009, 20:38 gotty Цитата(sergey sva @ Feb 3 2009, 22:38) Ещ... Feb 4 2009, 14:32  sergey sva Цитата(gotty @ Feb 4 2009, 17:32) Возможн... Feb 4 2009, 15:04 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
|
|
|