随笔分类 - kernel
摘要:内核默认的运行地址为PHY_OFFSET+0x8000,即物理地址开始后的0x8000字节处,前面是留给参数用的。参数以atag方式存储,默认放在0x100偏移位置。 http://blog.chinaunix.net/uid-20451980-id-1945241.html Linux kerne
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_65373f1401019f49.html 转载自解惑-Linux内核空间 Linux虚拟内存的大小为2^32(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节(从虚地址0xC0000000到0xFFFFF
阅读全文
摘要:void * kmalloc(size_t size, gfp_t gfp_mask); kmalloc()第一个参数是要分配的块的大小,第一个参数为分配标志,用于控制kmalloc()的行为。 kmalloc()的底层依赖于__get_free_pages()来实现,分配标志的前缀GFP正好是这个
阅读全文
摘要:转自:http://www.cnblogs.com/image-eye/archive/2011/08/28/2156005.html 内核源码之Kconfig和Makefile Linux内核源码树的每个目录下都有两个文档Kconfig和Makefile。分布到各目录的Kconfig构成了一个分布
阅读全文
摘要:在内核文件中arch/arm/tools/mach-types定义目前内核支持的板卡、芯片等: ##machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number at91sam9g10ek MACH_AT91sam9G10EK AT91SAM9G10EK 2159
阅读全文
摘要:在linux的板卡初始化文件中有machine的相关定义 //arch/arm/mach-at91/board-sam9261ek.c MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK") /* Maintainer: Atmel */ .phys
阅读全文
摘要:转自: http://blog.sina.com.cn/s/blog_753fd0b00100t8js.html 在友善mini2440提供的linux2.6.32.2内核中,有如下定义: MACHINE_START(MINI2440, "FriendlyARM Mini2440 developme
阅读全文
摘要:kernel模块配置 Enable loadable module support 打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/中 Forced module loading 允许模块强制加载 Module unloa
阅读全文
摘要:什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。 在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没
阅读全文
摘要:驱动测试时,linux驱动常以模块方式插入内核。应包含头文件:linux/kernel.h,linux/module.h设备驱动的一般结构:Soc(主芯片->设备控制器->外设引脚) 设备相关芯片(DM9000/MM8960/MAX3232) 设备插接件(RJ45/Speaker/DB9)系统中的每
阅读全文
摘要:一、模块组成 一个linux内核模块主要由如下几个部分组成: 1) 模块加载函数。当通过insmod或modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成本模块的相关初始化工作。"module_init(函数名)",返回整型值,若初始化成功,返回0,初始化失败,返回错误编码。li
阅读全文
摘要:它的作用显而易见,那就是根据一个结构体变量中的一个域成员变量的指针来获取指向整个结构体变量的指针。 需要注意的是,要使用container_of,则type中成员member不能为指针。(若其为指针,则ptr为指针的指针,为程序带来复杂性)。 此处错误应删除(指针成员与非指针成员同等处理即可)。例程
阅读全文
摘要:转自:http://www.linuxidc.com/Linux/2011-09/43187.htm 作者:作者:YAOZHENGUO2006 Input子系统处理输入事务,任何输入设备的驱动程序都可以通过Input输入子系统提供的接口注册到内核,利用子系统提供的功能来与用户空间交互。输 入设备一般
阅读全文
摘要:参考:http://blog.chinaunix.net/uid-24460251-id-2606762.htmlhttp://blog.csdn.net/zjjyliuweijie/article/details/7001383 现有linux内核支持的设备号,可通过/Documentation/
阅读全文
摘要:linux base 1. 设备启动过程 1) 上电->POR 2) bootROM->SRAM=>uboot1 3) uboot1->uboot2 4) kernel->rootfs 5) init 2. uboot >Makefile >cpu/arm926ejs ->uboot1 u-boot
阅读全文
摘要:硬件采用nandflash,nandflash为8位数据宽度,没有dataflash和norflash。 Nandflash空间分配为 bootstrap + u-boot + env + linux 。 Nandflash空间分配为 bootstrap + u-boot + env + linux
阅读全文
摘要:一、基础 ioctl是linux中一种除read和write之外的数据传递机制, 通信双方是应用层和内核层。 #include <sys/ioctl.h> int ioctl(int fd, unsigned long request, ...); // cmd:控制命令 // ...:可选参数:插
阅读全文
摘要:printk会阻塞,不能用在中断上下文。 基础 涉及文件:kernel/printk.c include/linux/kernel.h include/linux/device.h(dev_info\dev_dbg) 用printk内核会根据日志级别把消息打印到当前控制台上。 信息正常输出前提是--
阅读全文
摘要:linux启动时会又大量信息打印,若要使启动信息不打印,需修改内核中两处:1. 内核配置项。 CONFIG_SERIAL_ATMEL_CONSOLE=y //去掉终端配置选项。2. 内核解压缩时,终端由于uboot初始化过,所以解压信息会有打印,注释掉内核解压打印。 arch/arm/boot/co...
阅读全文
摘要:转自:详谈Linux写时拷贝技术(copy-on-write)必看篇 参考:再谈 copy-on-write 知乎 COW技术初窥 在linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制”技术,也就是只有进程
阅读全文
浙公网安备 33010602011771号