码迷,mamicode.com
首页 > 其他好文 > 详细

5.2.13.驱动中如何操控硬件

时间:2018-07-01 16:20:23      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:改变   内核   地址空间   地址映射   malloc   动态   源代码   全局   如何   

  1. 不变:

硬件原理不变
硬件操作接口(寄存器)不变
硬件操作代码不变

寄存器地址不变:裸机直接用物理地址,现在用虚拟地址。
编程习惯不变:裸机用函数指针操作寄存器,现在用封装好的IO读写函数来操作寄存器。

  1. 内核的虚拟地址映射方法(MMU)

两种方法:
静态映射:
在内核移植时就以代码方式硬编码,如果要改变,就要更改内核源代码然后重新编译内核。
在内核启动时建立静态映射表,关机时销毁。
类似全局变量
好处:执行效率高
坏处:始终占用虚拟地址空间
动态映射:
驱动程序根据需要随时动态的建立映射,使用,销毁映射。
类似malloc
好处:按需使用
坏处:每次都需要重新映射

5.2.13.驱动中如何操控硬件

标签:改变   内核   地址空间   地址映射   malloc   动态   源代码   全局   如何   

原文地址:https://www.cnblogs.com/Ocean-Star/p/9250377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!