Linux系统开发专栏

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2010年10月27日

摘要: “小王,告诉你一个好消息,最难理解的部分不知不觉中已经讲完了,今天的课程就简单多了,而且最重要的是咱们的Linux设备驱动核心理论课也差不多了…” “最难的部分?已经讲完了?我咋没感觉呢..你讲的真是太好了,太通俗易懂了,太..”小王调皮的说。 “切,就你嘴甜,我还不知道你啊,小脑筋..”我白了小王一样。 那么今天呢?今天就讲讲IO内存静态映射。在将Linux移植到目标电路板中,通常会建立外设IO内存物理地址到虚拟地址的静态映射,这个映射通过在电路板对应的 map_desc结构体数组中添加新的成员来完成,map_desc结构体的定义如下: struct map_desc{ unsigne... 阅读全文
posted @ 2010-10-27 13:07 ☆&寒 烟☆ 阅读(4418) 评论(0) 推荐(2) 编辑

摘要: 时间:晚上7点 地点:寝室中.. “小王,今天就不多话了,接着昨天没讲完的,不然连不起来了,都..”我催促着。 上节讲到kmalloc()申请的内存若要被映射到用户空间可以通过mem_map_reserve()设置为保留后进行。具体怎么操作呢,给你一个模版吧: // 内核模块加载函数int __init kmalloc_map_init(void){ ../申请设备号,添加cedv结构体 buffer = kmalloc(BUF_SIZE, GFP_KERNEL); //申请buffer for(page = virt_to_page(buffer); page< virt_to_... 阅读全文
posted @ 2010-10-27 09:52 ☆&寒 烟☆ 阅读(9718) 评论(0) 推荐(0) 编辑