周立功ucos移植困惑2

[复制链接]
 楼主| vipchenvip 发表于 2012-2-7 17:26 | 显示全部楼层 |阅读模式
关于OSIntCtxSw()这个函数,在移植代码里出现了一个定义,和一个宏定义
1.定义(部分):
OSIntCtxSw
                                                    ;下面为保存任务环境
        LDR     R2, [SP, #20]                       ;获取PC
        LDR     R12, [SP, #16]                      ;获取R12
        MRS     R0, CPSR
        MSR     CPSR_c, #(NoInt | SYS32Mode)
        MOV     R1, LR
        STMFD   SP!, {R1-R2}                        ;保存LR,PC
        STMFD   SP!, {R4-R12}                       ;保存R4-R12
        MSR     CPSR_c, R0
        LDMFD   SP!, {R4-R7}                        ;获取R0-R3
        ADD     SP, SP, #8                          ;出栈R12,PC
        
并且对于这个定义,也做了可外部引用的声明  EXPORT  OSIntCtxSw

2宏定义
#define OSIntCtxSw()    return

请问,在系统调用OSIntCtxSw()这个函数的时候,到底执行的是哪个代码
xinzha 发表于 2012-2-8 09:00 | 显示全部楼层
在新版的代码中没有看到宏定义
#define OSIntCtxSw()    return,
至于要用哪个要看你的编译链接选项,如果都被编译链接就可能会报错,应该不会存在一段c代码指向两个OSIntCtxSw的可能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

65

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部