位置:51电子网 » 技术资料 » 显示光电

用于微控制器DS80G400的C语言应用

发布时间:2007/8/28 0:00:00 访问次数:653

吴星华

    本文先从一个用C语言实现的Hello World程序人手,然后介绍一个简单的HTTP服务器。文中介绍了如何设置开发工具并编写一个简单的示范程序,然后演示如何使用DS80C400的ROM功能。所有开发都使用TINIm400验证模块和包含7.05版C编译器“C51’’的Keil μVision2TM2.37版

    引言

    自从推出了DS80C390的TINI~运行环境(TINI Runtime Environment),开发人员早就呼吁寻找一种方法,能在不使用Javatm语言的前提下使用TINI的强大功能。但遗憾的是,TINI的网栈和其他特性与Java虚拟机及运行环境曾经是紧密相连的,很难在C语言或汇编程序中去访问。为此,在设计DS80C400网络微控制器的ROM时,一组功能被公开出来,可以在8051汇编、C语言或Java程序中访问。受容量的限制,ROM提供的功能仅限于TINI运行环境的一个子集。这样,ROM可以被视作一个可由C或汇编程序使用的模块,它提供了经过验证的网栈、进程调度器和存储器管理器。简单程序象网络扬声器可以用汇编语言轻松实现,更复杂一点的象HTTP(超文本传送协定)服务器这种需要与文件系统交互的程序可以使用C语言。

    本文先从一个用C语言实现的Hello World程序人手,然后介绍一个简单的HTTP服务器。文中介绍了如何设置开发工具并编写一个简单的示范程序,然后演示如何使用DS80C400的ROM功能。所有开发都使用TINIm400验证模块和包含7.05版C编译器“C51’’的Keil μVision2TM2.37版

   从Keil的μVision2开始

   可以使用Keil μVision2开发套件,构建一个简单的Hello World型C语言程序。按照以下步骤完成你的第一个用于DS80C400的C语言应用程序。

.选择Project->Create New 。

   输入项目名称。

.屏幕上将出现Select Device for Target对话框。在Data base中选择Dallas Semiconductor和DS80C400。选择Use Extended Linker和Use Extended Assembler。点击OK继续,见图1所示为该对话框的正确配置。

.将有对话框提示:Copy Dallas 80C390 Startup Codey to Project Folder和Add File

to Project?选择No。我们将提供自己的启动代码。

.当项目窗口在左侧打开时,打开Target1。右击Source Group1,并选择Add files to group'Source Group1’。在弹出的文件对话框中,将files of type 改为Asm source file。添加文件startup400.a51。

.应该注意,建立应用的地址应为400000h,它对应于TINIm400上flash的起始地址。双击打开文件startup400.a51。找到段声明?C_CPURESET?0。确保代码段声明为400000h:

?C_CPURESET?0

SEGMENT CODE AT  400000h

.另外,应有一个“DB,’TINI’行,后跟另一个DB行,带有注释“Targe tbank”。这个声明是一个标记的一部分,用于告知DS80C400 ROM从地址400000h开始执行代码。这样就可以确保应用的建立地址为400000h,对应于TINIm400上flash的起始地址。请确认该行为:

DB    40h      ; Target bank

.创建一个新的文件,以“main.c”为文件名来保存。在该文件中写人如下代码:

# include

Void main( )

{

printf(”Test 400 Program\r\n”);

while  (1)  {  }

)

.保存文件内容。右击Source Group1,并添加源文件main.c。现在就可以将该源文件添加到项目中了。

.右击左侧的Target1。选择options for target’Target1’,打开选项对话框。第一个选择标签应该为Target。将Memory Model改为Large:variables in XDATA。将Code Rom Size改为Contiguous Mode:16MB program。选中检查框Use multiple DPTR registers和far memory type support。在off-chip Code memory项目下加入第一个人口:Start:Ox400000,Size:Ox80000。在off- chip Xdata memory项目下加入一个入口:Start:0x10000,Size:Ox4000。

   图2所示为配置完成后的对话框。注意,Ox400000的最后一个0在窗口中没有显示出来。

   上述设置基于TINIm400参考模块的存储区配置,该模块在地址0有512k的RAM,从地址400000h开始有1M的flash。Keil配置中的起始地址与大小应根据用户的DS80C400设计来修改。

.选择Output标签。点击Create HEX File,并在下拉框中选择HEX-386。

.按F7键建立应用程序。如果每一步都正确完成,建立过程应不产生错误或警告信息。之后会生成一个hex文件。现在就可以将该应用程序装载到你的电路板上了。

&n

