作者文章归档:dongruibin

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

Linux驱动中-时钟-cpu-soc三大节点区分

1.简述

设备树模型中clk,cpu,soc三类节点的划分,是嵌入式SOC的典型组织方式。

2.模块内容

2.1 clk时钟

CLK时钟控制器,是管理整个SOC的时钟生成、分频、使能,主要内容:晶振、PLL、时钟ID,分频系数等。 CLK时钟控制器本质上是硬件CRU/CCU的设备树描述,对应内核的clk-driver。 核心功能 1)生成各种频率的时钟,如UART的115200波特率时钟,CPU的1GHZ主频时钟 2)控制时钟的开启、关闭(外设休眠时关闭时钟以省电) 3)动态调整时钟的频率(CPU的调频、display分辨率切换时调整像素时钟)

2.2 cpu核心

CPU核心,主要是配置CPU

Read more

Java上的builder机制

1.简述

Java的Builder机制,主要是将复杂对象的构建构建过程与其具体表示分离, 使得相同的构建流程可以创建不同的产品实例。Builder模式是一种创建型 设计模式,针对复杂对象构建,复杂对象主要表现:

1.1 多参数构造器

  • 问题1:参数顺序的混乱 比如:HttpParam(url, method, params, headers, timeout, cache)等等,顺序容易搞混。
  • 问题2:重载爆炸 为了支持可选参数,需要写多个重载构造器,比如,支持仅传递url, 仅传递url+method的... Builder方案,通过链式调用,明确参数含义,无需关心顺序,可以选参数进行设置
    H

Read more

Cmake使用记录-基本使用

1.概述

Cmake作用编译工具,作用较大,主要记录以下几点:

  • 基础的使用功能,理解常见的变量及其对应的含义。
  • 扩展功能,编写自己的宏(条件)。
  • 实际环境中使用,如何生成makefile。 ## 2.基础功能使用 基础功能,主要是变量,基础的逻辑等等。 ### 2.1 相关变量 ```c ${CMAKE_CURRENT_SOURCE_DIR} #当前源码路径 set(CMAKE_C_STANDARD 99) #设置c语言标准 CMAKE_INSTALL_PREFIX #安装目录
### 2.2 逻辑控制
这类逻辑较简单:
```c
if(WIN32)
    message(S

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