码迷,mamicode.com
首页 > 其他好文 > 详细

一个因xdata声明引起的隐含错误

时间:2017-07-07 13:12:47      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:存储类型   项目   举例   类型   地址   区别   注意   原因   引用   

我们知道一般增强型c51自身的RAM只有128BYTES,根本不够用,所以一般在定义全局变量,静态变量时都要用XDATA作为关键字修饰数据的的存储类型。但要注意的是,定义和声明一定要一致,不然出现错误很隐蔽,很难发现这个问题。拿我一个项目中的从外部SPI FLASH接口读出数据的教训来举例:

测试发现如果传递一个结构体变量的地址(或指针)就能得到结果,而实际的接收BUFF是一个结构体数组,不管我一什么方式引用其某个元素的首地址就是得不到结果,一直在纠结结构体数组和结构体变量调用的区别的泥淖里出不来。后来发现根本就不是这个事儿,根本原因是因为声明的时候少了关键字XDATA出现一直监控不到读出的数据。

 

一个因xdata声明引起的隐含错误

标签:存储类型   项目   举例   类型   地址   区别   注意   原因   引用   

原文地址:http://www.cnblogs.com/jieruishu/p/7131327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!