ARM汇编环境搭建-备忘

这两天突然心血来潮,想学习一下ARM汇编指令,对我这样一个入门汉,这其中的挫折真的是让我万般无奈,我看的是王爽老师的《嵌入式arm汇编程序设计》视频教程,看到差不多一半情况下,终于迫不及待的准备去动手操作一番,结果在配置环境阶段就受阻了。网上看到的arm集成开发工具有很多,什么realview  ,ads ,iar beanch,但我只想安装视频教程里面的那个codewarrior for realview,但始终是搞不定。

其实我的要求很简单,就是能写汇编,能debug,能看寄存器的内容~  最后折腾了好久,终于让我给搞定了,我总结一下我的配置过程,供后来着参考,也不至于像我一样搞个环境就搞了那么久。

Keil uVersion环境配置

环境:win7

下载

下载地址:http://www2.keil.com/mdk5。


安装过程就省略了,我们只要默认安装就行,安装完成能看到IDE的界面如下,我简单的标注了一下,方便大家理解。

新建项目

  • 选择Project -> new uVersion Project ->输入项目名称,点保存。

  • 新建c文件,在Source Group 1右键,选择Add New Item to Group 

输入文件名称,点击add完成,如果你的工程缺少上面的绿色CMSIS和Devices情况下,此时编译会报如下错误

.\Objects\Demo.axf: Error: L6320W: Ignoring --entry command. Cannot find argument 'Reset_Handler'.

.\Objects\Demo.axf: Warning: L6320W: Ignoring --first command. Cannot find argument '__Vectors'.

这是因为缺少运行环境,只需要配置一下即可。

点击上面第二张图标注的“环境配置”按钮会弹出以下界面,我们勾选红圈里面的选项,然后点确定,我在这个地方也卡了好长时间。


再次编译,不再有错误信息啦,不过不要高兴的太早,后面还有错误等着我们呢。

C代码调试

在调试前,我们还需要配置一下debug选项,选中使用模拟器按钮。



配置好了后,我们点击debug按钮就能跳转到debug页面,能看到汇编的代码了~


说完C代码的调试,我们现在再尝试一下汇编代码的调试吧~


ARM汇编调试

在调试试汇编前,我们还是跟前面一样,新建一个项目,然后在项目下面新建一个文件,但要注意的是,这次选的是.s文件,而不是.c文件


现在我们就可以开始写汇编代码了,我的demo1.s的代码如下:


    AREA    ARMex, CODE, READONLy  
    ENTRY
	EXPORT Main
Main  
        mov r0, #10  
        mov r1, #100  
        add r0, r0, r1  
stop      
        b   stop  
          
        END

上面这段代码是有问题的,当你进行build的时候,它会报如下错误:

.\Objects\asm_1.axf: Error: L6218E: Undefined symbol main (referred from __rtentry2.o).

从错误信息能看出来是因为我们没有定义synbol main,其实我们只要把我们demo1.s的函数名称改成跟设备的Reset_Handler里面的一样就会没问题,对初学者来说,这个问题很容易出现。


需要注意的是,如果你是按照我截图里面一样,选择的设备是ARMCM0,那么还会出现如下错误:

demo1.s(5): error: A1859E: Flag preserving form of this instruction not available

这是错误原因官网是如下解释的,我们把mov指令改成movs就不会有问题了。


其实除了修改代码,另外一种解决方式就是修改设备。

到此,我们的编译不再有错了,随后的debug跟上面差不多,就不再说了。

虽然写出来没多少篇幅,但是真正在遇到上面这些问题的时候,对我这个初学者来说,真的花了不少时间~真的是万事开头难。


  • 11
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值