转自:https://blog.csdn.net/skyflying2012/article/details/41142801 版权声明:本文为博主kerneler辛苦原创,未经允许不得转载. https://blog.csdn.net/skyflying2012/article/details/41142801 利用工作之便,今天研究了kernel下cmdline参数解析过程,记录在此,与大家共享,转载请注明出处,谢谢. Kernel 版本号:3.4.55 Kernel启动时会解析cmdlin…
利用工作之便,今天研究了kernel下cmdline參数解析过程.记录在此.与大家共享.转载请注明出处.谢谢. Kernel 版本:3.4.55 Kernel启动时会解析cmdline,然后依据这些參数如console root来进行配置执行. Cmdline是由bootloader传给kernel.如uboot.将须要传给kernel的參数做成一个tags链表放在ram中,将首地址传给kernel,kernel解析tags来获取cmdline等信息. Uboot传參给kernel以及kerne…
转自:https://mp.weixin.qq.com/s/WPZSElF3OQPMGqdoldm07A 作者简介 宋牧春,linux内核爱好者,喜欢阅读各种开源代码(uboot.linux.ucos.rt-thread等),对于优秀的代码框架及其痴迷.现就职于一家手机研发公司,任职Android BSP开发工程师. 正文开始 前情提要: 宋牧春: Linux设备树文件结构与解析深度分析(1) 征稿和征稿奖励名单: Linuxer-"Linux开发者自己的媒体"第二月稿件录取和赠书名单…
转自:https://mp.weixin.qq.com/s/OX-aXd5MYlE_YoZ3p32qWA 作者简介 宋牧春,linux内核爱好者,喜欢阅读各种开源代码(uboot.linux.ucos.rt-thread等),对于优秀的代码框架及其痴迷.现就职于一家手机研发公司,任职Android BSP开发工程师. 正文开始 1. Device Tree简介 设备树就是描述单板资源以及设备的一种文本文件.至于出现的原因,大家可以上网查询更多关于设备树的文章.本篇文章主要是更深层次的探讨设备文件…
__setup这条宏在Linux Kernel中使用最多的地方就是定义处理Kernel的启动参数的函数及数据结构,宏定义如下: #define __setup(str, fn) \ __setup_param(str, fn, fn, ) #define __setup_param(str, unique_id, fn, early) \ ) = str; \ static struct obs_kernel_param __setup_##unique_id \ __used __sectio…
uart 是一种非常之常见的总线,比如DEBUG信息输出,小数据量数据传输,485,以及蓝牙的控制,GPS,很多都是通过uart 进行数据传输并进行控制. 在Linux kernel 内部,uart 通常是作为 一个 tty 设备对其进行控制,也是就是一个字符设备文件,可对其进行读写操作. kernel version 4.4.12 首先先看一下基本的 结构体 和 API 操作. // include/linux/serial_core.h // uart 驱动结构体 struct uart_d…
Copy from :https://blog.csdn.net/woyimibayi/article/details/77574736 正文开始 1. Device Tree简介 设备树就是描述单板资源以及设备的一种文本文件.至于出现的原因,大家可以上网查询更多关于设备树的文章.本篇文章主要是更深层次的探讨设备文件的构成以及kernel解析设备树的原理.所以,本篇内容并不是针对没有任何设备树知识的读者.本篇文章主要针对已经使用过设备树或者对设备已经有所了解并想深层次的探究设备树的文件结构和ke…
   在编译内核前,一般是根据已有的配置文件(一般在内核根目录下的arch/arm/configs/文件夹下,把该目录下的xxx_defconfig文件拷贝到内核根目录下,并重命名为.config)来进行编译; 或者需要先配置裁剪内核. 假设我们要基于一块ARM芯片的开发板配置裁剪内核时,在内核的根目录下运行:make ARCH=arm menuconfig命令后,会弹出如下配置界面: 当我们在内核的根目录下运行make ARM=arm menuconfig这条命令时,内核根目录下的Makefi…
格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2  : int1 == int 2test int1 -ne int2  : int1 != int2 test int1 -gt int2   : int1 > int2 test int1 -ge int2  : int1 >= int2 test int1 -lt int2    : int1 <…
一:前言 二:spring的配置文件 三:依赖的第三方库.使用技术.代码布局 四:Document实现 五:获取Element的实现 六:解析Element元素 七:Bean创造器 八:Ioc容器的创建 九:总结 一:前言: Spring作为Bean的管理容器,在我们的项目构建中发挥了举足轻重的作用,尤其是控制反转(IOC)和依赖(DI)注入的特性,将对象的创建完全交给它来实现,当我们把与其他框架进行整合时,比如与Mybatis整合,可以把sqlMapClientTemplate.数据源等Bea…