4878|12

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教,编程问题! [复制链接]

我现在是在flash主存中开辟了几个段,来存储一些实时数据,我存的数是一组一组存入的,为了避免在檫除时同一组数部分被檫除部分还有的现象,故同一组数要保证存如同一段里面,所以就出现了段结束判断;我对段判断的程序如下:
#define flash_addr_m 0x0FA00;存数区开始地址
#define flash_addr_end 0x0fdff;存数区结束地址

unsigned char * readpc_m;  定义了一个flash指针

if(readpc_m==(unsigned char *)flash_addr_m)
判断是否已经存到存数区结束地址

if((readpc_m & 0xff)==0)
判断是否是段的开始地址

if((readpc_m&0x00ff)==(((unsigned char *)flash_addr_end)&0x00ff))
判断是否是段的结束地址

不知道是不是我这种表示方法不正确还是根本就不能这样表示,反正编译时总是提示有错误?不知道该怎么办?请高手指点迷津!

最新回复

我再想想看还有什么别的办法!谢谢  详情 回复 发表于 2005-11-28 12:14
 
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
希望高手给予解答!
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
希望解惑!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
指针类型不一样啊
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
readpc_m?
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
你定义了指针readpc_m,在没有赋初始值就开始使用,即使用一个空指针与flash_addr_m和flash_addr_end进行比较,编译就会报错。
另外你定义的指针类型的值域(0x00~0xFF)也覆盖不了存储空间的地址空间。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

7
 
readpc_m指向的区域内容是字符型的,在书上看到的指针类型定义不就是说根据指针的内容类型而定的吗?难道说不是?
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

8
 
是的,你定义的readpc_m类型是(无符号)字符型的,但其指向地址只有256个地址空间。你定义的存储器首尾地址是0x0FA00~0x0FDFF,其地址变化的绝对值为0x00~0x3FF(1024),所以你这样使用readpc_m指针是无法一次性判断1KB空间的。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
哦,这样哦,那么请问我该怎样定义这个指针哪?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
最好你把指针定义为unsigned int类型,但要注意,在进行指针增量变化时,地址增量是以字为单位(双字节)。我记不清了,好象flash操作就是以字为单位进行操作的。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

11
 
可是如果我把它定义成unsigned int类型,那么与它指向的存储单元的内容也就不符合了,在书上看到是可以按字节操作的!
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

12
 
那你可以另外再定义一个指针,对存储区首尾检测使用int指针,对段尾检测使用char指针,程序上可能会麻烦一点。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

13
 
我再想想看还有什么别的办法!谢谢
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表