自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

仗劍走天涯

本博客主要是用于工作及学习中的备份和记录,欢迎大家留言交流。

  • 博客(36)
  • 资源 (9)
  • 收藏
  • 关注

原创 Linux内核驱动字符设备-linux 2.6设备驱动模型

和misc杂项设备以及早期经典设备模型比较,有如下的特征:1. 安装后, 不会自动创建/dev/设备文件节点, 需要手动使用 mknod 命令创建。可以使用设备类的方法自动创建设备节点。2. 调用一个 cdev_add 注册后, 指定数量的次号被占用完了。 数量可以自己指定,一个主设备可以使用cdev_add 函数注册多次。3. 设备号使用前需要先申请: register_chrdev_...

2019-06-29 16:53:16 341

原创 Linux内核驱动早期经典字符设备模型介绍

早期经典字符设备模型和杂项设备字符模型的最大区别是没有一个核心的结构。并且安装设备驱动后不会像杂项设备那样自动的在dev目录下为app创建设备节点。需要手动的使用mknod创建设备号。设备号:主设备号:0-255(10是给杂项设备使用的)次设备号:0-255 ,当传递255的时候表示的是自动分配次设备号。调用一个 register_chrdev 注册后, 256 个次设备号就都被占...

2019-06-29 11:10:05 331

原创 linux内核驱动模型-miscdevice杂项设备驱动模型以及实例

杂项设备模型基本介绍设备号:主设备号:固定是 10次设备号: 0~255, 当传递 255 时候表示自动分配次设备号安装后,可以自动创建/dev/设备文件节点。注册函数: int misc_register(struct miscdevice * misc)头文件: #include <linux/miscdevice.h>功能: 注册一个杂项设备参数: mis...

2019-06-28 22:30:44 712

原创 linux内核模块的参数传递

模块安装时候可以给模块中的变量传递数值,安装后,模块中变量的值就是安装时所传入的值 ,没有传递的变量,则使用代码中默认值。带参数的模块安装后会生成目录:/sys/module/模块名/parameters/示例:如果安装 了名字为 hello_model_param 的模块,则会生成/sys/module/hello_model_param/parameters/这个文件夹下会生成...

2019-06-26 22:33:02 4150

原创 Linux中内核模块的单独编译以及makefile的模板介绍

Linux内核模块在编译的时候可以通过命令编译:make -C 内核源码绝对路径 M=模块源码文件所在的绝对路径 modules 此命令的解释:1)进入到内核源码目录2)读取内核源码目录的Makefile3)执行内核源码Makefile中的 modules 目标4)根据 modules 目标的命令编译M所指向的文件路径 Makefile指定 的 C文件如:ARM板的内核...

2019-06-25 22:05:22 3779 1

原创 busybox init进程和/etc/inittab关系

嵌入式系统下的 linux 启动过程一般是:1. 在 bootloader 中制定各种要求传给 linux 内核的参数,制作 ramdisk 或 ramfs 文件系统,并在开机后首先 mount 上,该文件系统主要负责包含启动运行的配置文件,嵌入式系统主要是/etc/inittab 和/etc/rcS 文件;2. 在 init 进程启动后,进程首先执行/etc/inittab 文件,该文件语法...

2019-06-23 22:26:35 879

转载 arm汇编基础

arm汇编中的标号标号只能由 a~z, A~Z, 0~9, “.”, _等字符组成。当标号为 0~9 的数字时为局部标号。局部标号可以重复出现,使用方法如下:标号 f: 在引用的地方向前的标号标号 b: 在引用的地方向后的标号局部标号代表它所在的地址,因此也可以当作变量或者函数来使用。arm汇编中的分段:(1) .section 伪操作用户可以通过 .section 伪操...

2019-06-23 16:45:08 3122

转载 uboot的配置文件介绍

u-boot 支持很多开发板, 而开发板外设不同, 所以给每个开发板都会有一个自己的配置头文件, 这个文件是 include\configs\板名.h,u-boot 中使用到所有宏定义都应该在定义在这个文件中, 这个文件有两类宏定义, 一种 CFG_开头, 一种是 CONFIG_开头的。CONFIG_开头的宏一般使用来定义芯片级的功能, CFG_开头的宏一般 是用来定义板级功能。头文件中定义的宏...

2019-06-23 13:00:26 4483

转载 uboot的启动第一阶段流程梳理

