最近在做运动控制的项目,用到CC2430单片机,由于老师要求用汇编语言编写CC2430的程序,而现有的关于CC2430的例子基本上是用C语言编写的,因而我只能自己靠着手册和软件帮助自己摸索。这里写下这篇博文,希望能够对后来者有所帮助。
首先,CC2430是51内核的单片机,因而指令系统跟51单片机一样,写汇编程序的时候,用51系列单片机的指令就行(手册上面的指令系统跟51系列的是一样的)。写汇编程序的时候注意查手册看CC2430有哪些特殊的SFR,这些寄存器里面会有很多是2430专用的,说到这里,在写汇编程序时,记得用#include <ioCC2430.h>将CC2430的头文件包含到程序里,否则编译时会出错。
其次,在用IAR Embeded Workbench IDE调试和烧程序时,用汇编语言写的程序需要对IAR进行配置,这也是我纠结了很久的地方,因为没有找到这方面的书籍,我就只能看软件的纯英文帮助了。这里给大家具体介绍一下步骤:(我用的是IAR Embeded Workbench IDE for 8051 7.51A版)
1.建立一个新的工程(project):启动IAR时就会有一个Create New Project窗口提示是打开已有的工程还是创建新的工程,我们这里是建立新的工程。如果启动IAR时没有创建 工程,也可以在Project菜单下找到Create New Project。
2.设置工程属性:在workspace窗口中选择建立的工程右击->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的安装目录。
最后在Debug目录下的Driver选择成自己片子对应的驱动,如果想仿真,就选择Simulator。
3.新建文件,写入汇编码,记得声明一个公共变量__program_start作为程序进入点,代码示例如下:
#include <ioCC2430.h>
num equ 08h
public __program_start
__program_start:
org 0000h
ljmp start
start:......
这里要说明IAR的标号要顶格写,执行的语句不能顶格写!否则会出错,用伪指令equ声明时也要顶格,而且放到程序最前面。
好了,之后就是自己的程序了。
祝大家做单片机的都能够做成功。
For more information,please contact xhyglh@163.com