摘要: 前言 项目最开始是在X86+Nvidia(ubuntu+opencv+cuda)平台上实现,达到了期望性能,最近考虑将其移植到嵌入式平台,特别是最近nvidia出了tegra X1,基于和我们使用的gtx960相同的架构的gpu且是64位 8核心cpu,于是开始了尝试移植过程。当前TX1才出来,购买 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(2153) 评论(0) 推荐(1) 编辑
摘要: 前言 几年前分析过uboot的构建及启动过程,做了笔记,但最终没有转为文章。这次又有机会开发嵌入式产品了(之前一年多都是在搞x86 linux),看了下uboot的构建过程,觉得有必要写下整个分析过程,为了自己也为了分享,因此就有了这篇文章。 目标 通过分析uboot的整个构建过程,了解我们要开发的 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(1283) 评论(0) 推荐(0) 编辑
摘要: 前言 主要是想对Linux mmc子系统(包含mmc sd sdio)驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动、块设备驱动、设备模型等也不进行详细说明原理,涉及到sd/mmc/sdio协议部分也只会简单带过,因为linux内核mmc子系统里面已经实现了 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(2577) 评论(0) 推荐(0) 编辑
摘要: 前言 主要是想对Linux 串口、usb转串口驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如字符设备驱动、平台驱动等也不进行详细说明原理。如果有任何错误地方,请指出,谢谢! 声明:图和个别段落(我做了小的修改)是直接从网上截取 整体概述 linux下的串口或者usb 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: 前言 本文纯粹的纸上谈兵,我并未在实际开发过程中遇到需要编写或调试这类驱动的时候,本文仅仅是根据源码分析后的记录!基于内核版本:2.6.35.6 。主要是想对spi接口的wifi驱动框架有一个整体的把控,因此会忽略一些硬件上操作的系统,同时里面涉及到的一些驱动基础,比如数据结构、设备模式也不进行详细 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(1566) 评论(0) 推荐(0) 编辑
摘要: 前言 项目中需要通过驱动与fpga通讯,获取fpga往内存里写的数据。因为数据量比较大,需要驱动分配600多M的内存给fpga来写数据,且因为是与fpga通讯,需要连续的内存,还得是uncached的,因此打算采用dma接口 来分配如此大的内存。然而,在分配的过程中遇到了一些问题,下面对这次的调试进 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(4344) 评论(0) 推荐(0) 编辑
摘要: 前言 内核调试是做底层开发必须会的手段。有n多中调试方式,不过呢,我最终还是觉得直接printk打印是最省事的,不依赖安装其他工具,不受限与中断上下文、进程上下文、持锁、smp等(当然,在某些情景下不会省时)。下面就总结下printk的一些技巧,毕竟也没那么简单^_^ printk使用 printk 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(1681) 评论(0) 推荐(0) 编辑
摘要: 前言 函数的目的是从用户空间拷贝数据到内核空间,失败返回没有被拷贝的字节数,成功返回0。它内部的实现当然不仅仅拷贝数据,还需要考虑到传入的用户空间地址是否有效,比如地址是不是超出用户空间范围啊,地址是不是没有对应的物理页面啊,否则内核就会oops的。不同的架构,该函数的实现不一样。下面主要以arm和 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(14161) 评论(0) 推荐(4) 编辑
摘要: 参考文件include/linux/init.h 仅仅在未定义宏MODULE的时候才是上面那样定义的,也就是说,如果编译成模块,那么以上定义全部会自动定义为 。`__define_initcall`的最终展开: 也就是说该宏定义了一个 类型的变量,变量名由输入参数fn(函数名)及输入参数id(通过i 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 前言 devm是内核提供的基础机制,用于方便驱动开发者所分配资源的自动回收。参考内核文档devres.txt。总的来说,就是驱动开发者只需要调用这类接口分配期望的资源,不用关心释放问题。这些资源的释放会在device对象销毁时自动释放。 devres使用 不同的内核模块提供了对应的devm_xxx接 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(6440) 评论(0) 推荐(0) 编辑