u-boot 代码分为两个阶段第一阶段是汇编,入口是 arch/arm/cpu/armv7/start.S,第二阶段是 C 语言, 入口是 board.c。第一阶段:1. 异常向量表定义2. 设置 SVC32 模式(ARM 七种工作模式)3. 调用 cpu_init_crit 进行 cpu 相关初始化1) 清 TLB(页面缓存)、关 MMU 及 Cache 等2) 转入低级初始...

2019-06-23 11:15:34 1243

转载 u-boot启动第二阶段的梳理

u-boot启动第二阶流程梳理:本 阶 段 主 要 有 两 个 核 心 函 数 , 分 别 是 board_init_f( ) 和 board_init_r() , 这 两 个 函 数 都 是 在arch\arm\Lib\Board.c 中。1.board_init_f()1) gd_t 数据结构空间分配2) 回调一组初始化函数3) 对 gd_t 数据结构进行初始化Glob...

2019-06-23 11:14:39 728

原创 2019深圳无人机展会的一些总结

今天是周六,就去深圳会展中心逛了逛。总结一下吧,参展的无人机行业无人机居多,相对来说消费类无人机就比较少了。废话少说先来几张现场图吧!!!!!!!!!!参观完整个展会后:留下的感觉就是,各个无人机的厂商都在积极地探索无人机的应用场景,尤其是在各个行业的应用,拓展行业应用已成为现阶段各个公司的主要任务。主要分为:巡检,消防,警用,农业,载人,编队,教育类。从技术上...

2019-06-22 17:05:49 1524

转载 arm linux板上修改linux的系统时间为当前的北京时间

参考:https://blog.csdn.net/qq_41248872/article/details/83575611由于项目需要,需要获得linux系统中的当前的北京时间。但是通过localtime接口获取的时间和当前的北京时间无法对应上,比如现在是2019年,但是获取的时间是2016的,并且在系统启动后在命令行终端使用date查看的时间也是对应不上。[root@arm-linu...

2019-06-21 15:31:42 2198

原创 c语言http的http_get和http_post的实现

http.c#include <stdio.h>#include <stdlib.h>#include <arpa/inet.h>#include <netdb.h>#include <string.h>#include <unistd.h>#include "http.h"#define BUFFER...

2019-06-20 17:23:09 6395 7

转载 sha1算法的介绍以及c语言的实现

sha1:安全哈希算法(secure hash algorithm)加密:将密码嵌入到一串序列值中,通过sha1加密后,生成一段固定长度的散列值(160位)。解密:解密方同样将密码嵌入到同样的序列值中,同过sha1算法后会生成同样的一串序列值。如果密码不对,算法生成的散列值值就和加密时的散列值肯定不一样。从而实现了加密功能。该算法的输入长度不限,产生的输出是一个160位的报文摘要。该...

2019-06-20 15:54:20 1999

转载 c语言中字符串处理的相关函数的具体实现--string.c

