自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 Linux中的竞态与并发

一、并发并发就是多个进程同时、并行执行。在但处理器下,并发只是宏观上的并发,用户感觉是多个进程共同执行,其实只是多个进程轮流占用处理器运行,只有在多处理器的情况下才会实现真正的同时执行。 二、临界区临界区就是访问和操作共享数据的代码段。进程并发访问临界区的数据和操作共享资源是不安全的。如果两个进程同时访问临界区,那就会发生资源抢夺,这种情况就叫做竞争条件。避免并发和防止竞争条件被称为同步。 三、内...

2018-06-01 15:23:13 301

原创 Linux中断的实现(三)

        上一篇博客介绍了tasklet实现中断下半部,接下来介绍工作队列实现中断下半部。相对于软中断/tasklet,工作队列运行在进程上下文,允许睡眠。 一、工作队列的使用1、定义并初始化工作队列创建工作队列函数:struct workqueue_struct *create_workqueue(const char *name)函数传参是内核中工作队列的名称,返回值是workqueue...

2018-05-28 16:03:11 285

原创 Linux中断的实现(二)

        内核将整个的中断处理流程分为了上半部和下半部。上半部就是之前所说的中断处理函数,它能最快的响应中断,并且做一些必须在中断响应后马上要做的事,而一些需要在处理函数后继续执行的操作,内核建议把它放在下半部执行。三种方法可以实现下半部:软中断、tasklet和工作队列。 一、软中断软中断即软件实现的异步中断,它的优先级比硬件中断低,但比普通进程优先级高,它和硬中断一样不能休眠。软中断很少...

2018-05-28 11:33:44 419

原创 Linux中断的实现(一)

一、中断是什么中断是指CPU在执行程序的过程中,出现了某些突发事件急需处理,CPU暂停当前程序的执行,转去处理突发事件,处理完后又返回原程序被中断的地方继续执行。中断分为两种:(1)中断,又叫外部中断或异步中断,它的产生是由于外设向处理器发出中断请求。外部中断有两种,由配置寄存器设定:普通中断请求(IRQ)和快速中断请求(FIQ)。(2)异常,又叫内部中断或同步中断,它的产生是由于处理器执行指令出...

2018-05-25 17:33:33 3645

原创 Linux内核的I2C子系统(一)

一、I2C总线概览(1)三根通信线:SCL、SDA、GND(2)同步、串行、电平、低速、近距离(3)总线式结构,支持多个设备挂接在同一条总线上(4)主从式结构,通信双方必须一个为主(master)一个为从(slave),每个从设备在总线中有唯一的地址(slave address),主设备通过从地址找到自己要通信的从设备(本质是广播)(5)I2C主要的用途就是主SoC和外围设备之间的通信。常见的各种...

2018-05-18 15:37:12 349

原创 网络通信基础知识简介

一、网络通信的传输媒介(1)无线通信:WIFI、蓝牙、zigbee、4G/5G/GPRS等;(2)有线通信:双绞线、同轴电缆、光纤等。 二、路由器(1)路由器是局域网和外部网络的通信的出入口;(2)路由器将整个internet划分成一个个的局域网,却又互相联通。(3)路由器对内管理子网(局域网),可以在路由器中设置子网的网段,设置有线端口的 IP地址,设置dhcp功能等,因此局域网的IP地址是路由...

2018-05-15 13:19:27 15748 1

原创 基于Dragonboard 410c的智能窗帘设计(二)

在https://blog.csdn.net/weixin_40109283/article/details/80167342博客中已经介绍了硬件设计部分,下面给出硬件驱动部代码部分:#include #include #include #include #include #include #include #include #include #includ

2018-05-02 16:36:00 241

原创 基于Dragonboard 410c的智能窗帘设计(一)

        随着物联网技术的快速发展,人们对智能家居的需求也越来越强烈。本博客给大家介绍一下如何使用Dragonboard 410c开发板实现智能窗帘的设计。所用到的硬件模块如下:一、电机模块电机用于实现窗帘的打开和关闭功能,电机正转时关闭窗帘,反转时打开窗帘。窗帘的两边都安装有限位开关,用于判断窗帘是否完全关闭或完全打开,电机模块如图1所示: 图1二、电机驱动模块电机驱动模块用于给电机提供电...

2018-05-02 15:44:34 744

原创 shell基础知识简介

