用IAR编译器开发DS80C400
摘要:DS80C400微控制器ROM的功能可由8051汇编语言、C或Java?编写的程序访问。通过使用ROM功能和由Maxim开发的软件库能够构建多种应用程序。本应用笔记阐述了如何使用8051 IAR Embedded Workbench?来建立DS80C400的C语言应用程序。通过一个简单的HTTP服务器示例来演示DS80C400的ROM功能。
引言
DS80C400微控制器的ROM包含多种功能,可通过由8051汇编语言、C或Java编写的程序访问。DS80C400的ROM功能提供成熟的MxTNI?网栈、进程调度和存储器管理,是开始构建C和汇编程序的最佳选择。对于简单程序,可以用汇编语言轻松实现。对于更复杂的程序,C语言可以充分利用Dallas Semiconductor提供的ROM组件和软件库。这些软件库帮助您利用Keil ?Vision2?、SDCC和IAR 8051编译器构建应用程序。
本应用笔记阐述了如何开始使用8051 IAR Embedded Workbench?来创建DS80C400的C语言应用程序。通过一个简单的HTTP服务器演示如何使用DS80C400的ROM功能。所有开发都采用TINIm400验证模块和包含6.11A版本C编译器的8051 IAR Embedded Workbench.
从8051 IAR Embedded Workbench开始
本节阐述如何使用IAR Embedded Workbench套件创建一个C语言编写的Hello World程序,即您的第一个DS80C400 C应用程序。
1.安装IAR Embedded Workbench
2.选择File→New→Workspace,在工作空间窗口,输入workspace名称appnote
3.选择Project→Create New Project.在出现的对话框中,输入项目名称hellowworld,并确定选择了8051作为工具链
4.当左侧的项目窗口打开时,选择Project→Add Files…在弹出的对话框中,将files of type改为汇编程序文件。添加文件Cstartup.s51,该文件可在Download的zip文件中找到
5.双击并打开文件Cstartup.s51.找到程序段声明RSEG CSTART:CODE:ROOT(0)。这是代码段的开始。变量段的起始地址在link51ew_400.xcl中声明。代码的开始在文件中的0x400000h进行声明。另外,应有一个DB 'TINI'行,后跟另一个DB, high(?INIT)',带有注释Target Bank.这样就可以确保应用程序对应于TINIm400 flash的起始地址
6.建立新文件main.c.在该文件中写入如下代码:
#include stdio.h>
#include printf.c>
void main ()
{
printf(Test program using IAR compiler);
while (1)
{
}
}
保存文件内容。通过选择Project→Add Files,然后在文件对话框中选择main.c,这样就把刚建立的文件加入到项目hellowworld中。确定加入的文件就是您建立的文件main.c;因为在默认目录中很有可能存在另一个具有相同名字的文件
7.同样,将文件low_level_init.s51和putchar.c加入到项目中。low_level_init.s51文件包含初级DS80C400初始化程序;putchar.c文件包含将字符输出至默认控制台的初级程序
8.http://ftp.dalsemi.com/pub/tini/ds80c400/c_libraries/iar/bin/init.zip复制ROM initialization库文件,并将其解压缩到相同目录下。将rominit.r51库文件添加到项目中
9.在编译Hello_World应用程序之前,我们需要配置IAR工具链来满足DS80C400的目标要求
1)。选择Project→Options→General
单击Target标签并浏览,在Derivative中选择DS80C400.将Extended stack at:对应的地址值改为0xFFDC00.这是因为IAR起始代码重新定位DS80C400硬件堆栈至0xFFDC00.对应这些设置请参考图1.
单击Data Pointer标签。选择Number of DPTRs = 1.这是因为由Dallas Semiconductor所提供的库文件是在该选项下产生。
图1. 选择新的IAR 8051项目Target选项
2)选择Project-Options→Options→ICC8051
单击Code标签。选择Optimizations下的Size和None.
单击List标签。选择Output List File和Output assembler File.
单击Preprocessor标签。在include路径中放入以下程序:
$TOOLKIT_DIR$INC
$TOOLKIT_DIR$INCCLIB
$TOOLKIT_DIR$srclib
$TOOLKIT_DIR$srclibclib
include
上面最后一行是库的头文件(*.h)所处的include路径。确定头文件在上面指定的路径中。$TOOLKIT_DIR$与IAR安装路径有关(例如,c:/program files/iar systems/embedded workbench 3.n/8051)。
3)选择Project→Options→A8051
单击List标签。选中Output List File.
单击Preprocessor标签,在include路径中放入以下程序:
$TOOLKIT_DIR$INC
$TOOLKIT_DIR$srclib
include
上面最后一行是库的头文件(*.h; *.inc)所处的include路径。确定头文件在上面指定的路径中。
4)。选择Project-→Options→XLINK
单击Output标签
在Output file中,选择Override default,并
- DS80C400的Keil C语言编程(02-01)
- 嵌入式软件设计中查找缺陷的几个技巧(03-06)
- 基于算法的DSP硬件结构分析(04-02)
- Windows CE下驱动程序开发基础(04-10)
- DSP+FPGA在高速高精运动控制器中的应用(05-17)
- 基于USB接口和DSP的飞机防滑刹车测试系统设计(05-19)