请高手帮我看看怎么是怎么会事~

[复制链接]
3041|6
 楼主| 电子乌鸦 发表于 2007-3-24 12:56 | 显示全部楼层 |阅读模式
在进行仿真的时候,主程序运行到这条语句的时候就不动了(*PEDATDIR&nbsp;=&nbsp;*PEDATDIR&0x0FFFD;),想进入死循环了一样,我是出学的,在做硬件仿真的时候应该把程序下载到外部RAM里吧,我现在的电路上还扩展了I/O空间,这样就是地址线和数据线复用,不知道这样能不能进行仿真~<br />主函数~:<br />main()<br />{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;LedBuf[4];<br />&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;t;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DSPsystem_Init();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;KeyOutput1_Fo;<br />&nbsp;&nbsp;&nbsp;&nbsp;KeyOutput2_Fo;<br />&nbsp;&nbsp;&nbsp;&nbsp;*PEDATDIR&nbsp;=&nbsp;*PEDATDIR&0x0FFFD;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;sprintf(LedBuf,&nbsp;&quot;%4s&quot;,&nbsp;&quot;----&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;LedDisplay(LedBuf,&nbsp;1);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(key&nbsp;==&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(key)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;………………<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />我的初始化函数如下:<br />void&nbsp;DSPsystem_Init(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;SETC&nbsp;INTM&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*关总中断*/<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;SXM&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*抑制符号扩展*/<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;OVM&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*累加器中结果正常溢出*/<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;CNF&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*B0区被配置为数据空间*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SCSR1=0x83FE;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*时钟2倍频,CLKIN=12M,CLKOUT=24M*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*WDCR=0x00E8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*不使能WDT*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*IMR=0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*屏蔽所有CPU中断*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*XINT1CR=0x8001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*高优先级,使能中断INT1,上升沿产生中断*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*XINT2CR=0x8001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*低优先级,使能中断INT2,下降沿产生中断*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*IFR=0xFFFF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*清全部中断标志*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*MCRA=0x0007;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*IO口初始化*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*MCRB=0xFF3D;<br />&nbsp;&nbsp;&nbsp;&nbsp;*MCRC=0x0000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;WSGR=0x0006;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*外部IO空间和数据存储空间插入等待周期*/<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*PADATDIR=0xF080;<br />&nbsp;&nbsp;&nbsp;&nbsp;*PBDATDIR=0x00FF;<br />&nbsp;&nbsp;&nbsp;&nbsp;*PCDATDIR=0xFF00;<br />&nbsp;&nbsp;&nbsp;&nbsp;*PDDATDIR=0xFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;*PEDATDIR=0xFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;*PFDATDIR=0xF000;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*串口初始化*/<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SCICCR=0x0007;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*空闲线多处理器模式,8位数据,1位停止位,无奇偶校验*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SCICTL1=0x0013;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*接收使能,SLEEP=0,SW&nbsp;RESET=0*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SCICTL2=0x0002;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*接收中断使能*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SCIHBAUD=0x0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SCILBAUD=0x0038;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*波特率为9600systemclk=24M*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SCICTL1=0x0033;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*串口初始化完成,SW&nbsp;RESET=1*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SCIPRI=0x0060;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*一旦仿真挂起,在完成当前的接收/发送操作后停止*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*PEDATDIR&nbsp;=&nbsp;*PEDATDIR&0xFFFD;*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*IMR=0x0001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*开中断INT1*/<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;CLRC&nbsp;INTM&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*开总中断*/<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;<br />
 楼主| 电子乌鸦 发表于 2007-3-24 12:58 | 显示全部楼层

图片怎么打不开呀~

  
 楼主| 电子乌鸦 发表于 2007-3-24 13:00 | 显示全部楼层
nxy825715 发表于 2007-3-24 17:14 | 显示全部楼层

个人见解:

一:你查查*与&的运算优先级咯<br />二:你仔细看看你的build&nbsp;Option中的设置,(建议参考规范的例程)
 楼主| 电子乌鸦 发表于 2007-3-24 22:47 | 显示全部楼层

这样应该可以呀

*PEDATDIR&nbsp;=&nbsp;*PEDATDIR&0x0FFFD;我看很多参考资料上都是这么写的啊~<br />至于你说检查build&nbsp;options,等我周一在好好检查一下~<br />谢谢~
 楼主| 电子乌鸦 发表于 2007-3-26 09:28 | 显示全部楼层

有没有遇到过类似问题的呀~

  
zj0203 发表于 2007-3-26 11:11 | 显示全部楼层

地址数据线复用肯定没问题的。

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

21

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部