Embededlinux之mtdnand

 应用层:(使用mtd ioctl)

0.获取mtd基本信息

struct mtd_info_user {
unsigned char type;  //flash类型
unsigned int flags;
unsigned int size;     //分区大小
unsigned int erasesize; //块大小
unsigned int wri     te   size;  //页数据大小
unsigned int oobsize;    //OOB大小
unsigned int ecctype;   //ECC类型
unsigned int ec     csi   ze;    //ECC大小
};

fd = open("/dev/mtd", O_RDWR);

ioctl(fd, MEMGE     TI   NFO, &mtd_info);

1.读页数据

2.写页数据

unsigned char pag     eda   te[2048] = {...};

write(fd, pagedate, mtd_info.writesize);

3.读OOB

struct mtd_oob_buf {
unsigned int start;
unsigned int length;
unsigned char *ptr;
};

unsigned char oobbuf2[64];

OOB_INFO.start = page_num * (2048);
OOB_INFO.ptr = oobbuf2;
ioctl(fd, MEMREADOOB, &OOB_INFO);

4.写OOB

unsigned char oobbuf[64] = {...};

OOB_INFO.start = page_num * (2048);
OOB_INFO.ptr = oobbuf;
ioctl(fd, MEMWRITEOOB, &OOB_INFO);

 Embededlinux之mtdnand_设计制作_RF/无线 mtd demo



25
60
0
22

相关资讯

  1. 1、如何使用C++进行OntologyWasm合约开发519
  2. 2、智能穿戴设所面临的挑战4672
  3. 3、当人工智能遇上工业4.0,我们可以期待哪些改变?2504
  4. 4、制造业潜力依然巨大,70年数据说明什么169
  5. 5、如何实现更快、更智能、更安全的工业自动化方案?5092
  6. 6、同步升压型DC/DC转换器LTC3535的功能特性及应用范围598
  7. 7、采用Linux系统和AT91RM9200控制器实现无线通信卡的设计1278
  8. 8、Linux内核数据结构:Radix树2457
  9. 9、同创伟业郑伟鹤:从投资卡奥斯看工业互联网投资3145
  10. 10、复工复产措施哪家强,南京试行周休2.5天引热议118
全部评论(0)
我也有话说
0
收藏
点赞
顶部