分类 ARM 下的文章

鬼知道为什么0202年了还要用这个老古董

嵌入式老师今年不打算用硬件板子,说是会增加学生负担,于是给了一个IDE安装包。

我马上就下载下来了,很快啊。

仔细一看,安装包大小100多M,感觉好厉害,开发环境原来可以这么精简。结果安装界面一打开,一股熟悉的16色风格扑面而来,这才意识到原来是上个世纪的软件,最新版本1.2。安装,破解,一气呵成。

打开后,最直观的感觉就是字小得不行,图标都不带文字说明的,要靠鼠标悬浮去读取按钮的功能。

新建项目,创建C文件,编译运行,遇到了第一个问题:

error starting external process process error code 87 (0x57)

这是兼容性的问题,在右键菜单里调整到兼容模式运行基本可以解决问题。我选的是Windows 98/ Windows Me那项,可以正常工作。

然后回到ARM的入门操作,就遇到了第二个坑,汇编格式。没想到这个编译器还是活在按缩进来决定语义的时代(你是Python吗.jpg),折腾了老半天才整出一段正确的汇编代码。

num     EQU     2            

        AREA    code,code,readonly
        ENTRY

start
        MOV     r0, #0
        MOV     r1, #5
        MOV     r2, #2
        BL      func

stop
        SWI     0x123456

func                      
        CMP     r0, #num
        MOVHS   pc, lr
        ADR     r3, JumpTable 
        LDR     pc, [r3,r0,LSL#2]

JumpTable
        DCD     DoA
        DCD     DoS

DoA
        ADD     r0, r1, r2
        MOV     pc, lr

DoS
        SUB     r0, r1, r2
        MOV     pc,lr
        END     

总结一下,要注意的地方是伪指令不能顶头写,不然会被当成标签,然后就报错。