[ZLG-ARM] 请教申明变量的问题

[复制链接]
2035|0
 楼主| mklwcai 发表于 2007-7-30 12:20 | 显示全部楼层 |阅读模式
MCU:LPC2136<br />分散加载文件用的是ZLG的模板<br /><br />我把ZLG给的UART0接收函数加了一个超时判断<br />所以,用指针作为参数,指向的地址存放收到的数据<br /><br />uint8&nbsp;UART0_GetByte&nbsp;(uint8*&nbsp;rcv_dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;&nbsp;data_tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(U0LSR&nbsp;&&nbsp;0x01)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_tmp&nbsp;=&nbsp;U0RBR;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*rcv_dat&nbsp;=&nbsp;data_tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;OK_RECEIVE;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i==0xfffff*TIMEOUT)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ERROR_TIMEOUT;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />然后在另一个函数里调用<br />uint8&nbsp;interface(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;*receive_data;<br />&nbsp;&nbsp;&nbsp;&nbsp;……<br />&nbsp;&nbsp;&nbsp;&nbsp;while(UART0_GetByte(receive_data)!=OK_RECEIVE);<br />&nbsp;&nbsp;&nbsp;&nbsp;……<br /><br />}<br /><br />但是&nbsp;<br />编译之后调试发现<br />receive_data指向的地址是&nbsp;E0028000<br />和IOPIN一样,并不在RAM中<br /><br />但是申明用&nbsp;uint8&nbsp;receive_data;<br />这时却是正常的,在RAM中<br /><br />请问下,这是什么原因,怎么改?<br />谢谢<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

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