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

 
 
> startup asm
sergey sva
сообщение Jan 14 2009, 14:12
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergey sva
сообщение Jan 19 2009, 22:10
Сообщение #2


Гуру
******

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



Сделайте замечания что, тут я не правильно понял в irq обработчике, smile.gif
Еще вопрос по fiq , теневой регистр, вроде не мало прочел, не где это не встречалось , это R8 -R14
что в них сохраняется, тоже что и RL ?
CODE
@----------------------------------------------------------------------------------------
IRQ_handler:
sub lr, lr, #4 @ LR_IRQ - 4
stmfd sp!, {r0, r3, lr} @ сохранить в стеке IRQ, регистры R0 R1 и LR
ldr r0, = AIC_BASE @ чтение из AIC_BASE и запись в регистр R0
ldr r1, [r0, #AIC_IVR] @ чтение из r0 + #AIC_IVR и запись в регистр R1 вектора прерываний
mrs r0, SPSR @ Запись в регистр R0 Сохраненого Статуса SPSR
stmdb sp!, {r0} @ сохранить в стеке регистр R0 (статус до прервания)
mrs r0, CPSR @ Запись в регистре R0, и возврат в режим который был до прерывания
orr r0, r0, #SYS_MODE @ Логическое ИЛИ регистра R0 с #SYS_MODE с сохранением в R0
msr CPSR, r0 @ переключение ядра, в Системный режим
stmdb sp!, {r2, r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr}@ сохранить в стеке SyS регистры r2, r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr
mov lr, pc @ Копировать в LR регистр, регистр r14 + 0х04
bl r1 @ Переход на вектор программы обработки прерывания
ldmia sp!, {r2, r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr}@ Прочитать из стека регистры r2, r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr
mrs r0, CPSR @ сохранить в регистре R0 текущий статус
bic r0, r0, #SYS_MODE @ Логическая операция AND NOT регистра R0 и #SYS_MODE
orr r0, r0, #IRQ_MODE @ Логическое ИЛИ регистра R0 и #IRQ_MODE
msr CPSR, r0 @ Запись в регистр CPSR регистр R0 и переключение ядра в IRQ_mode,
ldr r0, = AIC_BASE @ чтение из AIC_BASE и запись в регистр R0 (базовый адрес AIC)
str r0, [r0, #AIC_EOICR] @ сохранить R0 по адресу R0 + #AIC_EOICR и сброс прерывания
ldmia sp!, {r0} @ чтение из стека и запись в R0 (статус до прерывания)
msr SPSR, r0 @ запись в SPSR регистр R0 (возврат статуса до прерывания)
ldmia sp!, {r0, r3, pc}^ @ запись в PC значения сохраненого, в момент возникновения прерывания и востановление регистров r0 r3, обновить CPSR
@----------------------------------------------------------------------------------------
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 19 2009, 22:17
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sergey sva @ Jan 20 2009, 01:10) *
Сделайте замечания что, тут я не правильно понял в irq обработчике, smile.gif

Вроде все правильно поняли, только вот обработчик - дрянь sad.gif

Цитата(sergey sva @ Jan 20 2009, 01:10) *
Еще вопрос по fiq , теневой регистр, вроде не мало прочел, не где это не встречалось , это R8 -R14
что в них сохраняется, тоже что и RL ?

Теневые регистры FIQ - R8-R12 (R13 и R14 и так у всех свои). В них ничего не сохраняется, они просто существуют только в режиме FIQ, из других режимов к ним доступа нет.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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: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
- - aaarrr   Что-то я не нашел INTERRUPT_VECTORS_END. А регистр...   Jan 21 2009, 16:04
- - 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 страниц V   1 2 >


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

 


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


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