一、shell是操作系统提供的终端命令行,shell可以理解为软件系统提供给用户操作的命令行界面,是人机交互的一种方式。 二、shell是一类编程语言(1)编写shell脚本时使用的语言就是shell语言,又叫脚本语言;(2)shell脚本是一类语言而不是一种语言;(3)常用shell语言:sh、bash、csh、ksh、perl、python等;(4)Linux下常用的脚

2018-04-25 14:08:23 197

原创 嵌入式uboot常用命令

一、SD卡/iNand操作指令movi(1)开发板如果用SD卡/EMMC/iNand等作为Flash,则在uboot中操作flash的指令为movi(或mmc)(2)movi指令是一个命令集,有很多子命令,具体用法可以help movi查看。(3)movi的指令都是movi read和movi write一组的,movi read用来读取iNand到DDR上,movi write查看用

2018-04-25 14:03:04 499

原创 嵌入式Linux uboot知识简介

uboot的就是universal bootloader(通用的启动代码)。一、uboot的作用(1)uboot主要作用是用来启动操作系统内核;(2)uboot还要负责部署整个计算机系统;(3)uboot中还有操作flash等板子上硬盘的驱动;(4)uboot还得提供一个命令行界面供人操作。 二、uboot必须解决的问题(1)自身可开机直接启动(2)能够引导操作

2018-04-19 10:20:51 490

原创 嵌入式Linux系统启动过程

