上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 1.SoC Linux底层驱动的组成和现状为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍、中断控制器、SMP启动、CPU hotplug以及底层的GPIO、clock、pinctrl和DMA硬件的封装等。定时器节拍、中断控制器、SMP启动和CPU hotplug这几部分相对来说没有像早期GPIO、clock、pinctrl和DMA的实现那么杂乱,基本上有个固定的套路。定时器节拍为Linux基于时间片的调度机制以及内核和用户空间的定时器提供支撑,中断控制器的驱动则使得Linux内核的工程师可以直接调用local_irq_disable()、disable_ 阅读全文
posted @ 2013-09-17 10:29 左手牛奶,右手面包 阅读(1484) 评论(0) 推荐(0) 编辑
摘要: 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:1.bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。-----> _IOC_DIR : 获取读写属性域值 (bit30 ~ bit31)2.bit29~bit16 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送的内存大小。-----> _IOC_SIZE : 读取数据大小域值 (bit16 ~ bit 阅读全文
posted @ 2013-09-16 10:49 左手牛奶,右手面包 阅读(727) 评论(0) 推荐(0) 编辑
摘要: [转] Linux 3.10 ARM Device Tree 的初始化 本文代码均来自标准 linux kernel 3.10,可以到这里下载https://www.kernel.org/ 以arch/arm/mach-msm/board-dt-8960.c 为例,在该文件中的msm_dt_init 函数的作用就是利用 dt(device tree)结构初始化 platform device。 static void __init msm_dt_init(void) { of_platform_populate(NULL, of_default_bus_match... 阅读全文
posted @ 2013-09-10 18:09 左手牛奶,右手面包 阅读(1231) 评论(0) 推荐(0) 编辑
摘要: 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟…..一. 什么是ABI和EABI1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口.ABI涵盖了各种细节,如:数据类型的大小、布局和对齐;调用约定(控制着函数的参数如何传送以及如何接 阅读全文
posted @ 2013-09-06 19:46 左手牛奶,右手面包 阅读(50323) 评论(4) 推荐(3) 编辑
摘要: 1、ar基本用法 ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。 下面是ar命令的格式: ar[-][abcfilNoPsSuvV][membername][count]archivefiles... 例 如我们可以用ar rvl ibtest.a hello.o hello1.o来生成一个库,库名字是test,链接时可以用-ltest链接。该库中存放了两个模块hello.o和hello1.o。选项前可以有 ‘-’字符,也可以 阅读全文
posted @ 2013-09-04 13:06 左手牛奶,右手面包 阅读(1691) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页