phys_to_virt是将已经映射的物理内存的地址转换为虚拟地址

函数定义:

static inline void *phys_to_virt(unsigned long x)
{
    return (void*)(__phys_to_virt((unsigned long)(x)));
}

#define__phys_to_virt(x)   ((x) - PHYS_OFFSET + PAGE_OFFSET)

#ifdef CONFIG_CPU_S3C2400
#definePHYS_OFFSET   (0x0C000000UL)
#else
#definePHYS_OFFSET    ()   //2410应该使用这个偏移地址
#endif

#definePAGE_OFFSET       (0xc0000000UL)   //3G处

由此可知物理内存与内核虚拟地址3G开始处一一对应.

linux内核之 phys_to_virt相关推荐

  1. Linux 内核启动流程

    转载自 http://wenku.baidu.com/link?url=KpOdULJu1CxP1swqRs_Szoyg5r_8rje4N08o4QtB5L9QlPjWesTYlrTPgkxPOriF ...

  2. Linux内核中内存分配函数

    1.原理说明 Linux内核 中采 用了一种同时适用于32位和64位系统的内 存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系 统中,用到了四级页表,如图2-1所示.四级页表分别为 ...

  3. arm的2级页表在Linux内核创建过程解析

    系统DDR的基地址为0x0,内存为1GB,所以TTB的基地址为0x4000.下面要创建虚拟地址0xfe700000到物理地址0xffff0000之间的映射,映射大小为64KB,即16页.由于物理地址不 ...

  4. linux内核分析(转自某位大哥网上的笔记)

    启动 当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码.BIOS先进行一系列的系统自检,然后初始化位于地址0的中断 ...

  5. u-boot与linux内核间的参数传递过程分析

     转自:http://blog.csdn.net/u012075739/article/details/52252991 http://www.nishizawa23.com/ http://li ...

  6. Linux内核驱动开发(一)

    Linux内核初探 linux操作系统历史 开发模式 git 分布式管理 git clone 获取 git push 提交 git pull 更新 邮件组 mailing list patch 内核代 ...

  7. Linux内核地址空间布局详解

    1. 简介 虽然x86_64的物理地址范围为64bit,但是因为地址空间太大目前不可能完全用完,当前支持57bit和48bit两种虚拟地址模式. 地址模式 单个空间 用户地址空间 内核地址空间 32位 ...

  8. Linux内核编程(三)----------Linux内核的基本概念

    写在前面:充满机遇与挑战的2019年来了,年前由于各个项目的原因,这个系列停滞了好久,新的一年虽然项目也是非常紧张,但还是争取闲暇的时间利用起来,把这个系列咬咬牙写完.任何成功和舒适,都是苦尽甘来,你 ...

  9. Linux 内核,30 年C 语言将升级至 C11

    Linux 内核,30 年C 语言将升级至 C11 还在使用 89 年版 C 语言的 Linux 内核,现在终于要做出改变了.今天,Linux 开源社区宣布,未来会把内核 C 语言版本升级到 C11, ...

最新文章

  1. 【深度学习】(6) tensorflow2.0使用keras高层API
  2. 标准情况下的最优方案与魔鬼赛道
  3. [JavaScript]关于div的隐藏
  4. oracle--rowid
  5. Android开发之java8 lambad表达式的使用
  6. 计算机辅助初中数学教学,初中数学合作教学如何融入计算机辅助教学
  7. 机器人J中WPR_北方工业大学服务机器人研究项目介绍
  8. vs里安装了mysql吗_vs2017安装 MySQL for Visual Studio 1.2.
  9. 新浪微博开放平台深度历险
  10. 9-Mybatis 多表查询之一对多
  11. 【翻译自mos文章】rman 备份时报:ORA-02396: exceeded maximum idle time
  12. python切片长度_python的间隔切片技巧
  13. 简单Android app开发_什么方法开发APP最简单?试试0代码开发平台
  14. RocketMQ开发指导之四——RocketMQ常见问题
  15. 18年怎么将win7升级到win10教程
  16. excel文件修复工具_psd文件修复工具下载|Recovery Toolbox for ps 最新版v2.3.1.0 下载
  17. Vue中金额、日期 格式化插件@formatjs/intl使用
  18. Beyond Part Models: Person Retrieval with Refined Part Pooling 阅读笔记
  19. 吴恩达deeplearning之CNN—卷积神经网络入门
  20. Chrome谷歌浏览器无法调用摄像头原因及解决办法

热门文章

  1. synchronized 关键字原理
  2. 2.LRU算法实现 [C++]
  3. java最基础语句,Java基础:Java语句
  4. mysql多源复制脚本_Mysql多源复制
  5. 佛吉尼亚大学计算机世界排名,弗吉尼亚大学计算机世界排名
  6. python opencv resize函数_Python OpenCV中的resize()函数的使用
  7. UPS 异常停机案例分析
  8. 程序员微信头像_这才是程序员的内心独白
  9. 编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略
  10. Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略