标签:
单片机汇编语言iarerror[40] |
分类: Program |
我最近在做CC2430的开发的时候,发现市面上介绍IAR Embedded
Workbench IDE for
8051(汇编语言)的书籍比较少,对8051核心的单片机的开发,大部分都是介绍的C语言,几乎没有介绍纯汇编语言开发的,介绍IAR
Embedded Workbench IDE for
ARM的倒是有,但是因为ARM和8051的指令系统不一样,因而也只能拿来做一个参考,我最终还是只能借助于软件的帮助文件来编译自己的程序。下面提供一些经验,希望能够对后来者有所帮助。
首先说明一下,市面上介绍IAR嵌入式的书籍,大多也就是把帮助里面的文档翻译成汉语,对于英语好的亲们来说,完全可以直接借助于IAR的帮助来解决一些遇到的问题(我使用的是IAR
Embedded Workbench IDE for 8051——7.51A版)。Help->8051 Assembler
Reference Guide介绍了汇编器的部分,其中Assembler
Directives主要介绍的一些软件使用的伪指令。关于系统配置的Help文档,在Help->8051 Embedded
Workbench User Guide下。
------------------------------------------华丽的分割线--------------------------------------------
使用C语言编译时网上有很多介绍的文档,这里不再赘述,使用汇编时软件配置的步骤如下(主要是Project->Options->General
Options->Library
Configuration有区别 ):
1.建立一个新的工程(project):启动IAR时就会有一个Create
New
Project窗口提示是打开已有的工程还是创建新的工程,我们这里选择建立新的工程。如果启动IAR时没有创建新的工程,也可以在Project菜单下找到Create
New Project。
2.设置工程属性:在workspace窗口中选择建立的工程右击->options(选中工程后也可以在Project->Options下找到),在General
Options目录(Categories)下的Target选项卡选择Device,点击Device右边的浏览键就可以在目录下选择自己所用的设备的*.i51文件,然后由于我们用的是汇编语言编写代码,在Library
Configuration选项卡上把Library选成Custom
DLIB(自定义),在下面的Library中选择\IAR
Systems\Embedded Workbench
5.3\8051\tutor\Debug\Obj\Tutor.r51作为Library;下面设置Linker目录,在Config选项卡上把Linker
command file下的Override
default勾上,在下面的目录下选择自己所用单片机对应的连接文件,例如CC2430单片机的连接文件是$TOOLKIT_DIR$\config\lnk51ew_cc2430.xcl;前面的$TOOLKIT_DIR$代表IAR的安装目录。
3.新建文件,编写汇编源文件,记得声明一个公共变量__program_start作为程序进入点,代码示例如下:
http://s9/bmiddle/002taUQrzy6KFxddiHu58&690Embedded
这里要说明:(1)IAR的标号要顶格写;如上面的"start:"就要顶格;
(2)执行的语句不能顶格写,用Tab键缩进一个制表符!例如:MOV R0,#28H就不能顶格,需要在MOV之前输入一个Tab制表符;我用的是记事本编写的源程序,所以要自己手动输入Tab,对于使用智能代码编辑器的朋友,可能编辑器会自动在句首插入Tab;
(3)用伪指令equ声明时也要顶格,而且放到程序最前面。
如果不按我上面所说的格式去写,IAR会报错、出现:Error[40]: Bad instruction
好了,之后就是自己的程序了。
祝大家做单片机一切顺利。
前一篇:[转载]CRC校验原理
后一篇:单片机开发心得