QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1901|回复: 2

初学arm开发 中断向量编译遇问题 请大家指点

[复制链接]
发表于 2008-8-15 21:13:48 | 显示全部楼层 |阅读模式
在学习arm中断处理时遇到一个编译问题,因为刚刚接触,没有头绪,请大家多多指点,这里先谢谢了。

目的想实现利用中断切换程序状态,但在编译 crt.S 文件时提示错误:
crt.S:127: Error: can only set flag field with immediate value

编译参数为:arm-elf-as -ahls -mapcs-32 -o crt.o crt.S > crt.lst

crt.S 文件部分内容如下:
#==========================================================
# 编程寄存器位定义
#==========================================================
.EQU    LOCKOUT,                        0xC0           @ 禁止所有中断
.EQU    MODE_MASK,                        0x1F           @ 处理器模式位
.EQU    UDF_MODE,                        0x1B           @ 未定义模式 UDF
.EQU    ABT_MODE,                        0x17           @ 异常模式 ABT
.EQU    SUP_MODE,                        0x13           @ 超级用户模式 SVC
.EQU    IRQ_MODE,                        0x12           @ 中断模式 IRQ
.EQU    FIQ_MODE,                        0x11           @ 快速中断模式 FIQ
.EQU    USR_MODE,                        0x10           @ 用户模式 USR
.EQU    I_BIT,                                0x80          @when I bit is set, IRQ is disabled
.EQU    F_BIT,                                 0x40          @when F bit is set, FIQ is disabled
.SET    MODE_SVC,                         0x13                @Supervisor Mode

。。。
        #====================================================
        # 切换到用户模式并设置用户栈空间
        #====================================================
        MRS        r0, cpsr
        BIC        r0, r0, #LOCKOUT | MODE_MASK
        ORR        r1, r0, #USR_MODE
        MSR        cpsr_cf, r0
        LDR        sp, =USR_STACK

        MSR   CPSR_c, #MODE_SVC|I_BIT|F_BIT    <<<=====此处为第127行
        MRS R0 , CPSR
        ORR        R0, R0, #0xC0
        MSR CPSR , R0
发表于 2008-8-15 23:45:55 | 显示全部楼层
与你的相反,我的一个工程编译的时候却提示不能用立即数给其赋值!

也就是有关于如下这些的,
MSR CPSR , R0
我想是不是这里有问题..
回复

使用道具 举报

 楼主| 发表于 2008-8-22 09:29:38 | 显示全部楼层
这个问题原因没有太明确。
当我使用arm-linux-编译就可以通过,使用arm-elf-就出现这个错误。
继续学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-19 14:19 , Processed in 0.077423 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表