吴星华

    本文先从一个用C语言实现的Hello World程序人手,然后介绍一个简单的HTTP服务器。文中介绍了如何设置开发工具并编写一个简单的示范程序,然后演示如何使用DS80C400的ROM功能。所有开发都使用TINIm400验证模块和包含7.05版C编译器“C51’’的Keil μVision2TM2.37版

    引言

    自从推出了DS80C390的TINI~运行环境(TINI Runtime Environment),开发人员早就呼吁寻找一种方法,能在不使用Javatm语言的前提下使用TINI的强大功能。但遗憾的是,TINI的网栈和其他特性与Java虚拟机及运行环境曾经是紧密相连的,很难在C语言或汇编程序中去访问。为此,在设计DS80C400网络微控制器的ROM时,一组功能被公开出来,可以在8051汇编、C语言或Java程序中访问。受容量的限制,ROM提供的功能仅限于TINI运行环境的一个子集。这样,ROM可以被视作一个可由C或汇编程序使用的模块,它提供了经过验证的网栈、进程调度器和存储器管理器。简单程序象网络扬声器可以用汇编语言轻松实现,更复杂一点的象HTTP(超文本传送协定)服务器这种需要与文件系统交互的程序可以使用C语言。

    本文先从一个用C语言实现的Hello World程序人手,然后介绍一个简单的HTTP服务器。文中介绍了如何设置开发工具并编写一个简单的示范程序,然后演示如何使用DS80C400的ROM功能。所有开发都使用TINIm400验证模块和包含7.05版C编译器“C51’’的Keil μVision2TM2.37版

   从Keil的μVision2开始

   可以使用Keil μVision2开发套件,构建一个简单的Hello World型C语言程序。按照以下步骤完成你的第一个用于DS80C400的C语言应用程序。

.选择Project->Create New 。

   输入项目名称。

.屏幕上将出现Select Device for Target对话框。在Data base中选择Dallas Semiconductor和DS80C400。选择Use Extended Linker和Use Extended Assembler。点击OK继续,见图1所示为该对话框的正确配置。

.将有对话框提示:Copy Dallas 80C390 Startup Codey to Project Folder和Add File

to Project?选择No。我们将提供自己的启动代码。

.当项目窗口在左侧打开时,打开Target1。右击Source Group1,并选择Add files to group'Source Group1’。在弹出的文件对话框中,将files of type 改为Asm source file。添加文件startup400.a51。

.应该注意,建立应用的地址应为400000h,它对应于TINIm400上flash的起始地址。双击打开文件startup400.a51。找到段声明?C_CPURESET?0。确保代码段声明为400000h:

?C_CPURESET?0

SEGMENT CODE AT  400000h

.另外,应有一个“DB,’TINI’行,后跟另一个DB行,带有注释“Targe tbank”。这个声明是一个标记的一部分,用于告知DS80C400 ROM从地址400000h开始执行代码。这样就可以确保应用的建立地址为400000h,对应于TINIm400上flash的起始地址。请确认该行为:

DB    40h      ; Target bank

.创建一个新的文件,以“main.c”为文件名来保存。在该文件中写人如下代码:

# include

Void main( )

{

printf(”Test 400 Program\r\n”);

while  (1)  {  }

)

.保存文件内容。右击Source Group1,并添加源文件main.c。现在就可以将该源文件添加到项目中了。

.右击左侧的Target1。选择options for target’Target1’,打开选项对话框。第一个选择标签应该为Target。将Memory Model改为Large:variables in XDATA。将Code Rom Size改为Contiguous Mode:16MB program。选中检查框Use multiple DPTR registers和far memory type support。在off-chip Code memory项目下加入第一个人口:Start:Ox400000,Size:Ox80000。在off- chip Xdata memory项目下加入一个入口:Start:0x10000,Size:Ox4000。

   图2所示为配置完成后的对话框。注意,Ox400000的最后一个0在窗口中没有显示出来。

   上述设置基于TINIm400参考模块的存储区配置,该模块在地址0有512k的RAM,从地址400000h开始有1M的flash。Keil配置中的起始地址与大小应根据用户的DS80C400设计来修改。

.选择Output标签。点击Create HEX File,并在下拉框中选择HEX-386。

.按F7键建立应用程序。如果每一步都正确完成,建立过程应不产生错误或警告信息。之后会生成一个hex文件。现在就可以将该应用程序装载到你的电路板上了。

&n

相关IC型号

热门点击

 

推荐技术资料

按钮与灯的互动实例
    现在赶快去看看这个目录卞有什么。FGA15N120AN... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!