官方QQ群收藏本站

百问linux嵌入式论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 87|回复: 2

[悬赏 10 金钱]NOR FLASH 打印扇区代码理解

[复制链接]

4

主题

11

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2019-9-5 07:44:50 | 显示全部楼层 |阅读模式
        regions = nor_dat(0x2c);
        region_info_base = 0x2d;
        block_addr = 0;
        printf("Block/Sector start Address:\n\r");
        cnt = 0;
        for(i = 0; i<regions; i++)
        {
**                blocks = 1 + nor_dat(region_info_base) + (nor_dat(region_info_base+1)<<8);
**                block_size = 256 * (nor_dat(region_info_base+2) + (nor_dat(region_info_base+3)<<8));
                region_info_base +=4;

                for( j =0; j<blocks; j++)
                {
                        /*  打印每个block的起始地址 */
                        //printf("0x%08x ",block_addr);
                        printHex(block_addr);
                        putchar(' ');
                        cnt++;
                        block_addr += block_size;
                        if(cnt % 5 == 0)
                                printf("\n\r");
                }
        }

这里韦老师写的代码我实在理解不了,程序是正确的,结果也证明了这一点。希望论坛的各位大佬,老师能指点一下。
1.nor_dat函数读取的的结果是四字节,高2字节应该是0,(因为是short类型转换过去的)
2.nor flash 的数据读取是以2字节进行的,那么读地址0x2d应该会读到2字节数据吧。同样读2e也应是2字节。
3.那么这里的移位操作和加法操作我就看不明白了。
4.韦老师查看的百度资料关于CFI Publication 100,显示高2字节*256=block大小,低2字节+1=block数。那么读0x2d得到的不就是2字节吗?
回复

使用道具 举报

3

主题

4

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2019-9-6 10:01:11 | 显示全部楼层
读取的数据是分为两个两个字节读取的  , 一个是高字节 一个是低字节,都是8位的 ,将两个字节整理成一个16位的数据就是 高字节左移8位,在加上低八位字节,就是一个16位的数据了  
回复 支持 反对

使用道具 举报

4

主题

11

帖子

55

积分

注册会员

Rank: 2

积分
55
 楼主| 发表于 2019-9-6 16:29:12 | 显示全部楼层
撒哈哈 发表于 2019-9-6 10:01
读取的数据是分为两个两个字节读取的  , 一个是高字节 一个是低字节,都是8位的 ,将两个字节整理成一个16 ...

代码的意思我能理解。就是钻牛角尖出不来,以Word Mode访问返回的数据是16bit(short 类型,2字节),那么高八位都是0吗,有效数据只是低字节?没明白这块
回复 支持 反对

使用道具 举报

技术支持
在线咨询
咨询热线
0755-86200561
微信扫一扫
获取更多资讯!

Archiver|小黑屋|百问linux嵌入式论坛     

GMT+8, 2019-9-20 12:47 , Processed in 0.112497 second(s), 11 queries , File On.

Powered by Discuz! X3.3 Licensed

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表