voidinit(void) {intpid,i;setup((void *) &drive_info); //#define DRIVE_INFO (*(struct drive_info *)0x90080)。这里的drive_info是设备信息,在前面介绍的章节中,我们知道,硬盘信息被写到0x90080的地址处(void) open("/dev/tty0",O_RDWR,0); ... } 这里setup是一个宏,这个宏最终调用的是sys...
}staticvoid__exitkretprobe_exit(void){unregister_kretprobe(&my_kretprobe);pr_info("kretprobe at %p unregistered\n", my_kretprobe.kp.addr);/* nmissed > 0 suggests that maxactive was set too low. */pr_info("Missed probing %d instances of %s\n", my_kretprobe.nmissed, my_kretprobe.kp.sy...
PC机上引导程序一般由BIOS开始执行,然后读取硬盘中位于MBR(Main Boot Record,主引导记录)中的Bootloader(例如LILO或GRUB),并进一步引导操作系统的启动。 嵌入式系统中通常没有像BIOS那样的固件程序,因此整个系统的加载启动就完全由bootloader来完成,它主要的功能是加载与引导内核映像。 一个嵌入式的存储设备通过通常包括四...
COMMAND: "bash" TASK: f6ec0c90 [THREAD_INFO: f6d2e000] CPU: 0 STATE: TASK_RUNNING (PANIC) crash > 可以看到引起崩溃的进程是PID: 4437, crash 提供了 ps 命令显示所有进程的状态,用ps | grep 4437可以筛选出引起崩溃的进程: crash > ps | grep 4437 PID PPID CPU TASK ST %MEM VSZ RSS COMM...
1.处理uboot传入的参数(比如mem的大小,bootargs的参数) 2.挂接根文件系统,启动应用程序。 在内核启动之前有可能会有一个自解压的操作: 因为有可能编译出来的内核比较大,在运行内核之前会先进行自解压的操作,自解压的那段代码不分析(以后有时间分析)。
\n",file,line);elsepr_crit("Kernel BUG at %p [verbose debug info unavailable]\n",(void*)bugaddr);===>[2.052157]<2>-(2)[1:swapper/0]---[cut here]---[2.052163]<2>-(2)[1:swapper/0]KernelBUGat c04289dc[verbose debug info unavailable][2.052169]<2>-(2)[1:swapper/0]Internal ...
void__meminitmemmap_init_zone(unsigned long size,int nid,unsigned long zone,unsigned long start_pfn,enummemmap_context context){...if((z->zone_start_pfn<=pfn)&&(pfn<zone_end_pfn(z))&&!(pfn&(pageblock_nr_pages-1)))set_pageblock_migratetype(page,MIGRATE_MOVABLE);...} 其它可移动...
[766252.212172] Mem abort info: [766252.215150] ESR = 0x96000046 [766252.218383] Exception class = DABT (current EL), IL = 32 bits [766252.224572] SET = 0, FnV = 0 [766252.227811] EA = 0, S1PTW = 0 [766252.231132] Data abort info: ...
kthread_worker_fn+0x180/0x180 [ 2951.657306] Mem-Info: [ 2951.659599] active_anon:29793 inactive_anon:41666 isolated_anon:0 [ 2951.659599] active_file:54 inactive_file:70 isolated_file:0 [ 2951.659599] unevictable:0 dirty:41 writeback:1 unstable:0 [ 2951.659599] slab_reclaimable:8094 slab...
__lookup_processor_type 在文件 arch/arm/kernel/head-common.S 文件中,主要作用是检查当前系统是否支持此 CPU,如果支持的就获取procinfo信息。 procinfo 是proc_info_list 类型的结构体 , proc_info_list 在文件arch/arm/include/asm/procinfo.h 中 ...