![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux driver init
文章平均质量分 71
kumquat_cui
这个作者很懒,什么都没留下…
展开
-
Linux驱动中,probe函数何时被调用
最近看到linux的设备驱动模型,关于Kobject、Kset等还不是很清淅。看到了structdevice_driver这个结构时,想到一个问题:它的初始化函数到底在哪里调用呢?以前搞PCI驱动时用pci驱动注册函数就可以调用它,搞s3c2410驱动时只要在mach-smdk2410.c中的struct platform_device *smdk2410_devices{}中加入设备也会调用。但转载 2012-08-29 11:04:30 · 435 阅读 · 0 评论 -
Linux 内存管理系统:初始化
inux 内存管理系统:初始化作者:Joe Knapka臭翻:colyli内存管理系统的初始化处理流程分为三个基本阶段:激活页内存管理 在swapper_pg_dir中初始化内核的页表 初始化一系列和内存管理相关的内核数据 Turning On Paging (i386)启动分页机制(i386)Kernel 代码被加载到物理地址0x100000(1MB),转载 2012-08-31 16:41:51 · 1518 阅读 · 0 评论 -
Linux启动过程综述
Bootloader在Alpha/AXP平台上引导Linux通常有两种方法,一种是由MILO及其他类似的引导程序引导,另一种是由Firmware直接引导。MILO功能与i386平台的LILO相近,但内置有基本的磁盘驱动程序(如IDE、SCSI等),以及常见的文件系统驱动程序(如ext2,iso9660等),firmware有ARC、SRM两种形式,ARC具有类BIOS界面,甚至还有多重引导的设转载 2012-08-31 16:59:57 · 506 阅读 · 0 评论 -
关于do_initcalls函数的说明
1.在看linux核心代码的时候看到/init/main.c 里面的do_initcalls函数static void __init do_initcalls(void)742 {743 initcall_t *call;744745 for (call =__initcall_start; call __ini转载 2012-08-31 16:59:02 · 2164 阅读 · 1 评论 -
Linux 运行时内核分析(二版)
我们基于RH9 内核从两部分来分析Linux系统动态运行过程一: 系统初始化开始,Linux进入保护模式,初始内存系统、中断系统、文件系统等,直到创建第一个用户进程。二: 用户进程通过系统调用主动进入内核,CPU 接受中断请求被动执行各种中断服务。第一部分 系统初始化进入保护模式 Arch/i386/boot/Setup.sgdt:.fill GDT_ENTRY_KER转载 2012-08-31 16:56:21 · 628 阅读 · 0 评论 -
linuxMACHINE_START-MACHINE_END
在友善mini2440提供的linux2.6.32.2内核中,有如下定义:MACHINE_START(MINI2440, "FriendlyARM Mini2440 developmentboard").phys_io = S3C2410_PA_UART,.io_pg_offst = (((u32)S3C24XX_VA_UART)>> 18) &0xfffc,.boot_par转载 2012-08-31 14:04:32 · 313 阅读 · 0 评论 -
Linux kernel command line 参数详解
Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。转载 2012-08-31 13:59:19 · 3450 阅读 · 0 评论 -
深入嵌入式系统的 BootLoader
///////////////////////////////////////////////////////////////2011.5.13--黑米/////////////////////////////////////////////////////////////////////////////////这周在调试新的处理器和内存。遇到了一些问题。解决了,回想这篇文章,大概的思路很有借转载 2012-08-31 14:01:16 · 875 阅读 · 0 评论 -
Linux-2.6.20的cs8900驱动分析
一、初始化阶段 网络初始化被调用的路径为:init->do_basic_setup->do_initcalls->net_olddevs_init->ethif_probe2->probe_list2->cs89x0_probe->cs89x0_probe1真是不容易啊,终于进到cs89x0_probe1了,在这里开始探测和初始化cs8900了。下面就按照这个顺序来说明网络驱动第转载 2012-08-29 11:07:08 · 733 阅读 · 0 评论 -
platform_driver_probe与platform_driver_register的区别
Platform Device and Drivers从我们可以了解Platformbus上面的驱动模型接口:platform_device,platform_driver。和PCI和USB这些大结构的总线不同,虚拟总线Platform bus使用最小结构来集成SOC processer上的各种外设,或者各种“legacy”之间的互联。Platform device典型的Platf转载 2012-08-29 11:05:36 · 425 阅读 · 0 评论 -
ARM-Linux开发环境的介绍:启动的流程
下面是我收藏的一篇好文章,就是忘记是那位仁兄,写的了,如果您正好看到这篇文章,请补注您的作者信息------------------------------------首先,porting linux的时候要规划内存影像,如小弟的系统有64m SDRAM, 地址从0x 0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dff ffff转载 2012-08-31 16:53:23 · 1026 阅读 · 0 评论