作者文章归档:dongruibin

Linux上设备树使用

1.简介

  DTS, Device Tree Source设备源码树,是一种描述硬件的数据结构体,dts的加入,先将
dts解析成树型结构,然后放在内存中,等待内核后面注册device 和 driver的时候再来铺开调用。
  DTS由一系列被命名为节点node和属性property组成,而节点本身可以包含子节点,所谓属性
就是成对出现的name和value。

2.DTS使用

  DTS在内核中,dts使用各种device node形式存在,而这些device node对于大部分的内核驱动\ 模型platform driver来说,

Read more

Linux内核编译过程中遇到的问题

1.简介

本文档主要是记录一下,linux内核编译过程中遇到的一些问题,因为最早内核是在linux上编译通过, 然后后期由于将代码下载到了windows上,造成了一些问题,主要是一些文件软链接丢失,还有一个是 不同平台上,大小写区分(windows上大小写是一样的,但是Linux上是不同的)。

2.问题记录

2.1 linux-event-codes.h 语法不对

   编译过程中遇到的,参考实际上linux该文件

linux-event-codes.h -> ../../uapi/linux/input-event-codes.h

可以发现 linux-event-codes.h 该

Read more

RK3128编译记录

RK3128 Android 编译

  这是RK3128 Android平台编译记录,使用环境如下: 1.Ubuntu16.04 LTS 2.gcc (使用gcc6.5,更高级版本python2.7.14编译存在问题)   对于python2.7.14有问题的可以再单独安装

1.开发环境以及依赖选项

在进行rom编译前,首先需要保证依赖选项就绪。

1)环境安装依赖项

sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \
libesd0-dev libwxgtk2.8-de

Read more

buildroot构建文件系统

1.简介

  开发嵌入式软件时,有很多时候,我们将uboot+kernel+应用程序,统一打包成烧写文件,这样方便实际生产,因此构建出烧写文件的文具就必不可少。   构建Linux上的文件系统有多种工具,例如:yocto,buildroot,各种工具有自己的有缺点,本wiki主要记录buildroot构建文件系统。
  之前提及的busybox,busybox一般只包含基础的命令,比如常见的ls cd等等,还有一些更复杂的工具,例如grep,find,telnet等。这个busybox称作linux工具 里的瑞士军刀。
 &

Read more

Dlib学习人脸比对

1.Dlib库

本文主要是记录一下使用dlib的一些笔记(实现在嵌入式平台上实现人脸比对【简易登陆】,中间使用的库主要是opencv dlib,涉及嵌入式,还有需要对dlib库进行交叉编译)。中间参考了很多网络资料,本文是记录下整个学习使用过程中的细节。如果有什么错误大家可以提出。
另外备注:交叉编译过程使用过dlib-19.1,结果发现dnn功能还没有完善,于是重新改为dlib-19.7.交叉编译opencv和dlib均使用cmake(不在详细描述)。

dlib库是干什么的

  1. 官方说明
    dlib官方链接:点击这里
    dlib库其实挺庞大的,library下面有:
Algorithms
A

Read more

zigbee快速使用指南

zigbee型号说明

此处省略写,zigbee协议栈使用:
cc2530-2.5.1a。CC2530是2.4Ghz,芯片其它说明,略。

官方说明

  1. zigbee芯片型号 ,使用TI公司的CC2530芯片。
  2. 协议栈 ,CC2530-2.5.1a,该版本支持了OTA。
  3. 协议栈构成,略。
  4. 本说明纯属自己学习过程笔记,中间如果存在错误,希望大家可以指正。本说明主要是从代码层面快速运用zigbee模块(CC2530)。

zigbee开发

zstack结构

1.协调 路由 终端 听起来就不复杂,
协调--组建网络,发起
路由--中间转发等等呢
终端--最终的设备(可能这么叫不专业)
2.组建网络

Read more

linux上container_of宏使用

1.简介

  在Linux上container_of宏使用较为常见,该宏的作用是通过知道结构体中一个成员的地址,从而
计算出,整个结构体的地址,在linux上很多结构体中都包含有struct list_head结构体,通过该list,就可以
得到整个结构体的地址,从而进行操作。

2.解释

  在知道container_of之前,首先需要先知道一个offsetof(TYPE, MEMBER)

#define offsetof(TYPE, MEMBER)  ((size_t)&((TYPE *)0)->MEMBER)

上述结构是计算出MEMB

Read more

Linux上交叉编译opencv

1. 简介

主要介绍linux上交叉编译opencv2.4.9,运行目标平台PX3SE(类似RK3128) linux上程序安装目录结构

bin----指应用程序文件
lib----指库文件
usr/bin 是系统自带的应用
usr/local/bin 是自己安装的应用和自己写的全局脚本(安装opencv里面的一些应用在里面
usr/lib 系统自带的lib
usr/local/lib 是自己安装的libopencv的安装lib包都在里面

//编译opencv使用工作目录(以px3se为例说明)

C:/home/dong/linux_sdk/buildroot/output/host/

Read more

ALSA音频框架简述

1. ALSA概述

ALSA(Advanced Linux Sound Architecture,高级linux声音体系)简写,是linux上主流 音频体系架构,提供了音频和MIDI的支持。是Linux系统下一套标准的音频驱动框架。

2. ALSA框架

ALSA框架分层在内核空间部分和应用空间部分。

2.1 Linux内核空间的alsa驱动

在Linux2.6后已经集成进入linux源码。 备注:在内核层使用alsa驱动时,请保证内核编译时,支持上 CONFIG_SYSVIPC=y 如果没有支持上该选项,使用时,会出现错误

ALSA lib pcm_dmix.c:1038:(snd_pcm_d

Read more

QT5+Opencv2.4.9配置笔记

简述

距离上一次写博客笔记已经有很长一段时间了,看来没有坚持下来啊,这次写博客主要是记录一下QT5上调用Opencv2.4.9时的过程。
之前一直使用VS进行Opencv的编写,感觉还可以,不过最近用到了QT上调用Opencv,之前在坑里躺了一下,无奈所以写了一下笔记。
备注:这次使用的QT5为MSVC编译器的(微软的VC编译器),如果你使用了MinGW(MingGW是指是Minimalist GNU on Windows的缩写),这就要注意了要使用MinGW重新编译一下opencv,否则下面的笔记是不可以进行使用的哦,下面的笔记使用的是自带MSVC的QT(VS已经把opencv默认编译好了)

Read more