今天解决了一个小问题,如何在linux驱动中访问mtd设备。
正常的访问,都是用户空间通过,open( /dev/mtd*, ) read(), write(), close() 来访问的。
这次由于在驱动中需要读取/dev/mtd4的一个sector, 这个sector是之前用来备份SD 卡的mbr的。
1. 访问的第一步是获得mtd设备,这有两种方法:
方法1:根据mtd number, 也就是分区号,
函数如下:
struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num)
/**
* get_mtd_device - obtain a validated handle for an MTD device
* @mtd: last known address of the required MTD device
* @num: internal device number of the required MTD device
*
* Given a number and NULL address, return the num'th entry in the device
* table, if any. Given an address and num == -1, search the device table
* for a device with that address and return if it's still present. Given
* both, return the num'th