linux内核模块所需包含的头文件-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 6397789
  • 博文数量: 579
  • 博客积分: 1548
  • 博客等级: 上尉
  • 技术积分: 16635
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-12 15:29
个人简介

http://www.csdn.net/ http://www.arm.com/zh/ https://www.kernel.org/ http://www.linuxpk.com/ http://www.51develop.net/ http://linux.chinaitlab.com/ http://www.embeddedlinux.org.cn http://bbs.pediy.com/

文章分类

全部博文(579)

文章存档

2018年(18)

2015年(91)

2014年(159)

2013年(231)

2012年(80)

发布时间:2013-01-06 11:45:24

点击(此处)折叠或打开#include      //dev_t,major,minor,mkdev#include         //file_operations,struct file,struct indoe,register/unregister_chrdev,register/alloc/unregister_chrdev_regino,#include 【阅读全文】

阅读(4160) | 评论(0) | 转发(2)

发布时间:2012-12-31 17:18:47

     前两天把内核关于内核启动参数的一些知识彻底地分析了一遍《linux内核源码分析--内核启动命令行的传递过程(linux-3.0 armv7)》,发现了一些以前没有注意的细节问题,这里总结如下:一、2.6.32以后的内核不再对cmdline中的未知参数输出警告信息     以前在移植内核的时候,如果cmdline中有未知的参数,内核一般会打印如下警告:unknown boot option `**********': ignoring    但是这次我在uboot的bootargs中添加了内核未知的参数,比......

阅读(2226) | 评论(0) | 转发(0)

发布时间:2012-12-31 17:15:31





    在完成了zimage自解压之后,就跳转到了解压后的内核(也就是vmlinux的bin版本image),具体的入口可以在arch/arm/kernel/vmlinux.lds.s(最终的链接脚本是通过这个文件产生的)中获得:
......
sections
{
#ifdef config_xip_kernel
. = xip_virt_addr(config_xip_phys_addr);
#else
. = page_offset text_offset;
#endif

.init : { /* init co......

阅读(3496) | 评论(0) | 转发(3)

发布时间:2012-12-31 17:14:10

1. 引言 在专用的嵌入式板子运行 gnu/linux 系统已经变得越来越流行。一个嵌入式 linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 boot loader 两大部分。 2. linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3. 文件系统。包括根文件系统和建立于 flash 内存设备之上文件系统。通常用 ram disk 来......

阅读(3212) | 评论(0) | 转发(7)

发布时间:2012-12-31 17:10:37

    在基本分析完内核启动流程的之后,还有一个比较重要的初始化函数没有分析,那就是do_basic_setup。在内核init线程中调用了do_basic_setup,这个函数也做了很多内核和驱动的初始化工作,详解如下:/* * 好了, 设备现在已经初始化完成。 但是还没有一个设备被初始化过, * 但是 cpu 的子系统已经启动并运行, * 且内存和处理器管理系统已经在工作了。 * * 现在我们终于可以开始做一些实际的工作了.. */static void __init do_basic_setup(v......

阅读(2231) | 评论(0) | 转发(0)

发布时间:2012-12-31 17:10:30

  在构架相关的汇编代码运行完之后,程序跳入了构架无关的内核c语言代码:init/main.c中的start_kernel函数,在这个函数中linux内核开始真正进入初始化阶段,   下面我就顺这代码逐个函数的解释,但是这里并不会过于深入每个函数,因为这样就会只见树木,不见森林。分析代码首先要从构架上宏观地理解,然后再去考虑细节问题(这和小时候学语文要概括中心思想和段落大意是一个道理)。今后对于每个子系统的初始化,特别是内存子系统,有空都会分析一遍。asmlinkage void __init start_kernel(void){  &nbs......

阅读(2312) | 评论(0) | 转发(0)

发布时间:2012-12-31 17:10:22

在分析start_kernel函数的时候,其中有构架相关的初始化函数setup_arch。此函数根据构架而异,对于arm构架的详细分析如下:void __init setup_arch(char **cmdline_p){    struct machine_desc *mdesc; 点击(此处)折叠或打开此为设备描述结构体,对于任何板子都定义了这样的一个结构体,我以前的文章有介绍:《uncompressing linux... done, booting the kernel》 1、machine type 不匹配   ......

阅读(2255) | 评论(0) | 转发(0)

发布时间:2012-12-31 17:10:07

    前面粗略分析start_kernel函数,此函数中基本上是对内存管理和各子系统的数据结构初始化。在内核初始化函数start_kernel执行到最后,就是调用rest_init函数,这个函数的主要使命就是创建并启动内核线程init。这个函数虽然意思为剩下的初始化,但是这个“剩下”的可是内容颇多,下面详细分析如下:/* * 我们必须确定在一个非__init函数或 * 其他根线程(root thread)和初始化线程(init thread)间的竞态。 * (这种竞态可能导致start_kernel在根线程运作到cpu_idle前被free_......

阅读(1985) | 评论(0) | 转发(0)

发布时间:2012-12-31 12:01:41

    linux内核在启动的时候需要一些参数,以获得当前硬件的信息或者启动所需资源在内存中的位置等等。这些信息可以通过bootloader传递给内核,比较常见的就是cmdline。以前我在启动内核的时候习惯性的通过uboot传递一个cmdline给内核,没有具体的分析这个过程。最近在分析内核启动过程的时候,重新看了一下内核启动参数的传递过程,彻底解决一下在这方面的疑惑。   一、bootloader与内核的通讯协议   内核的启动参数其实不仅仅包含在了cmdline中,cmdline不过是bootloader传递给内核的信......

阅读(2384) | 评论(0) | 转发(0)

发布时间:2012-12-28 19:25:41

    在完成了zimage自解压之后,就跳转到了解压后的内核(也就是vmlinux的bin版本image),具体的入口可以在arch/arm/kernel/vmlinux.lds.s(最终的链接脚本是通过这个文件产生的)中获得: ...... sections { #ifdef config_xip_kernel . = xip_virt_addr(config_xip_phys_addr); #else . = page_offset text_offset; #endif .init : { /* init co......

阅读(2910) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

dafanzi2016-12-05 18:21

我找到代码了 不用了 谢谢

  |  

dafanzi2016-12-05 17:20

大佬,在你这篇讲解内存池的博文(http://blog.chinaunix.net/uid-28458801-id-4254501.html)中,list.h源文件没有提供啊。你能提供这个博文的完整代码我学习学习吗?能的话发给我邮箱可以吗?brottfan@163.com谢谢啦

  |  
留言热议
请登录后留言。
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图