imx6设备树pinctrl解析

请参考:https://blog.csdn.net/michaelcao1980/article/details/50730421

2018-12-10 15:59:23

阅读数:14

评论数:0

i.mx6ul linux驱动开发—基于Device tree机制的驱动编写

前言 Device Tree是一种用来描述硬件的数据结构,类似板级描述语言,起源于OpenFirmware(OF)。在目前广泛使用的Linux kernel 2.6.x版本中,对于不同平台、不同硬件,往往存在着大量的不同的、移植性差的板级描述代码,以达到对这些不同平台和不同硬件特殊适配的需求。但...

2018-10-11 10:15:17

阅读数:43

评论数:0

Yocto构建文件系统

Yocto构建文件系统 一、准备工作 准备操作系统  建议使用Ubuntu14的虚拟机或PC 由于后面的编译过程将占用大量资源,虚拟机建议16g内存(至少8g)、4线程 ### 安装软件 ~~~java $ sudo apt-get install build-essential g...

2018-10-10 13:57:19

阅读数:126

评论数:0

C语言运算符优先级列表(超详细)

每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家。 初级运算符( )、[ ]、->、.  高于  单目运算符  高于  算数运算符(先乘除后加减)  高于  关系运算符  高于  逻辑运算符(不包括!)  高于...

2018-09-09 11:16:34

阅读数:65

评论数:0

(*(void (*) ()) 0) ();

  在第二章语法陷进看到一个有趣的例子:(*(void (*) ()) 0) (); 第一眼看到完全懵了,后来经过讲解发现很好理解!(果然是封神的书!) (*(void (*) ()) 0) ();其实可以拆分成三个部分: 1.void(*) (),其实这样看起来还不是很明显,在*之后加上...

2018-09-09 11:11:11

阅读数:45

评论数:0

自增运算符 和 a+++++b 、 a++ + ++的理解

a++: 先将a的值代入表达式,在表达式运算完毕后,再将a进行++处理 ++a: 先将a进行++处理,再将a的值代入表达式 (注意咬字) a+++++b在编译时会报错,(a++)+(++b)和a++ + ++b不会报错 “a+++++b”这一段根本就无法解析,编译系统从左至右扫描整条语句,...

2018-09-09 08:49:20

阅读数:89

评论数:0

linux系统编程之进程(-):守护进程详解及创建,daemon()使用

一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进...

2018-08-30 16:30:07

阅读数:26

评论数:0

3分钟了解伺服驱动器的工作原理

伺服驱动器简单地说:是用来控制伺服电机的一种控制器,其作用类似于变频器作用于普通交流马达,属于伺服系统的一部分,主要应用于高精度的定位系统。一般是通过位置、速度和力矩三种方式对伺服马达进行控制,实现高精度的传动系统定位,目前是传动技术的高端产品。下面本文就为大家介绍一下伺服驱动器的工作原理。  伺...

2018-07-04 17:58:20

阅读数:1102

评论数:0

简要描述linux系统从开机到登陆界面的启动过程

简述:1.开机BIOS自检2.MBR引导3.grub引导菜单4.加载内核kernel5.启动init进程6.读取inittab文件,执行rc.sysinit,rc等脚本7.启动mingetty,进入系统登陆界面来个简图:超详细描述linux系统从开机到登陆界面的启动过程对于linux系统的初学者来...

2018-07-04 15:40:12

阅读数:757

评论数:0

DBUS及常用接口介绍

1. 概述1.1  DBUS概述    DBUS是一种高级的进程间通信机制。DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息给另外一个进程时,先发消息到后台进程,再通过后台进程将信息转发到目的进程。DBUS后台进程充当着一个路由器的角色。...

2018-07-04 14:07:05

阅读数:66

评论数:0

Linux开机启动过程分析

开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中...

2018-07-04 14:03:43

阅读数:64

评论数:0

Linux守护进程HALD

hal(hardware abstract lever)硬件抽象。 但是Linux的hal运行于用户空间作为一个daemon进程。监听一个socket接口。等待udev发来的通知。 udev为设备加载驱动,设备可用后,往往有udev的规则,让udev通知hald表示设备变动了。 hal作为一个硬件...

2018-06-29 18:06:10

阅读数:147

评论数:0

用Qemu运行/调试arm linux

用Qemu运行/调试arm linux用Qemu运行/调试arm linux,这事情干过好几次了,久了就忘记了,每次都要重新去查资料,浪费不少时间。这次把整个过程弄成个脚本,放到github上,需要是拿下来运行一下即可,方便自己也方便有需要的朋友。这里解释一下脚本的内容(运行系统Ubuntu 16...

2018-06-29 17:46:40

阅读数:48

评论数:0

C中volatile关键字

volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在...

2018-06-15 17:53:50

阅读数:64

评论数:0

C语言堆栈入门——堆和栈的区别

数据结构的栈和堆首先在数据结构上要知道堆栈,尽管我们这么称呼它,但实际上堆栈是两种数据结构:堆和栈。堆和栈都是一种数据项按序排列的数据结构。栈就像装数据的桶或箱子我们先从大家比较熟悉的栈说起吧,它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同我们要取出放在箱子里面底...

2018-06-15 17:34:49

阅读数:36

评论数:0

linux下利用coredump技术追查进程崩溃原因

最近项目中出现了一个问题,服务器端程序会突然崩溃退出,我们采取了coredump技术以找到崩溃原因,即确定进程退出时正在执行的函数是哪个,其状态如何。       如果系统开启了coredump,准确的说如果当前的shell环境开启了coredump,当前shell环境下的程序崩溃退出时,会把当时...

2018-06-15 17:19:49

阅读数:28

评论数:0

linux使用core文件调试程序崩溃

1、简介当系统中的一些程序在遇到一些错误以及crash时,系统会自动产生core文件记录crash时刻系统信息,包括内存和寄存器信息,用以程序员日后debug时可以使用。这些错误包括段错误、非法指令、总线错误或用户自己生成的退出信息等等。2、开启/关闭core文件ulimit -c 可以查看是否打...

2018-06-15 15:33:46

阅读数:32

评论数:0

Linux 获取并分析程序崩溃时的调用堆栈

下面是一个小例子,说明了程序出现段错误时,如何打印程序的堆栈信息。[cpp] view plain copy#include<stdio.h>  #include<string.h>  #include&...

2018-06-15 15:20:21

阅读数:105

评论数:0

自旋锁(spinlock) 解释得经典,透彻

自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。  由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效...

2018-06-12 16:04:45

阅读数:62

评论数:0

自旋锁与互斥锁的对比、手工实现自旋锁

本文之前,我只是对自旋锁有所了解,知道它是做什么的,但是没有去测试实现过,甚至以为自旋锁只有kernel用这个,今天才发现POSIX有提供自旋锁的接口。下面我会分析一下自旋锁,并代码实现自旋锁和互斥锁的性能对比,以及利用C++11实现自旋锁。一:自旋锁(spin lock)    自旋锁是一种用于...

2018-06-12 15:58:33

阅读数:83

评论数:0

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