保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

利用ISA总线实现对DSP芯片VC5402的软配置


的VC5402的程序代码。
  
  ⑶把example.out.c文件中的代码由HPI写到VC5402的内部RAM中。HOST主机软件,需要用户自己来编写,可以采用VC或VB调用驱动程序来完成,也可以通过TURB0C2.0直接通过I/O操作来完成,甚至可用MASM的汇编语言来编写,程序的主要任务就是读取example.out.c文件和写I/O端口。HOST主机软件的流程图见图四。为了便于读者编程验证,我们用TURBOC2.0编写了名为HOST_HPI.C的主机程序,读者可以运行该程序来读取example.out.c文件,把41字的代码装载入VC5402。使用方法如下:在DOS命令提示符下键入:HOST_HPI.exe后,屏幕将提示输入example.out.c文件的路径,例如:键入:C:\ti\myprojects\example.out.c后,HOST_HPI.exe将完成HOST装载VC5402的任务,如果看到发光二级管不停的闪烁,表明VC5402已经开始正常运行程序了。至此,整个装载过程完毕。
  
  3.HOST_HPI.C源程序
  
  /*HOST_HPI.C*/
  
  #include"stdio.h"
  
  #include"dos.h"
  
  #defineSIZE100
  
  main()
  
  {
  
  FILE*fp;
  
  UnsignedintDSP_RES,HPIC_H,HPIC_L;
  
  UnsignedintHPIA_H,HPIA_L,HPID_H,HPID_L;
  
  char*a,ch,filename;
  
  unsignedinti,j,length,addr,start[10],*data;
  
  printf("Pleaseinputthenamefile:\n");
  
  scanf("%s",filename);/*输入程序文件名*/
  
  if((fp=fopen(filename,"r"))==NULL)/*打开程序文件*/
  
  {
  
  printf("cannotopenfile:\n");
  
  exit(0);
  
  }
  
  DSP_RES=0x240;/*设置DSP各寄存器的I/O地址*/
  
  HPIC_H=0x230;
  
  HPIC_L=0x231;
  
  HPIA_H=0x234;
  
  HPIA_L=0x235;
  
  HPID_H=0x236;
  
  HPID_L=0x237;
  
  outportb(DSP_RES,0x00);/*DSP复位(DSP_RES寄存器置00H)*/
  
  delay(2000);/*延时以保证DSP准确的复位*/
  
  outportb(DSP_RES,0x01);/*DSP跳出复位(DSP_RES寄存器置01H)*/
  
  outportb(HPIC_H,0x00);/*DSP的HPIC寄存器置0000H*/
  
  outportb(HPIC_L,0x00);
  
  i=0;
  
  while(!feof(fp))/*判断程序文件是否结束*/
  
  {
  
  fgets(a,SIZE,fp);
  
  fgets(a,SIZE,fp);
  
  fscanf(fp,"%s",a);
  
  fscanf(fp,"%s",a);
  
  fscanf(fp,"%x",&length);/*读取数据的长度*/
  
  fgets(a,SIZE,fp);
  
  fscanf(fp,"%s",a);
  
  fscanf(fp,"%s",a);
  
  fscanf(fp,"%x",&addr);/*读取程序的开始地址*/
  
  fgets(a,SIZE,fp);
  
  fgets(a,SIZE,fp);
  
  for(j=0;j<length;j++)
  
  fscanf(fp,"%x,",data+j);
  
  start[i]=addr;/*保存程序开始地址*/
  
  for(j=0;j<length;j++)/*为DSP装入数据*/
  
  {
  
  /*给DSP的HPIA寄存器赋程序地址,先赋高位再赋低位*/
  
  outportb(HPIA_H,addr>>8);
  
  outportb(HPIA_L,addr&0x00ff);
  
  /*给DSP的HPID寄存器赋程序数据,先赋高位再赋低位*/
  
  outportb(HPID_H,*(data+j)>>8);
  
  outportb(HPID_L,*(data+j)&0x00ff);
  
  addr++;/*程序地址加1*/
  
  }
  
  for(j=0;j<4;j++)
  
  fgets(a,SIZE,fp);
  

《利用ISA总线实现对DSP芯片VC5402的软配置(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/176269.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。