zoukankan      html  css  js  c++  java
  • 2.16.13.内核中架构相关代码简介

    2.16.13.1、内核代码基本分为3块
    (1)arch。 本目录下全是cpu架构有关的代码
    (2)drivers 本目录下全是硬件的驱动
    (3)其他 相同点是这些代码都和硬件无关,因此系统移植和驱动开发的时候这些代码几乎都是不用关注的。

    2.16.13.2、架构相关的常用目录名及含义
    (1)mach。(mach就是machine architecture)。arch/arm目录下的一个mach-xx目录就表示一类machine的定义,这类machine的共同点是都用xx这个cpu来做主芯片。(譬如mach-s5pv210这个文件夹里面都是s5pv210这个主芯片的开发板machine);mach-xx目录里面的一个mach-yy.c文件中定义了一个开发板(一个开发板对应一个机器码),这个是可以被扩展的。
    (2)plat(plat是platform的缩写,含义是平台)plat在这里可以理解为SoC,也就是说这个plat目录下都是SoC里面的一些硬件(内部外设)相关的一些代码。
    在内核中把SoC内部外设相关的硬件操作代码就叫做平台设备驱动。
    (3)include。这个include目录中的所有代码都是架构相关的头文件。(linux内核通用的头文件在内核源码树根目录下的include目录里)

    2.16.13.3、补充
    (1)内核中的文件结构很庞大、很凌乱(不同版本的内核可能一个文件存放的位置是不同的),会给我们初学者带来一定的困扰。
    (2)头文件目录include有好几个,譬如:
    kernel/include 内核通用头文件
    kernel/arch/arm/include 架构相关的头文件
    kernel/arch/arm/include/asm
    kernelarcharmincludeasmmach
    kernelarcharmmach-s5pv210includemach
    kernelarcharmplat-s5pincludeplat
    (3)内核中包含头文件时有一些格式

    #include <linux/kernel.h>		kernel/include/linux/kernel.h
    #include <asm/mach/arch.h>		kernel/arch/arm/include/asm/mach/arch.h
    #include <asm/setup.h>			kernelarcharmincludeasm/setup.h
    #include <plat/s5pv210.h>		kernelarcharmplat-s5pincludeplat/s5pv210.h
    

    (4)有些同名的头文件是有包含关系的,有时候我们需要包含某个头文件时可能并不是直接包含他,而是包含一个包含了他的头文件。

  • 相关阅读:
    lua "Hello, world!"[转]
    用16进制编辑器编写一个DLL文件【转自看雪】
    Lua脚本语言入门(目前魔兽使用的可以写在宏内的语言)转自中国Lua开发者
    some tips about web hacking
    DevCpp/Mingw32/GCC专栏
    .NET中的幕后英雄MSCOREE.dll [转]
    手写可执行程序[ 转自看雪]
    VC下编译lua和luabind[转]
    简论程序是如何动态修改内存或指令的【转自看雪】
    一些链接(转仅供收藏)
  • 原文地址:https://www.cnblogs.com/Ocean-Star/p/9236241.html
Copyright © 2011-2022 走看看