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

|
Объясните как работает этот кот, с ассемблером плохо знаком, сейчас читаю, но не совсем все понятно. А именно инструкция ldr записывает значение находящееся по адресу RESET_ADDR , в регистр pc, переменная RESET_ADDR не где не объявляется так же как и pc ? код взят отсюда : http://electronix.ru/forum/index.php?act=a...st&id=16569Код ldr pc, RESET_ADDR ldr pc, UNDEF_ADDR ldr pc, SWI_ADDR ldr pc, PREFETCH_ABORT_ADDR ldr pc, DATA_ABORT_ADDR .word 0 ldr pc, IRQ_ADDR ldr pc, FIQ_ADDR RESET_ADDR: .word RESET_handler UNDEF_ADDR: .word UNDEF_handler SWI_ADDR: .word SWI_handler PREFETCH_ABORT_ADDR: .word PREFETCH_ABORT_handler DATA_ABORT_ADDR: .word DATA_ABORT_handler .word 0 IRQ_ADDR: .word IRQ_handler FIQ_ADDR: .word FIQ_handler
|
|
|
|
|
 |
Ответов
|
Jan 21 2009, 16:04
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Что-то я не нашел INTERRUPT_VECTORS_END. А регистры зачем очищать перед вызовом main? FIQ и SWI handlers в таком виде не нужны вообще - поручите все компилятору (у GCC, правда, был какой-то древний глюк с генерацией пролога/эпилога). На всякий случай прикладываю свой код запуска генератора и PLL: CODE ; *************************************************************************** ; * PLL
; Flash Wait State Setup ldr r0, =AT91C_BASE_MC mov r1, #AT91C_MC_FWS_1FWS str r1, [r0, #MC_FMR]
; Watchdog Disable ldr r0, =AT91C_BASE_WDTC mov r1, #AT91C_WDTC_WDDIS str r1, [r0, #WDTC_WDMR]
; Set AT91C_MASTER_CLOCK at 55 296 000
ldr r0, =AT91C_BASE_PMC
; 1 Enabling the Main Oscillator: ; SCK = 1/32768 = 30.51 uSecond ; Start up time = 8 * 6 / SCK = 56 * 30.51 = 1,46484375 ms
mov r1, #(0x06 :SHL: 0x08) orr r1, r1, #AT91C_CKGR_MOSCEN str r1, [r0, #PMC_MOR]
; Wait the startup time 0 ldr r1, [r0, #PMC_SR] tst r1, #AT91C_PMC_MOSCS beq %B0
; 2 Checking the Main Oscillator Frequency (Optional) ; 3 Setting PLL and divider: ; - div by 1 Fin = 18,432 ; - Mul 5+1: Fout = 110,592 = (18,432 * 6) ; Field out NOT USED = 0 ; PLLCOUNT pll startup time estimate at : 0.844 ms ; PLLCOUNT 28 = 0.000844 /(1/32768)
mov r1, #0x01 ; AT91C_CKGR_DIV orr r1, r1, #(0x1c :SHL: 0x08) ; AT91C_CKGR_PLLCOUNT orr r1, r1, #(0x05 :SHL: 0x10) ; AT91C_CKGR_MUL orr r1, r1, #AT91C_CKGR_USBDIV_1 str r1, [r0, #PMC_PLLR]
; Wait the startup time 0 ldr r1, [r0, #PMC_SR] tst r1, #AT91C_PMC_LOCK beq %B0 0 ldr r1, [r0, #PMC_SR] tst r1, #AT91C_PMC_MCKRDY beq %B0
; 4. Selection of Master Clock and Processor Clock ; select the PLL clock divided by 2
mov r1, #AT91C_PMC_PRES_CLK_2 str r1, [r0, #PMC_MCKR] 0 ldr r1, [r0, #PMC_SR] tst r1, #AT91C_PMC_MCKRDY beq %B0
ldr r1, [r0, #PMC_MCKR] orr r1, r1, #AT91C_PMC_CSS_PLL_CLK str r1, [r0, #PMC_MCKR] 0 ldr r1, [r0, #PMC_SR] tst r1, #AT91C_PMC_MCKRDY beq %B0
|
|
|
|
Сообщений в этой теме
sergey sva startup asm Jan 14 2009, 14:12 aaarrr RESET_ADDR - это метка, зачем ее объявлять еще? Jan 14 2009, 14:14 gotty Предположу что это тааблица векторов прерываний
и... Jan 14 2009, 14:35 sergey sva В один регистр PC, по очереди запишутся адреса мет... Jan 14 2009, 15:56 zltigo Цитата(sergey sva @ Jan 14 2009, 18:56) В... Jan 14 2009, 16:26  sergey sva Цитата(zltigo @ Jan 14 2009, 19:26) да у... Jan 14 2009, 17:17   aaarrr Цитата(sergey sva @ Jan 14 2009, 20:17) н... Jan 14 2009, 17:25 aaarrr Цитата(sergey sva @ Jan 14 2009, 18:56) В... Jan 14 2009, 16:28 sergey sva Если правильно понял, код:
.align 4
UNDEF_s... Jan 14 2009, 18:39 zltigo Цитата(sergey sva @ Jan 14 2009, 21:39) с... Jan 14 2009, 18:46 sergey sva ЦитатаТак и будете заниматься гаданиями?
с удоволь... Jan 14 2009, 19:35 sergeeff Описание ассемблера: http://infocenter.arm.com/he... Jan 14 2009, 20:05 sergey sva Наверно опять будет глупый вопрос, для чего нужно... Jan 15 2009, 19:58 zltigo Цитата(sergey sva @ Jan 15 2009, 22:58) д... Jan 15 2009, 20:01 sergey sva С этим кажется разобрался, ядро настраивается отде... Jan 15 2009, 21:24 aaarrr Цитата(sergey sva @ Jan 16 2009, 00:24) Н... Jan 15 2009, 21:47  sonycman Цитата(aaarrr @ Jan 16 2009, 01:47) Стек ... Jan 17 2009, 12:24   zltigo Цитата(sonycman @ Jan 17 2009, 14:24) Ско... Jan 17 2009, 12:34 sergey sva ЦитатаP.S. Пожалуйста, используйте знаки препинани... Jan 15 2009, 22:05 Сергей Борщ Цитата(sergey sva @ Jan 16 2009, 00:05) Г... Jan 16 2009, 06:34 sergey sva Буду читать. Мне еще не понятен один момент по раб... Jan 16 2009, 12:37 aaarrr Цитата(sergey sva @ Jan 16 2009, 15:37) В... Jan 16 2009, 13:22 sergey sva Как разместить метку, на асме по адресу 0x18 или 0... Jan 16 2009, 19:11 zltigo Цитата(sergey sva @ Jan 16 2009, 22:11) К... Jan 16 2009, 19:16 sergey sva Цитатастроительство дома без фундамента sad.gif
Ни... Jan 16 2009, 19:33 aaarrr Цитата(sergey sva @ Jan 16 2009, 22:33) н... Jan 16 2009, 20:10 sergey sva Если правильно понимаю? После перехода PC на адре... Jan 16 2009, 22:18 aaarrr Цитата(sergey sva @ Jan 17 2009, 01:18) Е... Jan 16 2009, 22:32  zltigo Цитата(aaarrr @ Jan 17 2009, 00:32) произ... Jan 16 2009, 22:44 sergey sva Как обрабатывать исключительные ситуации, например... Jan 17 2009, 16:04 aaarrr Ссылка с рекомендациями. Для data abort и undefine... Jan 17 2009, 18:21 sergey sva В функции prefetch_abort_handler_c должен быть ... Jan 17 2009, 18:48 aaarrr Цитата(sergey sva @ Jan 17 2009, 21:48) В... Jan 17 2009, 20:19 sergey sva Понятно. Разбираюсь еще с ассемблером, появился во... Jan 17 2009, 21:36 aaarrr Флаг S в команде указывает процессору, что нужно у... Jan 17 2009, 21:45 sergey sva Если правильно понял:
mov R1 , #0xFF
ands R1 , R1,... Jan 17 2009, 22:11 aaarrr Цитата(sergey sva @ Jan 18 2009, 01:11) l... Jan 17 2009, 22:21 sergey sva Виноват, не корректно поставил вопрос.
Если прави... Jan 17 2009, 22:29 aaarrr Цитата(sergey sva @ Jan 18 2009, 01:29) Е... Jan 17 2009, 22:33 sergey sva Что проверяет _check_mapping: , для чего сохранят... Jan 18 2009, 13:38 aaarrr check_mapping пишет 0x12345678 по адресу 0x200014 ... Jan 18 2009, 13:44 sergey sva Объясните, пожалуйста
Код AREA code1, DATA, READ... Jan 18 2009, 16:08 aaarrr Цитата(sergey sva @ Jan 18 2009, 19:08) О... Jan 18 2009, 16:30 sergey sva Поправите если что не так понял. Изучаю доку, но н... Jan 18 2009, 18:10 aaarrr Код sub r14, r14, #0x04 @ LR_abt = LR_abt - 0... Jan 18 2009, 19:28 sergey sva После чтения SPSR_c , устанавливаются биты #F_B... Jan 19 2009, 18:13 aaarrr Цитата(sergey sva @ Jan 19 2009, 21:13) П... Jan 19 2009, 18:23 sergey sva Вам, случайно не встречался пример обработки FIQ ... Jan 19 2009, 20:56 aaarrr Цитата(sergey sva @ Jan 19 2009, 23:56) В... Jan 19 2009, 20:59 sergey sva Сделайте замечания что, тут я не правильно понял... Jan 19 2009, 22:10 aaarrr Цитата(sergey sva @ Jan 20 2009, 01:10) С... Jan 19 2009, 22:17 sergey sva >вот обработчик - дрянь
где бы посмотреть как о... Jan 19 2009, 22:21 aaarrr Цитата(sergey sva @ Jan 20 2009, 01:21) г... Jan 19 2009, 22:42 sergey sva В инструкции msr SPSR_cxsf, r14 есть флаги ... Jan 20 2009, 17:15 aaarrr Цитата(sergey sva @ Jan 20 2009, 20:15) к... Jan 20 2009, 17:22 sergey sva А в чем будет разница, если не устанавливать cxsf... Jan 20 2009, 17:56 aaarrr Цитата(sergey sva @ Jan 20 2009, 20:56) А... Jan 20 2009, 18:00 sergeeff ЦитатаВ приведенном вами коде выполняется нескольк... Jan 20 2009, 18:25 aaarrr Цитата(sergeeff @ Jan 20 2009, 21:25) По ... Jan 20 2009, 20:59 sergey sva Если не ошибаюсь, то в этом обработчике, переход н... Jan 20 2009, 19:12 sergeeff Цитата(sergey sva @ Jan 20 2009, 23:12) Е... Jan 20 2009, 19:28 sergey sva Сделайте замечания, по FIQ обработчику.
Код@-----... Jan 20 2009, 20:29 sergey sva >Могу сделать одно, зато глобальное: использова... Jan 20 2009, 21:11 aaarrr Цитата(sergey sva @ Jan 21 2009, 00:11) Т... Jan 20 2009, 21:52  sergeeff Цитата(aaarrr @ Jan 21 2009, 01:52) А еще... Jan 21 2009, 09:16   aaarrr Цитата(sergeeff @ Jan 21 2009, 12:16) Есл... Jan 21 2009, 10:06    sergeeff Цитата(aaarrr @ Jan 21 2009, 14:06) Нельз... Jan 21 2009, 12:17     aaarrr Цитата(sergeeff @ Jan 21 2009, 15:17) так... Jan 21 2009, 13:02 sergey sva При входе в FIQ прерывание ,запрещаются автоматом... Jan 20 2009, 23:30 aaarrr SPSR-то зачем сохранять?
Можно извратиться так:
... Jan 21 2009, 00:05 sergey sva ЦитатаSPSR-то зачем сохранять?
Можно извратиться ... Jan 21 2009, 10:51 aaarrr Цитата(sergey sva @ Jan 21 2009, 13:51) В... Jan 21 2009, 10:58 sergey sva RE: startup asm Jan 21 2009, 15:51 zltigo Цитата(sergey sva @ Jan 21 2009, 17:51) С... Jan 21 2009, 17:42  aaarrr Цитата(zltigo @ Jan 21 2009, 20:42) Обраб... Jan 21 2009, 17:58   zltigo Цитата(aaarrr @ Jan 21 2009, 19:58) Возвр... Jan 21 2009, 19:11    aaarrr Цитата(zltigo @ Jan 21 2009, 22:11) Отлич... Jan 21 2009, 20:25     zltigo Цитата(aaarrr @ Jan 21 2009, 22:25) Сишна... Jan 21 2009, 20:48 sergey sva >Что-то я не нашел INTERRUPT_VECTORS_END
> ... Jan 21 2009, 16:32 aaarrr Цитата(sergey sva @ Jan 21 2009, 19:32) К... Jan 21 2009, 16:36 sergey sva Если сделать так: объявить в присоединенном файле,... Jan 21 2009, 17:03 aaarrr Цитата(sergey sva @ Jan 21 2009, 20:03) Е... Jan 21 2009, 17:07 sergey sva поясните пожалуйста, что не правильно ? Jan 21 2009, 17:13 aaarrr КодRESET_ADDR: .word RESET_handler
UND... Jan 21 2009, 17:17 sergey sva Почему для UNDEF_handler:(Неопределенная инструкци... Jan 21 2009, 19:06 sergeeff Думается, что в embedded мире неожиданные exceptio... Jan 21 2009, 19:17 sergey sva Контроллер aic поддерживает 32 прерывания, эти пр... Jan 21 2009, 22:10 aaarrr Цитата(zltigo @ Jan 21 2009, 23:48) Ну а ... Jan 21 2009, 22:19 zltigo Цитата(aaarrr @ Jan 22 2009, 00:19) А на ... Jan 21 2009, 23:30  aaarrr Цитата(zltigo @ Jan 22 2009, 02:30) ... Jan 21 2009, 23:53   zltigo Цитата(aaarrr @ Jan 22 2009, 01:53) У при... Jan 22 2009, 08:24    aaarrr Цитата(zltigo @ Jan 22 2009, 11:24) Лично... Jan 22 2009, 09:06 sergey sva Каждый человек индивидуальный, как и его решения, ... Jan 22 2009, 17:30 aaarrr Цитата(sergey sva @ Jan 22 2009, 20:30) A... Jan 22 2009, 17:40 zltigo Цитата(sergey sva @ Jan 22 2009, 19:30) К... Jan 22 2009, 18:23  aaarrr Цитата(zltigo @ Jan 22 2009, 21:23) Допущ... Jan 22 2009, 18:32   zltigo Цитата(aaarrr @ Jan 22 2009, 20:32) Еще р... Jan 22 2009, 20:34 sergey sva Еще одна неясность возникла, вот код из файла опис... Jan 22 2009, 18:11 aaarrr Цитата(sergey sva @ Jan 22 2009, 21:11) A... Jan 22 2009, 18:20
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|