打印

关如iar for arm汇编的问题。

[复制链接]
3138|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yeool|  楼主 | 2007-1-16 10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是uc/os-II在iar for arm 上的OS_CUP_A.asm文件的一段,是针对于cortex M3的。我有几个问题
1,为什么要在尾部定义__OS_Running:      .long    OSRunning  啊(指针)?不能直接对OSRunning等寻址吗?
2,如果一定要重新这样定义,怎么样移植到keil(RV) 中啊?


                .extern   OSRunning               // ; External references
                .EXTERN  OSPrioCur
                .EXTERN  OSPrioHighRdy
                .EXTERN  OSTCBCur
                .EXTERN  OSTCBHighRdy
                .EXTERN  OSIntNesting
                .EXTERN  OSIntExit
                .EXTERN  OSTaskSwHook

        .
        .
        .
        .
        .
        .


OSStartHighRdy:

        LDR     R4, =NVIC_SYSPRI2      
        LDR     R5, =NVIC_PENDSV_PRI
        STR     R5, [R4]
        MOV     R4, #0             
        MSR     psp, R4
        LDR     R4, __OS_Running   
                                    //通过 __OS_Running访问OSRunning
        MOV     R5, #1
        STRB    R5, [R4]

        LDR     R4, =NVIC_INT_CTRL     
        LDR     R5, =NVIC_PENDSVSET
        STR     R5, [R4]

        CPSIE   I                      
        .
        .
        .
        .
        .
        .

        .DATA

__OS_TaskSwHook:      
        .word     OSTaskSwHook

__OS_IntExit:
        .long    OSIntExit

__OS_IntNesting:
        .long    OSIntNesting

__OS_PrioCur:
        .long    OSPrioCur

__OS_PrioHighRdy:
        .long    OSPrioHighRdy

__OS_Running:
        .long    OSRunning

__OS_TCBCur:
        .long    OSTCBCur

__OS_TCBHighRdy:
        .long    OSTCBHighRdy

        .END

相关帖子

沙发
yeool|  楼主 | 2007-1-18 09:37 | 只看该作者

aaa

我在keil中把下面的一段.data定义全部删掉了直接用“=”寻址

如下:
 
        LDR     R4, =OSRunning   
        MOV     R5, #1
        STRB    R5, [R4]

uc/os 也能跑起来。

哪原作者为什么要定义那一段放置地址啊?直接用“=“不行吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

171

帖子

0

粉丝