用于微控制器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
上一篇:嵌入式系统的PCI接口设计