Linux
tomtntlili
这个作者很懒,什么都没留下…
展开
-
page_address_init 高端内存初始化函数
1、32位地址总线决定ARM可以访问4G的地址空间2、Linux的内存分配策略为0~3G分配给用户进程,3~4G分配给内核进程,所以内核进程只能访问1G的内存空间3、这1G的内存空间还有128M被用作什么了,不太清楚。所以就剩下896M给内核进程。4、内核进程能有效管理的896M内存,超过896M就为高端内存,具体高端内存怎么管理不太清楚,大概就是要映射到低端内存上去吧原创 2014-01-07 09:28:29 · 698 阅读 · 0 评论 -
设备树
设备树使用手册This page walks through how to write a device tree for a new machine. It is intended to provide an overview of device tree concepts and how they are used to describe a machine.本文将介绍如何为一个新机器转载 2014-01-16 14:29:08 · 589 阅读 · 0 评论 -
request_irq 中断号
上面在说到安装中断的时候说过,调用request_irq()时的参数中irq的确定是个难题,为什么?你如果到网络上查一下关于linux的资料,十有八九是关于i386体系结构上的,但linux是可以运行在多种cpu上的,比如采用arm内核的s3c2410,在i386体系上的经验在这里可以用么?我们试验一下:硬件准备,使用s3c2410的EINT0引脚作中断测试,为它编写一个中断驱动程序,最后转载 2014-01-16 09:20:56 · 4059 阅读 · 1 评论 -
设备树详解
his page walks through how to write a device tree for a new machine. It is intended to provide an overview of device tree concepts and how they are used to describe a machine.本文将介绍如何为一个新机器编写设备转载 2014-01-08 10:35:29 · 1385 阅读 · 0 评论 -
setup_per_cpu_areas
该函数为系统中每个处理器的per_cpu变量申请空间。适应于多核的处理器原创 2014-01-07 09:46:07 · 590 阅读 · 0 评论 -
sched_init
该函数初始化每个处理器的可运行进程队列,设置系统初始化进程即0号进程。原创 2014-01-07 09:50:36 · 522 阅读 · 0 评论 -
smp_prepare_boot_cpu
该函数初始化多核处理器系统中的处理器位码表原创 2014-01-07 09:47:40 · 759 阅读 · 0 评论 -
setup_arch
该函数根据处理器、硬件平台具体型号设置系统。解析Linux系统命令行,设置0号进程(swapper进程)的内存描述结构init_mm,系统内存管理初始化,统计并注册系统各种资源,其他杂项初始化。原创 2014-01-07 09:45:10 · 375 阅读 · 0 评论 -
lock_kernel 内核上锁,即锁定0号进程
struct task_struct *task = current;这个current任务代表0号进程,即init()进程之前的进程,但是这个进程在哪里开始创建和处理的呢?原创 2014-01-07 09:21:01 · 489 阅读 · 0 评论 -
Linux驱动开发步骤
1、在Kconfig文件中添加选项,如下:config YS_QDECtristate "YS_QDEC"help ys_qdec2、在Makefile文件中添加编译设置,如下:obj-$(CONFIG_YS_QDEC)+= ys_qdec.o以上两步做好,就可以在menuconfig中选择,把你的驱动文件编译进内核了。注意menuconfig是按照文件夹的原创 2014-01-15 10:50:21 · 5754 阅读 · 0 评论