(strcpy strncpy strchr strrchr strlen strcmp strncmp strcat strncat memcmp memmove memcpy memset memchr)/* string.c - common string routines *//* * Copyright (c) 2014 Wind River Systems, Inc....

2019-06-18 19:53:09 302

转载 c语言中查找一个字符串中首次出现的字串函数strstr的实现方法

#include <string.h>/* * Find the first occurrence of find in s. */char *strstr(const char *s, const char *find){ char c, sc; size_t len; c = *find++; if (c != 0) { len = strlen(fi...

2019-06-18 19:45:05 1152

转载 c语言实现字符串数字转长整形strtol函数

#include <limits.h>#include <ctype.h>#include <errno.h>#include <stdlib.h>/* * Convert a string to a long integer. * * Ignores `locale' stuff. Assumes that the upper ...

2019-06-18 19:38:57 1163

原创 C语言代码编译的makefile模板

#compilerCC := gcc#generate target fileTARGET := main.o#source file pathSUBDIRS := ./SUBDIRS += demo/aa/SUBDIRS += bb/SUBDIRS += cc/#header file pathINCLUDES := -I ./INCLUDES += -I ./demo/aa...

2019-06-18 19:27:19 919

原创 u-boot常用命令介绍

1.help version以下是环境变量相关的命令:printenv setenv saveenv2.printenv查看全部的环境变量:TINY4412 # printenvbaudrate=115200bootcmd=movi read kernel 0 40008000;movi read rootfs 0 41000000 100000;bootm 4000800...

2019-06-17 22:25:20 1405

原创 ubuntu中谷歌拼音输入法的简化字和繁体字的切换

将光标定位在文本输入栏中,使用ctrl + shit + F组合键实现繁体字和简化字的切换。每次按下这个组合键后就会在桌面的上方弹出如下的提示:

2019-06-17 10:00:49 2927

原创 arm cotex-a9裸机led实践-以exynos4412为例

具體的源代碼存放與:https://download.csdn.net/download/u010299133/11244210文件列表说明:├── led.lds --链接脚本├── led.S --led主程序├── makefile --编程步骤控制Mafile└── sd_fuse --这个文件夹中的内容是用于制作BL2的工具源码 ├── M...

2019-06-16 22:29:30 539

原创 Linux开发平台搭建中的U-boot 命令相关说明

设置 u-boot 环境变量进入 u-boot 命令行模式,输入如下命令:TINY4412 # setenv ipaddr 192.168.1.101TINY4412 # setenv gatewayip 192.168.1TINY4412 # setenv netmask 255.255.255.0TINY4412 # setenv serverip 192.168.1.20 //pc...

2019-06-16 17:09:56 340

原创 以busybox制作Linux根文件系统,以及nfs设置和uboot设置--嵌入式开发平台的搭建

主要分为3个部分rootfs相关文件创建及配置虚拟机网络地址及 nfs 服务配置开发板网络和环境变量配置1.rootfs相关文件创建及配置在安装好相应的交叉工具链后,下载busybox源码并解压。进入busybox的源码目录执行#make menuconfig需要配置的总体选项如下:Symbol: BUILD_LIBBUSYBOX [=y]//编译为共享库CRO...

2019-06-16 16:59:41 1516

原创 linux中dd命令的使用

在虚拟机的 linux 环境下,执行 dd 命令,使内核烧写到 SD 卡中(dd –help 可查看 dd 命令的参数信息)dd 命令:非常危险注意使用(用错了数据很容易丢失,再也找不回来了)友善之臂内核烧录: dd iflag=dsync oflag=dsync if=./zImage of=/dev/sdb seek=1057dd 参数解释如下:dsync:use synchroniz...

2019-06-13 22:46:52 1418

原创 arm-Linux-gcc 交叉编译工具链的安装和系统环境变量修改方法总结

获取交叉编译工具链:1.从芯片供应商中的SDK中复制交叉编译工具链源码到一个Linux目录。2.解压文件到根目录/添加交叉编译工具链到系统的环境变量中:方法1:1. 打开文件~/.bashrc[root@localhost work]# vim ~/.bashrc2. 在其最后面添加如下语句:export PATH=/opt/FriendlyARM/toolschain/...

2019-06-12 22:41:18 3214

翻译 使用nopoll实现websocket的接口点用流程

nopoll是linux常用的开源的websocket的实现。可用于websocket的解决方案和已有的TCP的应用提供websocket的支持。http://www.aspl.es/nopoll/html/nopoll_core_library_manual.html#installing_nopoll1.安装nopoll的安装之前需要安装一个依赖OpenSSL,用于通信协议本身要求...

2019-06-12 10:44:28 6169 1

原创 基于arm内核芯片的Linux dhcp移植

ARM 开发板网络自动获取IP:1.移植DHCP工具。(1)下载源码:http://gd.tuwien.ac.at/infosys/servers/isc/dhcp/ ,选中dhcp-3.1-history,会进http://gd.tuwien.ac.at/infosys/servers/isc/dhcp/dhcp-3.1-history/这个页面,在这个页面中找到 dhcp-3.1.3...

2019-06-11 21:26:41 1171

原创 安装软件时Ubuntu桌面的左边和上边的菜单栏消失的解决办法

背景:突然想着要在Ubuntu上安装一个有道翻译。不仅并没有安装成功,反而造成了Ubuntu桌面的左边和上边的菜单栏消失,右键没有open the terminal的选项。解决方法:Ctrl Alt F6 进入命令模式输入用户名aispeech-xyw,密码:命令行输入:sudo apt-get install compizconfig-settings-manager运行compi...

2019-06-11 09:32:34 2471

原创 window下计算文件的md5值的方法

C:\Users\admin>D:D:\>cd clientfileD:\clientfile>sertutil -hashfile wakeup_common_zlkc010_20180508.bin MD5

2019-06-10 19:18:54 4151

转载 在window的cmd命令行中通过chcp修改代码页--正确显示utf-8字符

Mt8616的开发板通过adb工具可以在Windows系统的cmd命令行显示出debug信息,但是mt8516开发板的系统上是移植的裁剪的linux系统,也就是里面的文件是utf-8的编码形式,不能正常的显示文件的内容。可以再Windows系统的cmd命令行中使用chcp命令改编代码页,utf-8的代码页是65001,执行后代码页就变为utf-8了。以下来自网络:在中文Windows系...

2019-06-10 19:08:43 1109

原创 linux中内存泄漏检测工具valgrind的使用

在ubuntu中的安装:sudo apt-get install valgrind使用方法:例如编译后的可执行文件为main。valgrind --leak-check=full ./main如下测试使用malloc申请1k的内存空间,并且释放。#include <stdio.h>#include <stdlib.h>int main(in...

2019-06-10 17:45:30 553

原创 音频直流偏置现象和危害

正常情况下,音频的系统的输入和输出都是交流信号,不存在直流分量。有时系统的输出出现了直流分量。这时便可以认为发生了直流偏置。使用积分能够反映出一段时间的音频信号是否出现直流偏移,如果积分等于0,就不存在直流偏移,否则就存在直流偏移。如下图红色标注的位置,代表当前信号有直流分量。直流偏移的危害: 轻微的直流偏移会使耳机/喇叭的音圈不在磁隙的最佳位置,对音效...

2019-06-10 15:20:11 6441

原创 hi3559v100的amp双系统初始化

双系统初始化概述:根据双系统业务部署规划,Huawei LiteOS 系统主要运行媒体服务,开机后先于 linux启动,不依赖于 Linux 端。而 Linux 系统主要运行人机交互、网络、录像、拍照、存储等业务,其中运行的录像、拍照等业务依赖于 Huawei LiteOS 系统中的媒体服务。根据启动顺序要求,在调试双系统业务时,建议先将 Huawei LiteOS 系统调试稳定,再来调试Li...

2019-06-06 18:58:45 1673

原创 PC上位机C#实现gb2312和utf-8的相互转换

以下是菜单的启动界面:c#源代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threadi...

2019-06-02 11:07:21 506

原创 海思芯片编译出现问题:"mkimage" command not found - U-Boot images will not be built 解决方法

需要安装u-boot-toolssudo apt-get install u-boot-tools

2019-06-01 17:34:45 405

原创 海思芯片编译出现问题:/bin/sh: arm-hisiv600-linux-gcc: command not found的解决方法

使用hi3559v100的sdk编译,在ubuntu系统中按照海思的sdk文档配置好交叉编译工具链后。执行sudo make出现如下问题:/bin/sh: arm-hisiv600-linux-gcc: command not found经过查看arm-hisiv600-linux-gcc -v,一切正常。然后sudo -s切换到当前用户的root用户,发现PATH中没有arm-...

2019-06-01 16:53:27 7203 1

qt-pro.rar

本代码是基于树莓派3B+平台,使用qt5和opencv获取mipi-csi摄像头视频并显示,以及通过树莓派的wiringPi控制gpio的电平高低

2020-04-08

海思平台异构系统ISP在线调试代码Makefile注释

海思平台的ISP在线调试使用了单独的代码编译,可以生成a53端执行的liteos 系统bin文件。其中Makefile文件就是组织了整个的编译过程,包括一些编译所要依赖到的mpp库文件以及liteos_a53系统头文件,还有诸如config.mk配置文件。这对于很多希望能够构建自己的liteos端固件程序Makefile编写提供了参考,本人将这个Makefile逐行做了注释,希望能够对大家的Makefile学习和编译生成自己的liteos端的bin文件提供帮助

2019-10-19

c语言实现的便于移植的sha1算法.tar

使用的c语言实现的sha1 数字签名的功能,可以方便的移植到自己的工程中

2019-06-20

Linux下ARM汇编入门.pdf

此文档包含了Linux下ARM汇编的基础入门知识,可供学习参考

2019-06-18

01_leds.rar

资源主要是exynos4412裸机控制led灯的具体实现,详细的分析见:https://mp.csdn.net/postedit/92435112

2019-06-16

FCB_EV7520摄像头模组资料

FCB_EV7520摄像头模组输出的是LVDS的视频信号,如果需要mipi信号,还需要使用LVDS转MIPI的转接板。

2018-12-28

LT8918_datasheet

龙讯半导体的芯片LT8918实现将输入的TTL信号转成mipi信号

2018-12-28

THC63LVD104C芯片datasheet

THC63LVD104C,可以摄像头的lvds信号转TTL信号,本文档是它的datasheet

2018-12-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除