- 博客(46)
- 收藏
- 关注
原创 linux驱动获取系统当前时间方法
linux驱动中如果要获取系统当前的时间,可以按如下操作。头文件#include <linux/time.h>#include <linux/timex.h>#include <linux/rtc.h>代码static int get_time_str(char *output){ struct timex txc; struct rtc_time tm; /* 获取当前的UTC时间 */ do_gettimeo
2020-07-22 17:39:55 2180 1
原创 linux下命令行播放wav方法
设置音量(最大为 127): amixer sset Headphone 101,101左声道开启设置: amixer sset ‘Left Output Mixer PCM’ on右声道开启设置: amixer sset ‘Right Output Mixer PCM’ on播放音频文件: aplay lostyouth.wav
2020-07-18 15:24:04 5033
原创 linux下eMMC读写速度测试
文章目录1.读取速度测试:2.写入性能测试:测试环境:kernel: linux-4.14.98emmc版本:eMMC5.1emmc型号:Skhynix H26M64208EMRAemmc容量:32GB测试工具:dd注意:每次测试前需使用命令清除一次缓存:echo 3 > /proc/sys/vm/drop_caches使用如下命令可查看缓存情况free -h1.读取速度测试:命令:dd if=/dev/block/mmcblk0 of=/dev/null bs=块大
2020-07-02 19:45:06 11881
原创 Android EMMC中添加分区并开机自动挂载方法
文章目录一、修改分区表二、添加挂载目录三、修改SELinux,添加权限四、修改fstab,添加挂载环境:CPU: i.MX8qxpOS: Android 9.0RAM: 4GBeMMC: 32GB一、修改分区表 分区表文件为:device/fsl/common/partition/device-partitions-28GB-ab-dual-bootloader.bpt。 我们需要添加一个10GB的分区,假如命名为misc,在分区表中添加如下代码:{ "
2020-06-19 17:44:25 2826 1
原创 linux下如何制作ext4文件系统镜像
文章目录1.生成一个空的512MiB文件2.对生成的文件进行格式化3.挂载此空镜像4.向挂载好的文件系统中写入需要加入的文件5.卸载根文件系统(意味着镜像已经制作完成)5.将镜像写入sd卡的某个分区中6.此时挂载一下sd卡的某分区即可在发现刚才复制进去的文件1.生成一个空的512MiB文件dd if=/dev/zero of=rootfs.ext4 bs=1024 count=524288 (指定每一块大小为1024字节,一共有524288块,那么就是524288 * 1024 B = 512MiB)
2020-06-06 17:29:14 2646 1
原创 adb常用命令大全
文章目录一、什么是adb?二、adb常用命令一、什么是adb? adb的全称为Android Debug Bridge,就是Android调试桥的意思。通过adb我们可以在windows cmd终端中操作Android系统,查看系统状态,以及安装卸载软件,运行shell命令等。二、adb常用命令adb devices :查看连接到adb的设备adb install -r [apk文件]:安装应用程序adb uninstall [包名] :卸载应用程序adb push [本地文件路径] [
2020-05-30 11:50:07 477
原创 dev_info、dev_dbg、dev_err及动态调试
目前在kernel驱动代码中,都不再建议直接使用printk直接添加打印信息,而是使用dev_info,dev_dbg,dev_err之类的函数代替,虽然这些dev_xxx函数的本质还是使用printk打印的,但是相比起printk:支持打印模块信息、dev信息支持动态调试(dynamic debug)方式下面简述下这几个dev_xxx函数的基本使用规则,以及动态调试使用方式。dev_info(): 启动过程、或者模块加载过程等“通知类的”信息等,一般只会通知一次,例如probe函数;de.
2020-05-23 17:03:08 1862
原创 摄像头接口类型汇总
摄像头接口主要有:USB、DVP、MIPI(CSI) DVP是并口,需要PCLK、VSYNC、HSYNC、D[0:11]——可以是8/10/12bit数据,看I...
2020-05-23 15:11:13 7986
转载 csdn快速的转载别人博客里的文章方法
对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现 因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑)。 我们首先打开要转载的博客,然后鼠标右键就会出现下面的菜单: 我们点击【审查元素】,就会出
2020-05-23 15:07:14 270
原创 Qt5.6.0和tslib移植到ARM /etc/profile配置内容
export TSLIB_ROOT=/opt/tslibexport TSLIB_TSDEVICE=/dev/input/event1export TSLIB_TSEVENTTYPE=inputexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB...
2020-05-03 21:11:35 443
原创 Linux下TF卡和U盘的自动挂载卸载
文章目录前言:一、U盘的自动挂载和卸载1.修改mdev.conf文件2.创建udisk_insert文件3.创建udisk_remove文件二、TF卡的自动挂载和卸载1.修改mdev.conf文件2.创建sd_insert文件3.创建sd_remove文件注意:前言: mdev是busybox自带的一个简化版的udev。作用是在系统启动和热插拔或动态加载驱动程序时,自动产生所需的节点文件...
2020-05-02 11:24:22 2696
原创 Linux下cpufreq子系统的使用
linux内核中,自带了cpufreq子系统用来控制cpu的频率和频率控制策略。本文我们以imx6ul为例来讲解cpufreq子系统的使用。 首先,编译内核之前,make menuconfig,进入菜单Power management and ACPI options->CPU Frequency scaling将相关的项选上可以将cpufreq子系统编译入内核,默认的调频策...
2020-05-02 10:20:04 1323
原创 NFS服务器搭建与使用
文章目录一、NFS服务器安装二、NFS服务器配置三、 NFS的使用。一、NFS服务器安装在主机上,输入命令sudo apt-get install nfs-common,安装nfs服务。二、NFS服务器配置在主机上,目录/srv/中新建目录nfs/rootfs,作为NFS根目录。在主机上,输入命令sudo vi /etc/export编辑配置文件,加入如下一行/srv/nfs/...
2020-05-01 17:33:47 640
原创 TFTP服务器搭建与使用
文章目录@[toc]一、TFTP服务器搭建二、TFTP服务器配置三、TFTP服务的使用一、TFTP服务器搭建使用如下命令安装tftp-server:sudo apt-get install tftpd-hpa如果需要使用tftp客户端的话使用如下命令安装:sudo apt-get install tftp-hpa注意:tftpd-hpa是服务器,tftp-hpa是客户端。二、TF...
2020-05-01 15:35:53 1188 1
原创 Android源码编译方法
文章目录一、从服务器拉取代码二、编译代码三、编译输出一、从服务器拉取代码 Android的源码使用git管理,由于Android源码非常庞大以及包含各种不同类型源码包,因此google将此源码使用多个git版本库管理,因此需要使用Gerrit来操作多个git版本库。Android的源码使用如下repo命令从服务器拉取。repo init -u ssh://[username]@gerr...
2020-04-23 18:04:25 1217
原创 i.MX6处理器u-boot.imx文件解析
文章目录一、u-boot.imx与u-boot.bin的关系二、u-boot.imx文件解析三、ROM BOOT 流程中IVT、Boot data、DCD等相关数据操作四、u-boot.imx文件生成一、u-boot.imx与u-boot.bin的关系 u-boot.imx与u-boot.bin文件的主要关系是:u-boot.imx是在u-boot.bin的前面附加上一个image he...
2020-04-05 11:54:24 1648
原创 linux驱动中并发和竞争的处理
linux驱动中并发和竞争的处理文章目录linux驱动中并发和竞争的处理前言一、原子操作1.1 原子操作介绍1.2 原子整形操作API函数1.3 原子位操作API函数二、自旋锁2.1 自旋锁介绍2.2 自旋锁API函数三、信号量3.1 信号量介绍3.2 信号量API函数四、互斥体4.1 互斥体介绍4.2 互斥体API函数前言 Linux 是一个多任务操作系统,肯定会存在多个任务共同操...
2020-02-16 15:52:21 329
原创 linux下imx6ul处理器用户空间操作GPIO方法
linux下imx6ul处理器用户空间操作GPIO方法一、在用户空间配置并操作GPIO的必要性 有时,为了快速方便的测试IO口,我们可以将GPIO暴露给用户空间,直接在用户空间配置并操作GPIO,前提是没有驱动使用这个GPIO。二、IMX6UL处理器GPIO编号算法GPIO计算公式: id = (m - 1) * 32 + n例如: 有gpio3....
2020-02-15 15:01:31 1264
原创 linux驱动中如何自动生成设备文件节点?
如何在驱动中自动生成设备文件节点?一、自动生成设备文件的必要性 在我们初学驱动开发的时候,我们的设备文件需要我们在知道设备号之后,使用命令 “mknod c|b dev_name major minor” 来生成,这样的设备文件生成方法在实际项目中显然是不行的,当驱动程序过多的时候,我们很难有精力来管理这么多的设备文件。因此,在驱动中,使得设备文件能够自动生成非常有必要。下面,将介绍在...
2020-02-15 13:25:52 2322
原创 platform设备驱动框架详解
platform设备驱动详解 前面我们讲了设备驱动的分离,并且引出了总线(bus)、驱动(driver)和设备(device)模型,比如 I2C、SPI、USB 等总线。但是在 SOC 中有些外设是没有总线这个概念的,但是又要使用总线、驱动和设备模型该怎么办呢?为了解决此问题,Linux 提出了 platform 这个虚拟总线,相应的就有 platform_driver 和 platfo...
2020-02-11 22:02:19 1729
原创 misc设备驱动
misc设备驱动 misc 的意思是混合、杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动。MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 platform 总线驱动中,实现复杂的驱动,本章我们就来学习一下 MISC 驱动的编写。一、MISC 设备驱动简介 所有的 MISC 设备驱动的主设备号都为 10...
2020-02-11 21:00:39 1199
原创 最简单的字符设备驱动
最简单的字符设备一、字符设备简介 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI、LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。 在 Linux 中一切皆为文件,驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个...
2020-02-10 22:46:43 404
原创 Linux驱动模块Makefile编写
Linux驱动模块Makefile编写一、序言Linux驱动在从内核源码分离出来之后,在以模块单独编译时,需要单独的Makefile,而且PC上需要存在对应的Linux内核源码,以便Makefile指定路径供模块调用。二、Makefile源码export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-obj-m := xxx.o...
2020-01-19 21:22:50 1465
原创 环形队列原理及基于C++的实现
环形队列原理及基于C++的实现一、环形队列的作用在嵌入式软件中,环形队列的地位是非常重要的。由于经常需要用到串口、SPI等通讯接口,为了避免高速CPU等待低速通讯外设的情况出现,通常需要给通讯接口的数据发送和接收分配缓存,而这一缓存需要实现先入先出这一功能,而环形队列正好拥有这一功能。二、环形队列的原理环形队列任然是基于数组实现的,但是为了更加形象化的描述,我们用如下图表示:图中有...
2019-12-14 22:50:36 544
原创 本人使用的vim配置
本人使用的vim配置" vundle插件管理 BEGIN--------------------------------------------------" vundle安装命令" git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundlefiletype offset rtp+=~/.vim/bundle/v...
2019-12-14 09:36:29 152
原创 linux下中断相关API介绍
linux下中断相关API介绍文章目录linux下中断相关API介绍1. Linux的中断处理程序架构2.Linux中断编程2.1.申请和释放中断2.2 使能和屏蔽中断2.3 底半部机制1. Linux的中断处理程序架构中断分层顶半部简单地读取寄存器中中断状态,并处理中断标志后就进行“登记中断”的工作。“登记中断”:将底半部放在该设备的底半部执行队列中,以加快顶半部的执行速度...
2019-06-18 23:46:56 783
原创 platform总线驱动分析
platform总线驱动分析1.前言在Linux的设备模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里...
2019-06-07 12:14:39 191
原创 linux驱动中串口打印调试函数汇总说明
linux串口打印调试函数汇总说明1. printkprintk和应用层下的printf的区别是在参数最前面多了一个宏,宏如下:#define KERN_EMERG KERN_SOH "0" /* system is unusable */#define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */#def...
2019-05-27 23:25:13 1681
原创 I2C设备驱动分析-基于imx6下总线驱动
I2C设备驱动分析-基于imx6下总线驱动1. 主要数据结构说明1. struct i2c_adapter(include/linux/i2c.h)struct i2c_adapter描述了MPU的I2C外设。struct i2c_adapter { struct module *owner; unsigned int class; /* classes to allow pr...
2019-05-25 18:12:21 1377
原创 tar命令介绍
tar 解压缩命令详解-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参...
2019-05-18 16:21:20 720
原创 win10+ubuntu18.04双系统安装教程
本方法适用于EFI引导方式下先安装win10的win10 x64和Ubuntu18.04 x64双系统安装1. win10安装进BIOS,设置使用EFI方式启动,关闭secure boot确保拥有EFI启动引导分区(FAT32格式),没有的话安装的时候先删除分区,再新建分区,这样会自动创建EFI引导分区后续的安装方法就不说了,使用U盘,原版ISO系统、GHO系统都适合,跟正常装系统的方...
2019-05-18 16:15:20 519
原创 Qt相关学习笔记
1.Qt5(Qt Creator)中配置OpenCV3在 .pro 文件中加入// 添加include路径INCLUDEPATH += $$quote(D:\Program Files\opencv\build\include\opencv) \ $$quote(D:\Program Files\opencv\build\include\opencv2...
2019-05-18 16:08:12 710
原创 Markdown标记语言语法
Markdown项目介绍文本编辑器编写的标记语言Markdown的学习笔记。学习资料https://www.appinn.com/markdown/#linkhttps://www.jianshu.com/p/dde741c16b09数学公式相关文献学习准备安装Markdown环境运行软件MarkdownPad,编辑和预览分开Typora,编辑和预览统一,开发者初衷...
2019-05-18 16:06:43 372
原创 字符设备驱动笔记
字符设备驱动笔记一、简介在所有Linux设备驱动中,字符设备驱动最为基础,本笔记将讲解Linux字符设备驱动的结构,并解释其主要组成部分的编程方法。二、主要结构体及API函数cdev结构struct cdev { struct kobject kobj;/*内嵌的kobject对象*/ struct module *owner;/*所属模块*/ const stru...
2019-05-18 16:03:22 201
原创 git常用命令
Git常用命令1. git push推送远程2. git pull拉取远程,并合并到当前工作目录3. git fetch拉取远程,需要git merge才会合并到当前工作目录4. git commit提交修改5. git clone克隆版本库6. git status查看状态7. git reset8. git revert9. git stash10....
2019-05-18 16:01:41 194
原创 在Ubuntu16.04搭建GitLab服务器
1.安装依赖包,运行命令sudo apt-get install curl openssh-server ca-certificates postfix执行完成后,出现邮件配置,选择Internet那一项(不带Smarthost的)2.利用清华大学的镜像来进行主程序的安装。curl https://packages.gitlab.com/gpg.key 2> /dev/null | ...
2019-05-18 15:59:41 329
原创 I2C设备驱动分析-基于imx6下tsc2007电阻触摸屏驱动
I2C设备驱动分析–基于imx6下tsc2007电阻触摸屏驱动1. 主要数据结构说明1.of_device_id (include/linux/mod_devicetable.h)/* 用来和设备树中的节点匹配 */struct of_device_id { char name[32]; char type[32]; char compatible[128]; const voi...
2019-05-18 15:47:18 1909
原创 Linux下驱动模块化编译与装载、卸载
Linux下驱动模块化编译与装载、卸载我们在修改完驱动后,如果每次都需要重新编译内核烧录的话,太过麻烦了,我们可以通过NFS来挂载根文件系统、然后驱动程序单独编译,再将.ko文件copy到根文件系统,动态装载上去的方式,来减少这种麻烦。具体方法我们看下面。我们将驱动源程序文件单独放到一个文件夹,然后新建一个Makefile文件,编辑输入类似于如下的内容,这是mini2440 LCD背光驱动的...
2018-12-21 21:03:51 453
原创 基于mini2440的Linux-3.18.108下TouchScreen驱动及ADC驱动的移植
基于mini2440的Linux-3.18.108下TouchScreen驱动及ADC驱动的移植因触摸屏和ADC驱动共用了ADC,所以本文在介绍触摸屏驱动移植之前先介绍ADC驱动的移植。1. ADC驱动移植从Linux 2.6.32中,将mini2440_adc.c和s3c24xx-adc.h 两个文件复制到Linux 3.18.108目录drivers/char中,输入命令vi dri...
2018-12-21 21:01:35 351
原创 shell笔记
shell文件第一行指定脚本解释器#!/bin/sh #!/bin/bash条件测试test 条件表达式 或 [ 条件表达式 ]常用条件运算符逻辑操作符-a 逻辑与-o 逻辑或-! 逻辑非文件比较-e filename 是否存在-d filename 是否为目录-f filename 是否为文件-L filename 是否为符号链接-r fi...
2018-12-21 20:57:31 130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人