Bootloader是系统上电后最初加载运行的代码,它提供了处理器上电复位后最开始执行的初始化代码。一、计算机系统的主要部件(1)计算机系统就是由CPU来做核心进行运行的系统。典型的计算机系统有:PC机(台式机、笔记本)、嵌入式设备(手机、平板电脑、游戏机)、单片机(家用电器像电饭锅、空调)。(2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需

2018-04-19 10:18:44 399

原创 基于DragonBoard 410c的彩灯设计(二)

在博客http://blog.csdn.net/weixin_40109283/article/details/79399304中给出了基于DragonBoard 410c的彩灯设计的硬件介绍,驱动代码如下:#include #include #include #include #include #include #include #include #inc

2018-02-28 13:52:25 291

原创 基于DragonBoard 410c的彩灯设计(一)

春节期间,城市中张灯结彩,举办节目来庆祝节日。LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。本博客和大家分享一下如何用DragonBoard 410c开发板实现对LED彩灯的控制。    本设计的采用的可编程彩灯带实物如图1所示:图1基本参数:颜色: 全彩防水等级:IP20(不

2018-02-28 13:35:05 536

原创 基于DragonBoard 410c的自动浇花机(二)

在http://blog.csdn.net/weixin_40109283/article/details/79227038博客中已经介绍了基于DragonBoard 410c的自动浇花机的硬件设计,接下来介绍一下软件设计。代码如下所示:#include #include #include #include #include #include #include

2018-02-01 13:44:58 493

原创 基于DragonBoard 410c的自动浇花机(一)

随着科技的进步,人们的生活质量越来越高。在家里养盆花不仅可以陶冶情操、丰富生活,而且盆花可以吸收二氧化碳净化室内空气,因此,养盆花如今被许多的人所喜爱。盆花浇水量是否能做到适时适量,是养花成败的关键。本博客给大家介绍一下如何使用DragonBoard 410c开发板实现自动浇花的功能。       要实现这一功能,除了需要DragonBoard 410c开发板外,还需要如下几个模块:

2018-02-01 13:33:42 876

原创 Linux内核定时器编程

在Linux设备驱动编程中,我们可以利用Linux内核中提供的一组函数和数据结构来完成定时触发工作或着完成某周期性的事务。内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制。被调度的函数肯定是异步执行的,它类似于一种“软中断”,而且是处于非进程的上下文中,所以调度函数必须遵守以下规则:1. 不能访问用户空间,因为没有进程上下文,无法与特定的进程与用户关

2018-01-25 14:15:30 990

原创 基于DragonBoard 410c的温湿度检测(二)

在http://blog.csdn.net/weixin_40109283/article/details/79093966博客中,介绍了基于DragonBoard 410c的温湿度检测的硬件设计.现在我们来讲讲驱动部分的实现过程。微处理器和DHT11之间的通信过程:1)DHT11上电后(大于1秒),测试环境温湿度数据,并记录数据,同时DHT11的DATA数据线由上拉电阻拉高一直保持高电平

2018-01-24 10:44:56 806

原创 基于DragonBoard 410c的温湿度检测(一)

本博客给大家介绍如何使用DragonBoard 410c 开发板实现对环境温湿度的检测,要实现这一功能,还需要一个温湿度传感器,本次设计中,我选用的是DHT11温湿度传感器,如图1所示:图1DHT11温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。其精度适度+-%5RH, 温度+-2℃, 量程湿度20~90%RH, 温度0~50℃. 工作电压为3.3~5.5V.

2018-01-18 11:25:11 606

原创 vim的常用配置及使用方法

vim是vi发展出来的一个编辑器,ubuntu为了减小安装文件的尺寸,默认安装了vi的原始版本,我们需要下载安装它的升级版本:vim. vim的功能丰富,而且可以根据自己的需要对其进行配置,下面来谈谈vim的一些常用配置.安装vim的命令为:$ sudo apt-get install vim进入用户主工作目录,输入以下命令:$ vim .vimrc在文件中添加如下内容: 

2018-01-17 15:22:08 551

原创 基于DragonBoard 410c的环境光检测(二)

在博客中,已经介绍了该系统的硬件设计. 现在我们来谈谈软件部分的实现步骤和方法.首先我们得先在设备树中配置相关的硬件信息,在apq8016-sbc.dtsi文件中做如下修改:    i2c@78b6000 { /* BLSP1 QUP2 */         light_sensor@29 {            compatible = "thunder

2018-01-11 17:18:51 437

原创 基于DragonBoard 410c的环境光检测(一)

本博客给大家介绍一下如何使用DragonBoard 410c开发板来实现对环境光照强度的检测,要实现这个功能,我们需要有个检测光照强度的传感器,如图1所示:                                                                                                                    

2018-01-11 15:50:50 615

原创 基于DragonBoard 410c的input设备应用层编程

在http://blog.csdn.net/weixin_40109283/article/details/78915859博客中,我们已经了解到,当有按键按下时,通过adb命令可以看到有事件上报,如图1所示:图1当我们用cat命令去查看/dev/input/event2,然后按下按键,也能看到有事件上报,但看不出上报的信息,如图2所示:图2    

2018-01-04 09:49:34 437

原创 基于DragonBoard 410c之按键添加

今天给大家介绍一下如何运用Android已有的框架去添加按键.首先我们来看一下按键的现象!将DragonBoard 410c开发板连接到ubuntu, 输入以下命令:$ adb root$ adb shell# getevent在板子上分别按下电源键,音量+, 音量- 时,会看到有事件上报,如图1所示:图1现在来给大家详细介绍下如何在410c板子上添

2018-01-03 17:47:37 599

原创 基于DragonBoard 410c的红外障碍物检测

本博客给大家介绍一下如何用DragonBoard 410c开发板实现红外检测障碍物.选择的红外传感模块如图1所示:图1        该传感模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线反射回来被接收管接收,经过比较器电路处理之后,输出显示灯会亮起,同时信号输出接口输出一个低电平信号,可以通过电位器旋钮调节检测距

2017-12-27 19:28:45 657

原创 基于Dragonboard 410c的声控灯(二)

之前在http://blog.csdn.net/weixin_40109283/article/details/78861380博客中已经对基于Dragonboard 410c的声控灯的硬件设计方案进行了介绍,现在给大家介绍一下实现该功能的软件编程设计.        通过GPIO口来实现声控灯的基本原理:1) 导入所使用到的GPIO的节点,导入之后才能对GPIO口进行读写;2) 对G

2017-12-21 16:08:33 319

原创 基于Dragonboard 410c的声控灯(一)

最近刚拿到Dragonboard 410c开发板进行学习,了解了板子的大概框架之后,决定从简单的开始做起,用Dragonboard 410c板子模拟实现日常生活中看到的声控灯.下面向大家介绍一下我的思路及具体的设计方案.        模拟实现声控灯,除了Dragonboard 410c板子,还需要两个核心器件--声音传感器和LED灯,有了这些器件,就可以完成基本的硬件方案,如下图所示

2017-12-21 11:07:51 544

原创 基于Dragonboard 410c的apk录音问题

最近在看410c板子的硬件原理图,发现板子上有两个mic的接口,于是我就想,当打开apk进行录音时,到底是单个mic在工作呢?还是两个mic都在工作?根据以往调试mic的经验,我选择抓取log来分析这个问题.以下简单总结一下我的分析过程:首先将板子连接到电脑,然后执行一下命令:sudo adb rootsudo adb shell logcat | grep mic 然后打开a

2017-12-14 15:44:19 202

空空如也

空空如也

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

TA关注的人

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