电工吧
◎ 电工吧 >> 设为首页 >> 加入收藏>> 联系方式 >> 投稿 >>留言 
网站首页 · 电工新闻 · 电工基础 · 电力技术 · 电子技术 · 电工图片 · 电工法规 · 电工图书 · 电工搜索 · 论坛交流
 
      最新电子论文
 · 谈谈C51的编程规范 
 · 单片机初学者不好掌握的概 
 · MC14541B制作可编程序定时 
 · AT89C系列单片机加解密原理 
 · 功能强大的时钟中断 
 · PIC系单片机与MCS-51系列单 
 · 有些51系统容易复位的解决 
 · 温度传感器ds1820的汇编程 
      推荐电子论文

 · 功能强大的时钟中断
 · DSP编程的几个关键问题
 · 寻址方式与指令系统
 · 数码管的显示一例
 · PIC单片机软件开发技巧 

  ■ 所在位置:首页>>电子技术>>单片机技术>>正文
 

DSP编程的几个关键问题

     7.4 堆栈问题     在汇编程序中对堆栈的依赖很小,但在C程序中分配局部变量、变量初始化、传递函数变量、保存函数返回地址、保护临时结果功能都是靠堆栈完成。而C编译器无法检查程序运行时堆栈能否溢出。     7.5 程序跑飞问题     编译后的C程序跑飞一般是对不存在的存储区访问造成的。首先要查.MAP文件与memory map图对比,看是否超出范围。如果在有中断的程序中跑飞,应重点查在中断程序中是否对所用到的寄存器进行了压栈保护。如果在中断程序中调用了C程序,则要查汇编后的C程序中是否用到了没有被保护的寄存器并提供保护(在C程序的编译中是不对A、B等寄存器进行保护的)。

 8 命令文件的编写    在编辑*.cmd文件时编译连接器默认:page 0就是ROM区,page 1就是RAM区。下列段必须放在ROM区。    .text  load = PROG PAGE 0          ;程序段
   .const load = data PAGE 0          ;常数段
   .cinit load = data PAGE 0          ;初始化段
   .switch load = data PAGE 0         ;switch指令常数表  

  值得注意的是尽量不要用FILL选项,一旦进行填充会使生成的.out文件增大甚至超过内部的存储空间而无法Bootload。  

  9 Bootload问题    一般都采用从EPROM引导,但通常很费脑筋。下面介绍一下可为54X系列DSP内部引导程序识别的EPROM存储结构,见下表:
 
  EPROM内容地址08AAh或10AAh
SWWSR(等待状态产生寄存器)值16
BSCR(页切换控制寄存器)值16
入口点XPC(外部存储器映射寄存器)值7
入口点PC(程序地址寄存器)值16
第一块的大小16
第一块的入口点XPC(外部存储器映射寄存器)值7
第一块的入口点PC(程序地址寄存器)值16
代码(1)16
......
代码(N)16
最后一块的大小16
最后一块的入口点XPC(外部存储器映射寄存器)值7
最后一块的入口点PC(程序地址寄存器)值16
代码(1)16
......
代码(N)16
0000h(标志引导表结束)
......
...... ......
EPROM的启始地址(如8000h) 首地址
  FFFFh      -BSCR 0f800h                            ;设置4K为一页,页面切换时插入1个等待状态
    -o cdpd.hex                             ;转换成cdpd.hex文件
    -i                                      ;intel格式
    -boot                                   ;把所有的程序块装入EPROM
    -bootorg 8000h                          ;从EPROM存储器的8000h处开始写入程序内容
    -memwidth 8                             ;系统数据宽度转为8位,以避免生成2个文件
    -romwidth 8                             ;EPROM 数据宽度为8位
    -e 0840h                                ;从0840h开始执行程序
    -map wfcdpd.mxp                         ;生成EPROM存储器占用映射

本新闻共4页,当前在第3页  [1]  [2]  [3]  [4]  

 
         相关文章

 
 
  关于本站 | 友情站点 | 联系方式 | 版权声明 | 电工技术服务与支持中心
Copyright© 2005-2006 Dg8.Com.CN ,All Rights Reserved
电工网 电工吧 电子吧