摘要: 前言 这篇博文是 "uboot makefile构建分析" 的续篇,继续分析uboot构建u boot.bin的过程 构建u boot.bin过程分析 makefile一开始,就是确定链接脚本。在构建uboot和kernel的过程,链接脚本是非常重要的。它决定了你程序里面每个段的位置(加载位置和运行 阅读全文
posted @ 2017-10-14 10:21 rongpmcu 阅读(1026) 评论(0) 推荐(0)
摘要: 前言 之前对uboot的构建进行了分析,现在再对linux kernel的构建进行分析。几年前的确也分析过,但是只是停留在笔记层面,没有转为文章,这次下定决定来完善它。 环境 同样,采用的还是zynq平台的linux,从Makefile可以看到版本: linux Makefile支持的选项(最常用到 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(1807) 评论(0) 推荐(0)
摘要: 前言 为了方便其他人搭建dm368 ipnc3.0环境,我写了个脚本,执行脚本就可以自动搭建好环境了,绝对的傻瓜操作了,不过有一个地方让我很郁闷,那就是在用sed替换掉某段内容的时候(143行 156行),替换的文本有很多行且里面某些行必须要tab开头(makefile要求,这里看不出,上传的问题) 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(488) 评论(0) 推荐(0)
摘要: 注意:树莓派系列的3篇文章里面的图片因为博客转移过程丢失了,非常抱歉 前言 我对树莓派其实并不了解,只是几年前听说过它的相关信息。最近,也就是16年3月份,又听说树莓派3B即将发售,而且是配备了4个A53的64bit cpu,于是我兴趣来了^_^ 。之所以想写这个系列,有下面几方面原因 网上很少有看 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(2630) 评论(1) 推荐(0)
摘要: 注意:树莓派系列的3篇文章里面的图片因为博客转移过程丢失了,非常抱歉 前言 远程访问有很多种方式可以实现。比如ssh、telnet、ftp、samba、远程桌面等等,各有优缺点。本文主要以ssh和远程桌面的方式进行介绍。 ssh访问方式 这种方式是非图形界面的远程访问,是在终端下的远程访问方式。该访 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(1250) 评论(0) 推荐(0)
摘要: 注意:树莓派系列的3篇文章里面的图片因为博客转移过程丢失了,非常抱歉 前言 树莓派系列里涉及到需要额外电脑来协助处理的部分(如烧写系统,远程访问等等),统一在运行着Ubuntu15系统的mac air上进行。很多人或许会不适应,不知道相应的操作在Windows下该怎么进行。之所以最终做这个决定,一方 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(3763) 评论(0) 推荐(0)
摘要: 前言 之前有专门写过一篇 "nvidia tk1使用记录 基本环境搭建" ,本以为自己有过tk1的经验后,在tx1上搭建和它一样的环境会轻车熟路,结果却是在nvidia tx1上花的时间居然比tk1还多.我自己也总结了下,一方面,因为tk1的时候,自己还没有知其所以然;另一方面,因为tx1硬件配置, 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(1661) 评论(0) 推荐(0)
摘要: 前言 项目最开始是在X86+Nvidia(ubuntu+opencv+cuda)平台上实现,达到了期望性能,最近考虑将其移植到嵌入式平台,特别是最近nvidia出了tegra X1,基于和我们使用的gtx960相同的架构的gpu且是64位 8核心cpu,于是开始了尝试移植过程。当前TX1才出来,购买 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(2316) 评论(0) 推荐(1)
摘要: 前言 几年前分析过uboot的构建及启动过程,做了笔记,但最终没有转为文章。这次又有机会开发嵌入式产品了(之前一年多都是在搞x86 linux),看了下uboot的构建过程,觉得有必要写下整个分析过程,为了自己也为了分享,因此就有了这篇文章。 目标 通过分析uboot的整个构建过程,了解我们要开发的 阅读全文
posted @ 2017-10-14 10:20 rongpmcu 阅读(1334) 评论(0) 推荐(0)
摘要: 前言 编写驱动的时候,经常会用到中断,这时候我们在驱动初始化时就得申请中断,那么问题来了,中断号是多少呢?以前的中断号在板级相关的头文件里面已经静态定义好了,bsp的代码在内核启动过程也会根据那个帮我们建立好hw irq到irq的映射,我们直接用它静态定义的irq就可以了。但是在硬件越来越复杂的今天 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(2193) 评论(0) 推荐(0)
摘要: 前言 devm是内核提供的基础机制,用于方便驱动开发者所分配资源的自动回收。参考内核文档devres.txt。总的来说,就是驱动开发者只需要调用这类接口分配期望的资源,不用关心释放问题。这些资源的释放会在device对象销毁时自动释放。 devres使用 不同的内核模块提供了对应的devm_xxx接 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(6806) 评论(0) 推荐(0)
摘要: 参考文件include/linux/init.h 仅仅在未定义宏MODULE的时候才是上面那样定义的,也就是说,如果编译成模块,那么以上定义全部会自动定义为 。`__define_initcall`的最终展开: 也就是说该宏定义了一个 类型的变量,变量名由输入参数fn(函数名)及输入参数id(通过i 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(311) 评论(0) 推荐(0)
摘要: 前言 函数的目的是从用户空间拷贝数据到内核空间,失败返回没有被拷贝的字节数,成功返回0。它内部的实现当然不仅仅拷贝数据,还需要考虑到传入的用户空间地址是否有效,比如地址是不是超出用户空间范围啊,地址是不是没有对应的物理页面啊,否则内核就会oops的。不同的架构,该函数的实现不一样。下面主要以arm和 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(15478) 评论(0) 推荐(4)
摘要: 前言 内核调试是做底层开发必须会的手段。有n多中调试方式,不过呢,我最终还是觉得直接printk打印是最省事的,不依赖安装其他工具,不受限与中断上下文、进程上下文、持锁、smp等(当然,在某些情景下不会省时)。下面就总结下printk的一些技巧,毕竟也没那么简单^_^ printk使用 printk 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(1875) 评论(0) 推荐(0)
摘要: 前言 项目中需要通过驱动与fpga通讯,获取fpga往内存里写的数据。因为数据量比较大,需要驱动分配600多M的内存给fpga来写数据,且因为是与fpga通讯,需要连续的内存,还得是uncached的,因此打算采用dma接口 来分配如此大的内存。然而,在分配的过程中遇到了一些问题,下面对这次的调试进 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(5296) 评论(0) 推荐(0)
摘要: 前言 本文纯粹的纸上谈兵,我并未在实际开发过程中遇到需要编写或调试这类驱动的时候,本文仅仅是根据源码分析后的记录!基于内核版本:2.6.35.6 。主要是想对spi接口的wifi驱动框架有一个整体的把控,因此会忽略一些硬件上操作的系统,同时里面涉及到的一些驱动基础,比如数据结构、设备模式也不进行详细 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(1771) 评论(0) 推荐(0)
摘要: 前言 主要是想对Linux 串口、usb转串口驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如字符设备驱动、平台驱动等也不进行详细说明原理。如果有任何错误地方,请指出,谢谢! 声明:图和个别段落(我做了小的修改)是直接从网上截取 整体概述 linux下的串口或者usb 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(1538) 评论(0) 推荐(0)
摘要: 前言 主要是想对Linux mmc子系统(包含mmc sd sdio)驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动、块设备驱动、设备模型等也不进行详细说明原理,涉及到sd/mmc/sdio协议部分也只会简单带过,因为linux内核mmc子系统里面已经实现了 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(3401) 评论(0) 推荐(0)
摘要: sensor的驱动 先用 创建info对应的 对象(代表着一个i2c client),并进行驱动匹配。匹配就会触发i2c sensor驱动的probe调用。现在进入到目录 ,我们还是看OV2640驱动吧,毕竟前面的板级文件里只有在定义了 宏才会编译进去。 直接看 。这是一个i2c sensor驱动该 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(3579) 评论(0) 推荐(2)
摘要: camera host的驱动 下面开始分析camera host吧,如果仅仅是想知道camera sensor驱动怎么写,而不想知道内部具体怎么个调用流程,怎么个架构设计,那可以跳过该部分,直接去看i2c camera sensor的驱动了。前面说了我们选择at91平台,那对应的camera hos 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(2199) 评论(0) 推荐(1)
摘要: 前言 camera驱动框架涉及到的知识点比较多,特别是camera本身的接口就有很多,有些是直接连接到soc的camif口上的,有些是通过usb接口导出的,如usb camera。我这里主要讨论前者,也就是与soc直连的。我认为凡是涉及到usb的,都不是一两句话可以说明白的!如有错误,欢迎指正,谢谢 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(13155) 评论(1) 推荐(2)
摘要: 前言 主要是想对Linux I2c驱动框架有一个整体的把控,因此会忽略协议上的某些细节,同时里面涉及到的一些驱动基础,比如平台驱动、设备模型、sysfs等也不进行详细说明原理,涉及到i2c协议部分也只会简单带过,因为linux内核里面已经实现了该协议,我们以后并不需要重新实现这些,只需要对协议有个简 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(1641) 评论(0) 推荐(1)
摘要: 前言 驱动子系统太多了,连时钟也搞了个子系统,这导致一般的时钟芯片的驱动也会涉及到至少2个子系统,一个是时钟芯片接口子系统(比如 接口的时钟芯片),一个是内核给所有时钟芯片提供的rtc子系统。当然也可以自己写一个字符设备直接操作芯片然后给上层用户空间提供接口,但这种方法实在是太糟糕了,内核既然提供了 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(1337) 评论(0) 推荐(1)
摘要: 前言 主要是想对Linux 下spi驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动、设备模型等也不进行详细说明原理。如果有任何错误地方,请指出,谢谢! spi介绍 SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(13942) 评论(0) 推荐(0)
摘要: 前言 随着内核的发展,linux驱动框架在不断的变化。很早很早以前,出现了gpio子系统,后来又出现了pinctrl子系统。在网上很难看到一篇讲解这类子系统的文章。就拿gpio操作来说吧,很多时候都是简单的调用gpio子系统提供的api,然后根据sdk说明文档写明的gpio号传参数,至于里面的工作过 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(12435) 评论(0) 推荐(3)
摘要: pinctrl子系统核心实现分析 pinctrl子系统的内容在drivers/pinctrl文件夹下,主要文件有(建议先看看pinctrl内核文档Documentation/pinctrl.txt): core.c devicetree.c pinconf.c pinmux.c pinctrl xx 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(2923) 评论(0) 推荐(1)
摘要: 情景分析 打算从两个角度来情景分析,先从bsp驱动工程师的角度,然后是驱动工程师的角度,下面以三星s3c6410 Pinctrl samsung.c为例看看pinctrl输入参数的初始化过程(最开始的zynq平台的pin配置貌似是通过bitstreams来的,内核层没看到有关配置pin的代码,不过最 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(4759) 评论(2) 推荐(1)
摘要: 前言 之前写过 , 最开始一直用着,后来觉得有必要改进下它,不管是从操作方式上还是脚本的工作方式上。之所以这么看重备份,是因为我经历过磁盘损坏的痛苦,花了1500元才勉强将数据拯救回来。我期望尽量每周备份,期望备份的目的地存储了当前系统的完整镜像,也就是说我能够从备份盘启动,且启动后系统的操作方式、 阅读全文
posted @ 2017-10-14 10:17 rongpmcu 阅读(642) 评论(0) 推荐(0)
摘要: 前言 每一到两周,我大概会新增十多个甚至更多的资料文件,都是些最近遇到的一些问题的总结或者相关技术文档,但是资料都是在公司电脑上,拷贝到自己电脑上后,又得一个个去找一个这个应该放到哪个分类,个人感觉很麻烦。 傻瓜式处理文件脚本 为了解决困扰俺的这个问题,我想到了一个比较笨的解决办法,用脚本解决,但是 阅读全文
posted @ 2017-10-14 10:17 rongpmcu 阅读(1138) 评论(0) 推荐(0)
摘要: 前言 我的mac air购于14年,128GB款。最开始我只是在OS X系统里留出了70GB给ubuntu,然后通过u盘装了ubuntu 14.04,后来又陆续将系统升级到15.04、16.04。各方面运作都很正常,应该说是很完美了,不应该再折腾了,但唯一的缺点,这也是导致我有删掉OS X想法的原因 阅读全文
posted @ 2017-10-14 10:17 rongpmcu 阅读(1346) 评论(0) 推荐(0)
摘要: 前言 下面以备份mac air上的arch系统为例,该系统的制作可以参考 "mac air上archlinux的安装及优化" 。因为有了这个假设作为前提,要备份的系统包括ESP和ROOT分区,其实还有一个分区SWAP,但是大多数情况下备份它有点多余,除非源系统刚好处于休眠模式(休眠模式下,磁盘应该是 阅读全文
posted @ 2017-10-14 10:17 rongpmcu 阅读(655) 评论(0) 推荐(0)
摘要: 前言 这篇文章是对 "linux驱动基础系列 linux spi驱动框架分析" 的补充,主要是添加了最新的linux内核里设备树相关内容。 spi设备树相关信息 如之前的文章里所述,控制器的device和spi device都是通过 和`spi_register_board_info`注册到内核的驱 阅读全文
posted @ 2017-10-14 10:17 rongpmcu 阅读(10968) 评论(0) 推荐(1)
摘要: 前言 最近一朋友让我帮忙搭建一台服务器,用做公司的服务器,但是该服务器需要满足一些安全要求,于是乎就有了下面的解决过程^_^ 需求 1. 期望普通用户和管理员都能ssh登陆服务器,但禁止scp或者其他方式下载文件,允许管理员上传文件; 1. 本地操作时,普通用户usb口无效,但管理员有效 1. 期望 阅读全文
posted @ 2017-10-14 10:16 rongpmcu 阅读(1337) 评论(0) 推荐(0)
摘要: 前言 突然想玩玩python了 这篇博文记录了我打算发布包到pypi的踩坑经历.python更新太快了,甚至连这种发布上传机制都在不断的更新,这导致网上的一些关于python发布上传到pypi的教程都过时了,按着博文操作会失败,所以请记住,我这篇博文的介绍也许在你看到时也过时了 pypi相关概念介绍 阅读全文
posted @ 2017-10-14 10:16 rongpmcu 阅读(5754) 评论(1) 推荐(3)
摘要: 前言 项目中需要将imx185出来的raw数据转成dng格式,一开始认为很简单的事情,后面才发现还是挺复杂的!!!首先考虑的是不写任何代码,直接用adobe提供的转换工具来转,结果发现,不仅是adobe的工具,网上能够找到的工具(所谓的raw转dng)都是针对各大厂商的raw,而不能支持最原始的ba 阅读全文
posted @ 2017-10-14 10:16 rongpmcu 阅读(3495) 评论(0) 推荐(0)
摘要: 前言 最近的一个项目由一台中央管理电脑和90台设备构成,设备采用arm+fpag+linux搭建,通过网络与中央管理器通讯。开发的过程中发现一个问题,因为中央管理电脑需要操作90台设备,调试起来很麻烦,总不能怀疑哪台有问题就将串口接到那台设备或者通过ssh到那台设备,一台还好,如果多台的话,那就麻烦 阅读全文
posted @ 2017-10-14 10:16 rongpmcu 阅读(1196) 评论(0) 推荐(0)
摘要: 前言 项目需要将yv12转rgb24,由于基于x86平台,开始就没多想,直接用ipp加速实现了,后来在评估项目瓶颈的时候发现,1080p的视频每一帧转换居然要花8ms,刚好项目里有用到nvidia gtx960,因此就产生了直接用cuda实现一个yv12转rgb24的想法。 具体实施 我一向不喜欢造 阅读全文
posted @ 2017-10-14 10:16 rongpmcu 阅读(2018) 评论(0) 推荐(1)
摘要: 环境 软件:fedora14,装在virtualbox虚拟机上 硬件:x86 具体步骤 检查是否安装了ntp 运行如下命令: 如果有如下输出,表示有安装ntp 服务器 如果有如下输出,表示有安装ntp客户端 如果没有安装,执行 yum y install ntp 修改ntp的配置文件 用文件ntp. 阅读全文
posted @ 2017-10-14 10:16 rongpmcu 阅读(6307) 评论(0) 推荐(0)
摘要: 说明 可能存在bug,所以慎用!!! 且只在mbr分区格式下测试过。 parted.sh 可以用在系统起来的时候,比如rc.local脚本里面。 parted.c 需要parted.sh脚本配合使用,可以实现硬盘热插拔时的处 理,核心思想是linux下的文件系统变化通知机制。 parted 即par 阅读全文
posted @ 2017-10-14 10:16 rongpmcu 阅读(1037) 评论(0) 推荐(0)
摘要: system函数是在应用编程里面想调用外部命令时最方便的方式了,除非想要获取命令行执行的输出信息, 那system就不行了,需要用popen。但是system内部具体怎么实现及怎么处理它的返回值经常被忽略,我认为还是得特别注意。 关于system的实现用manpage里面的话: 如果你看过代码后,你 阅读全文
posted @ 2017-10-14 10:15 rongpmcu 阅读(512) 评论(0) 推荐(0)
摘要: 前言 下面主要讲解linux下Doxygen命令行实现html文档生成的操作,当然也有界面版本操作方式,linux下安装doxygen gui即可通过doxywizard开启界面操作,windows下也可以通过doxywizard.exe界面进行配置操作,具体的界面操作请参考其他网上文章,不过有一句 阅读全文
posted @ 2017-10-14 10:15 rongpmcu 阅读(10289) 评论(0) 推荐(0)
摘要: 前言 制作好的efi格式的ubuntu15.10系统放到服务器主板上启动不了,于是将其改为bios格式,发现问题解决了,成功登入系统。下面是操作过程的一个记录。 测试环境 目标环境 系统: Ubuntu15.10 硬件: x86平台,服务器主板 宿主环境 系统: Ubuntu15.10 硬件: x8 阅读全文
posted @ 2017-10-14 10:15 rongpmcu 阅读(1118) 评论(0) 推荐(0)
摘要: 转载一篇帮助我了解h264 rtp的文档,地址http://www.cppblog.com/czanyou/archive/2009/12/25/67940.html 当packetization mode的值为0时或不存在时,必须使用单一NALU单元模式. 当packetization mode的 阅读全文
posted @ 2017-10-14 10:14 rongpmcu 阅读(1454) 评论(0) 推荐(0)
摘要: 要做rtp/rtsp over http, 我对http也有点了解, 以前也做过rtp/rtsp over tcp/udp传输264视频流, 但刚开始还是没有一点思路,想着把http和rtp等联系到一起, 网上这方面的资料太少, 最后实在找不到想要的资料, 于是用开源的live555工程模拟了一个数 阅读全文
posted @ 2017-10-14 10:14 rongpmcu 阅读(3066) 评论(0) 推荐(0)
摘要: 前言 Baidu/google了n多次, 效果不佳。 网上说的都是比较老的virtualbox版本,有的是默认就bridge方式(2.2.0前), 有的不是bridge方式的,是通过工具uml utilities 和bridge utils创建虚拟网卡(比如说命名为tap), 创建桥接面, 然后一个 阅读全文
posted @ 2017-10-14 10:14 rongpmcu 阅读(229) 评论(0) 推荐(0)
摘要: 记录的比较粗糙,但是绝对可行的 一些小的瑕疵以后再解决吧 (android版本的过几天再贴,移植到android已经通过) msys+mingw包下载: http://sourceforge.net/projects/tdm gcc/?source=dlp http://sourceforge.ne 阅读全文
posted @ 2017-10-14 10:14 rongpmcu 阅读(2512) 评论(0) 推荐(0)
摘要: 前言 关于 搭建、编译VLC,不同的平台有不同的方法,可以参考 "wiki" 。 其中在windows下编译VLC有两种方式,MSYS+MinGW和CygWin。通过测试,最后决定采用MSYS+MinGW搭建VLC编译环境(多次测试, 通过且不需要额外的修改)。 详细步骤请参考 "wiki" 注:文 阅读全文
posted @ 2017-10-14 10:14 rongpmcu 阅读(2550) 评论(0) 推荐(0)
摘要: 前言 负责开发了公司的onvif,一个人从0开始写的,花了两个月 !!!下面是我的总结。 onvif介绍 ONVIF[Open Network Video Interface Forum](开放型网络视频接口论坛)是Axis Communications、Bosch Security Systems 阅读全文
posted @ 2017-10-14 10:13 rongpmcu 阅读(1716) 评论(2) 推荐(0)
摘要: 前言 去年公司设备(haisi3516)上需要提供iscsi的功能,于是花了几天时间探究了下。linux内核(2.6.xx)支持iscsi,只是我发现当时我们设备的内核编译时没有选上,于是重新编译了内核,以模块的形式加入即可。主要的驱动如下(加载的顺序很重要有依赖关系的): iscsi整理 下面是我 阅读全文
posted @ 2017-10-14 10:13 rongpmcu 阅读(489) 评论(0) 推荐(0)
摘要: 前言 网上好像没一篇讲的很完善的,可能和公司保密有关吧。先就最让人困惑(至少我是这样)且网上也很少找到答案的一个点讲一下id各是什么意思? (如果我哪里理解错了,希望大神指出,毕竟我也是看了好多资料及官方文档总结的) 我们可以逆向推理: 接收端(一个chunk stream链接)收到的都是chunk 阅读全文
posted @ 2017-10-14 10:13 rongpmcu 阅读(4369) 评论(0) 推荐(1)