300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > iar编译器添加c语言标准库 用IAR编译器开发DS80C400

iar编译器添加c语言标准库 用IAR编译器开发DS80C400

时间:2023-03-15 21:05:35

相关推荐

iar编译器添加c语言标准库 用IAR编译器开发DS80C400

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应用程序。

安装IAR Embedded Workbench

选择File→New→Workspace,在工作空间窗口,输入workspace名称appnote

选择Project→Create New Project。在出现的对话框中,输入项目名称hellowworld,并确定选择了8051作为工具链

当左侧的项目窗口打开时,选择Project→Add Files...。在弹出的对话框中,将files of type改为汇编程序文件。添加文件Cstartup.s51,该文件可在Download的zip文件中找到

双击并打开文件Cstartup.s51。找到程序段声明RSEG CSTART:CODE:ROOT(0)。这是代码段的开始。变量段的起始地址在link51ew_400.xcl中声明。代码的开始在文件中的0x400000h进行声明。另外,应有一个DB 'TINI'行,后跟另一个DB, high(?INIT)',带有注释Target Bank。这样就可以确保应用程序对应于TINIm400 flash的起始地址

建立新文件main.c。在该文件中写入如下代码:

#include

#include

void main ()

{

printf("Test program using IAR compiler");

while (1)

{

}

}

保存文件内容。通过选择Project→Add Files,然后在文件对话框中选择main.c,这样就把刚建立的文件加入到项目hellowworld中。确定加入的文件就是您建立的文件main.c;因为在默认目录中很有可能存在另一个具有相同名字的文件

同样,将文件low_level_init.s51和putchar.c加入到项目中。low_level_init.s51文件包含初级DS80C400初始化程序;putchar.c文件包含将字符输出至默认控制台的初级程序

从ftp:///pub/TIni/ds80c400/c_libraries/iar/bin/init.zip复制ROM initialization库文件,并将其解压缩到相同目录下。将rominit.r51库文件添加到项目中

在编译Hello_World应用程序之前,我们需要配置IAR工具链来满足DS80C400的目标要求

选择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选项。

选择Project-Options→Options→ICC8051

单击Code标签。选择Optimizations下的Size和None。

单击List标签。选择Output List File和Output assembler File。

单击Preprocessor标签。在include路径中放入以下程序:

$TOOLKIT_DIR$\INC\

$TOOLKIT_DIR$\INC\CLIB

$TOOLKIT_DIR$\src\lib

$TOOLKIT_DIR$\src\lib\clib

..\include\

上面最后一行是库的头文件(*.h)所处的include路径。确定头文件在上面指定的路径中。$TOOLKIT_DIR$与IAR安装路径有关(例如,c:/program files/iar systems/embedded workbench 3.n/8051)。

选择Project→Options→A8051

单击List标签。选中Output List File。

单击Preprocessor标签,在include路径中放入以下程序:

$TOOLKIT_DIR$\INC\

$TOOLKIT_DIR$\src\lib

..\include\

上面最后一行是库的头文件(*.h; *.inc)所处的include路径。确定头文件在上面指定的路径中。

选择Project-→Options→XLINK

单击Output标签

在Output file中,选择Override default,并将文本文件名改为hello_world.hex。

在Format中,选择Other,并从选项中选择Intel Extended。详情请参考图2。

单击List标签。选择Generate Linker Listing。

单击include标签,参考图3。

选择Ignore CSTARTUP in Library。

单击Override default,将文件名改为$TOOLKIT_DIR$\config\lnk51ew_400.xcl

。 $TOOLKIT_DIR$与IAR安装路径有关(例如,c:/program files/iar systems/embedded workbench 3.n/8051)。确定文件lnk51ew_400.xcl和lnk_base_400.xcl在指定的路径中。可在zip文件Download中找到这些文件。

图2. 选择新的IAR 8051项目的XLINK Output选项。

图3. 选择新的IAR 8051项目的XLINK Include选项。

建立Hello_World应用程序。如果正确完成了每一步,建立过程应不会出现错误或警告信息;之后会在/debug/exe目录中产生hello_world.hex。如果你的项目配置为Release,那么hex文件将在/release/exe目录中产生。

现在已经生成了可执行文件,我们需要将应用程序装载到TINIm400模块中并运行。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。