标题:经典:对外部存储器读写指定长度大小字节 急。。。。。
只看楼主
affhxf
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2009-7-13
 问题点数:0 回复次数:5 
经典:对外部存储器读写指定长度大小字节 急。。。。。
    给定线性地址空间0x00000000~0xFFFFFFFF的逻辑地址,现在在物理存储器上需要这样来存储这些实际数据:指定有效数据块长度,在等长数据块之间插入一个校验字节。该校验字节数值等于该块数据所有以字节方式的累加和。例如:
    指定块长度63字节为一块,对于一个0x00000000逻辑首地址,长度64字节的数据块来说,实际物理地址存储为:0x00000000~0x0000003E是该数据块的前63个字节,0x0000003F字节是前63字节累加和-为校验字节,0x00000040为该块第64个字节的存储地址。
    现在,给定某一逻辑首地址,并且给出预读数据字节长度,请从物理存储器上读或写入指定长度的数据。
#define u32 unsigned long
#define u8 unsigned char
/*假定用Sim_Mem_Buf 模拟存储器 存储字节大小1024字节*/
u8 Sim_Mem_Buf[1024];
/*
函数名:void Pub_Data_RW(u32 log_addr,u8 mode,u8 * buf,u8 len)
输  入:log_addr  : 逻辑首地址;mode : 操作方式,1-读,2-写;buf : 缓存区首地址; len : 读,写数据长度
返回值:无
功  能:读写存储器
搜索更多相关主题的帖子: 对外部 长度 字节 经典 存储器 
2010-03-30 21:45
affhxf
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2009-7-13
得分:0 
,这是一个很经典的东西。
2010-03-30 21:48
affhxf
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2009-7-13
得分:0 
,请高手帮忙,尽快!
2010-03-30 21:49
affhxf
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2009-7-13
得分:0 
搞笑,没高手呀,呵呵
2010-04-09 22:49
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
得分:0 
LZ这题真的那么经典吗。我怎么看的就像一个普通的题,只不过是操作的对象变成对内存的模拟了。,

题意不太清楚。我这样理解。len为读取内存块的总共长度。将从内存中读到的数据写如buf缓冲区。mod为要读取内存的首地址,但是指定的数据块的长度在哪呢。例子中为64,如果这题的内存块长度也为64,也就是在mod+64的为值上写入前63个地址的和,在从mod+65开始数64个字节的地址和写入mod+128的位置,直到长度大于len,但是当最后一个内存块小于64时怎么处理?
最后写入buf的数据是什么??实地址还是数据,数据可就是垃圾值了

离恨恰如春草,更行更远还生。
2010-04-09 23:26
affhxf
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2009-7-13
得分:0 
len为一个数据块的长度,下面举例len为64,如网络数据传输,都是以一帧帧的传输。里面有校检字、控制字等等,mode就不用管了,只有读写两种模式字。题意在:给定某一逻辑首地址,并且给出预读数据字节长度,请从物理存储器上读或写入指定长度的数据。我想是先把数据分成len长度块放到缓存中去,整块的读取。
这题目不是很实际么??对空间充分利用。网络数据传输数据就是这样,以帧格式的。
2010-04-10 23:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-301078-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.390500 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved