这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 求助:请各位大哥来帮帮我这个问题,谢谢!

共2条 1/1 1 跳转至

求助:请各位大哥来帮帮我这个问题,谢谢!

院士
2006-09-17 18:14:16     打赏
求助:请各位大哥来帮帮我这个问题,谢谢!



关键词: 求助     各位     大哥     帮我     这个     问题     谢谢    

院士
2006-12-22 22:43:00     打赏
2楼
问 请教:
问题一:
在 44b0init.s 里

;Pre-defined constants
USERMODE    EQU    0x10
FIQMODE     EQU      0x11
IRQMODE     EQU    0x12
SVCMODE     EQU    0x13
ABORTMODE   EQU    0x17
UNDEFMODE   EQU    0x1b
MODEMASK    EQU    0x1f
NOINT         EQU    0xc0

;check if tasm.exe is used.
    GBLL    THUMBCODE
    [ {CONFIG} = 16    
THUMBCODE SETL    {TRUE}
        CODE32
    |   
THUMBCODE SETL    {FALSE}
    ]
    
    [ THUMBCODE
        CODE32   ;for start-up code for Thumb mode
    ]

小问题1:
USERMODE    EQU    0x10
FIQMODE     EQU      0x11
IRQMODE     EQU    0x12
SVCMODE     EQU    0x13
ABORTMODE   EQU    0x17
UNDEFMODE   EQU    0x1b
MODEMASK    EQU    0x1f
NOINT         EQU    0xc0

这些定义的是什么?
为什么定义为这样的值?

小问题2:
GBLL    THUMBCODE
    [ {CONFIG} = 16    
THUMBCODE SETL    {TRUE}
        CODE32
    |   
THUMBCODE SETL    {FALSE}
    ]
    
    [ THUMBCODE
        CODE32   ;for start-up code for Thumb mode
    ]

是什么意思?

问题二:
    MACRO
$HandlerLabel HANDLER $HandleLabel

$HandlerLabel
    sub        sp,sp,#4            ;decrement sp(to store jump address)
    stmfd   sp!,{r0}            ;PUSH the work register to stack(lr does't push because it return to original address)
    ldr        r0,=$HandleLabel    ;load the address of HandleXXX to r0
    ldr        r0,[r0]                ;load the contents(service routine start address) of HandleXXX
    str        r0,[sp,#4]            ;store the contents(ISR) of HandleXXX to stack
    ldmfd   sp!,{r0,pc}            ;POP the work register and pc(jump to ISR)
    MEND




谢谢!
1: 回复随便找一本ARM的手册, 上面就有问题一小问题1的答案.

剩下的问题自己读一下ARM的汇编语言语法, 比如ADS套件中的汇编器手册, ARM网站上有中文版的, 自己找找.

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]