linux 内核对mtd分区操作

siasjack 2014-12-12 11:28:58
需求
在一个驱动程序中读取mtd7分区的数据,判断数据是否为空,如果为空则重启设备或者直接关机,否则把数据清空

问题
小弟对内核代码不怎么懂,都是写应用态的,看到mtd下有mtd.h头文件,里面也有一些api,如下
int mtd_erase(struct mtd_info *mtd, struct erase_info *instr);
int mtd_point(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
void **virt, resource_size_t *phys);
int mtd_unpoint(struct mtd_info *mtd, loff_t from, size_t len);
unsigned long mtd_get_unmapped_area(struct mtd_info *mtd, unsigned long len,
unsigned long offset, unsigned long flags);
int mtd_read(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
u_char *buf);
int mtd_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen,
const u_char *buf);
int mtd_panic_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen,
const u_char *buf);


还有其他的一些!

请问谁有一些demo能让小弟参考的!
多谢!
...全文
969 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
siasjack 2015-01-18
  • 打赏
  • 举报
回复
引用 4 楼 moquan1100 的回复:
mtd7分区有mount上没? 如果有mount直接检查该分区对应的文件夹是否为空(本省创建的除外)。 删除和重启都有api,或者system("")直接调用命令;
内核态没有system调用
moquan1100 2015-01-15
  • 打赏
  • 举报
回复
mtd7分区有mount上没? 如果有mount直接检查该分区对应的文件夹是否为空(本省创建的除外)。 删除和重启都有api,或者system("")直接调用命令;
siasjack 2015-01-14
  • 打赏
  • 举报
回复
引用 2 楼 F599GTB 的回复:
要用裸flash? mtd设备创建时都会创建一个对应的字符设备,看看能不能满足你的需求
是的 会创建 我想要的是在设备启动后检测这个设备中是否有我想要的字符,如果没有我认为有人动了我的设备或者在别处使用我的系统,就不给他使用直接挂掉!
david-yue 2014-12-28
  • 打赏
  • 举报
回复
一般驱动厂商会有demo程序,你做驱动会接触到他们的器件吧,应该可以要得到的
F599GTB 2014-12-28
  • 打赏
  • 举报
回复
要用裸flash? mtd设备创建时都会创建一个对应的字符设备,看看能不能满足你的需求

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