
Linux学习笔记
dxmcu
QQ : 2795247843
展开
-
Linux操作系统下取得UUID的方法
Linux下面,有专门生成UUID的命令:uuidgen [-r] [-t]。即可以生成一个32位的字符串。这个是在命令行得到。在/usr/include/lib里面有个/uuid/uuid.h,其中定义了数据 uuid,无符号的字符指针。同时有专门生成UUID的函数:uuid_generate(uuid_t uu),生成的UUID放在参数UU里面。此时得到的结果是一个8位数的16进制数。...转载 2019-03-22 15:33:05 · 2315 阅读 · 0 评论 -
phys_to_virt(),ioreamp(),IO_ADDRESS() 的区别
针对IO_ADDRESS()函数(静态映射(map_desc)方式):ioreamp();动态映射方式:我们来看看s3c2410是怎么定义map_desc结构体的(即上面s3c2410_map_io函数内的s3c2410_iodesc)。/* arch/arm/mach-s3c2410/s3c2410.c */static struct map_desc s3c2410_iodesc[] __in...转载 2018-02-08 14:43:14 · 952 阅读 · 0 评论 -
树莓派:3. 树莓派采集温度-使用AD7416
1. AD7416简介1. 概述AD7416是有8个管脚的温度监测器。该温度监测器可通过多路复用器的0通道进行访问。片上寄存器可编程控制极限温度,当温度超过极限时漏极开路温度过热指示器(OTI)处于工作状态。AD7417和AD7418分别是10位,4通道和单通道的ADC,其片上温度传感器可用2.7V~5.5V电压供电。该装置包含一个约15μs的转换器,5通道多路复用器,温度传感器,时钟振荡器,跟踪...转载 2018-02-26 15:48:10 · 1124 阅读 · 0 评论 -
thread_create会导致内存泄露
这几天一直在调试一个系统,系统的功能就是定时发送数据、接收数据然后解析收到的数据,转换成一定的格式存入数据库中。我为了并发操作,所以每接收到一个数据包,就调用pthread_create函数创建一个默认属性的线程进行处理。 系统一开始运行很正常,但是当接收到第299个数据包时,就发生异常,查看程序日志,得知原来自接收到299个数据包后,就不再解析接收到的数据。我本以为是网络的问题,于是,转载 2018-01-20 14:55:27 · 544 阅读 · 0 评论 -
奥比中光Orbbec Astra-Mini RGB-D 3D体感摄像头在ROS(indigo)使用简介
这款摄像头使用uvc输入彩色信息,需要libuvc和libuvc_ros这样才能在ROS正常使用彩色功能。请在下面网址,分别下载对应包:1、https://github.com/ktossell2、https://orbbec3d.com/develop/也可以直接下载打包好的资源:http://download.youkuaiyun.com/detail/zhangrelay/97053...转载 2018-01-20 10:13:35 · 3107 阅读 · 1 评论 -
adb logcat 命令详解 log过滤
eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志;1. 解析 adb logcat 的帮助信息在命令行中输入 adb logcat --help 命令, 就可以显示该命令的帮助信息;[plain] view plaincopyoctopus@oc转载 2018-02-03 10:13:30 · 2602 阅读 · 0 评论 -
pthread_create()
pthread_create函数 原型:int pthread_create((pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) 用法:#include 功能:创建线程(实际上就是确定调用该线程函数的入口点),在线程创建以后,就开始运行相关的转载 2018-01-19 11:07:59 · 1234 阅读 · 0 评论 -
memcpy的用法
原型:void *memcpy(void *dest, const void *src, size_t n); 功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中 C++头文件#include 说明:1、由于函数的实参是void*,所以可以拷贝任意的类型对象2、sr转载 2018-01-26 14:46:10 · 4063 阅读 · 0 评论 -
TCP网络编程中connect()、listen()和accept()三者之间的关系
基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下:connect()函数对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是这个函数完成的,这个函数的作用仅仅是通知 Linux 内核,让 Linux 内核自动完成 TCP 三次握手连接(三次握手详情,请看转载 2018-01-26 13:17:04 · 311 阅读 · 0 评论 -
u8 temp; (void *) temp 和 (void *) & temp 有什么区别,具体运算过程是啥? u8 data; u8 k=1;
u8 temp; (void *) temp 和 (void *) & temp 有什么区别,具体运算过程是啥? u8 data; u8 k=1;u8 temp; (void *) temp 和 (void *) & temp 有什么区别,具体运算过程是啥?u8 data; u8 k=1; u8 * temp=&k;data=(u8) temp 的结果是什么? temp原创 2018-01-26 11:55:48 · 3575 阅读 · 0 评论 -
按位定义结构体
按位定义一个结构体 struct s_DosAttributes { unsigned ReadOnly :1; unsigned Hidden :1; unsigned System :1; unsigned VolumeID :1; unsigned Directory :1; un转载 2018-01-22 16:11:34 · 1301 阅读 · 0 评论 -
ubuntu12.04安装配置opensips,搭建voip服务器
通过部署opensips, opensips-cp, rtpproxy, mediaproxy实现voip通话。测试可以通过安卓原生客户端验证,CSipSimple客户端通话(拨打/接收)1.安装opensipsopensips需要编译源码安装官网:http://opensips.org文件目录:http://opensips.org/pub/opensips/1.11.2/src/wget ht...转载 2018-03-28 09:21:46 · 475 阅读 · 0 评论 -
ELF文件格式解析
1. ELF文件简介首先,你需要知道的是所谓对象文件(Object files)有三个种类:可重定位的对象文件(Relocatable file) 这是由汇编器汇编生成的 .o 文件。后面的链接器(link editor)拿一个或一些 Relocatable object files 作为输入,经链接处理后,生成一个可执行的对象文件 (Executable file...转载 2018-05-17 10:49:25 · 10208 阅读 · 2 评论 -
posix多线程有感--自旋锁
转自:http://www.csdn123.com/html/blogs/20130509/11141.htm自旋锁是SMP架构中的一种low-level的同步机制。 当线程A想要获取一把自旋锁而该锁又被其它线程锁持有时,线程A会在一个循环中自旋以检测锁是不是已经可用了。对于自选锁需要注意:由于自旋时不释放CPU,因而持有自旋锁的线程应该尽快释放自旋锁,否则等待该自旋锁的线程会一直...转载 2019-02-13 14:24:39 · 199 阅读 · 0 评论 -
linux中shell变量$#,$@,$0,$1,$2的含义解释
常用的shell中带有$符号的几个变量的含义:区别:@ *相同点:都是引用所有参数 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在1 2 3)则"*" 等价于 “1 2 3"(传递了一个参数);而“@" 等价于 "1" "2" "$3"(传递了三个参数)变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台P...转载 2019-02-13 11:53:21 · 447 阅读 · 0 评论 -
Linux下串口编程入门
1. 串口简介串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个 ...转载 2018-08-22 16:49:24 · 389 阅读 · 0 评论 -
linux 设备驱动编程
驱动 目 录驱动 I/O端口 from smth 基本结构 驱动程序 具体实现 PCI loopback Sis 900 ISA总线DMA的实现 驱动 Linux系统支持三种类型的硬件设备:字符设备、块设<script type="text/javascript"><!--google_ad_client = "pub-22999...转载 2018-07-05 16:29:53 · 585 阅读 · 0 评论 -
ioremap 函数映射操作已知的物理地址(寄存器、端口、IO)
NAME ioremap - map bus memory into CPU space SYNOPSIS void __iomem * ioremap (unsigned long offset, unsigned long size);12ARGUMENTSoffset bus address of the memorysize ...转载 2018-07-05 15:03:14 · 941 阅读 · 0 评论 -
字符驱动之:实现读写
一、介绍: 实现字符设备的读写其实就是实现驱动中的 file_operation 结构体里的read和write成员。二、实现例子:1. 驱动层:--相当于下边的 char_read.c 文件 ①先实现 file_operations 结构体中列的我们想要实现的函数,比如 static int hello_open (struct inode *inode, st...转载 2018-07-04 16:09:02 · 1256 阅读 · 0 评论 -
linux驱动之定时器的介绍和内核时间的学习
本文章摘自下面的网友:http://blog.sina.com.cn/s/blog_6e5b342e0100m87d.html 一、内核中如何记录时间任何程序都需要时间控制,其主要目的是:测量时间流逝和比较时间知道当前时间指定时间量的延时操作为达到这个目的,应用程序使用日历时间(年月日时分秒)或者自1970年1月1日零时零分零秒到当前的秒数来度量时间的流逝,但内核中需要更加有精度的时间度量,因此内...转载 2018-07-04 11:19:59 · 321 阅读 · 0 评论 -
linux驱动之定时器的介绍和内核时间的学习
本文章摘自下面的网友:http://blog.sina.com.cn/s/blog_6e5b342e0100m87d.html 一、内核中如何记录时间任何程序都需要时间控制,其主要目的是:测量时间流逝和比较时间知道当前时间指定时间量的延时操作为达到这个目的,应用程序使用日历时间(年月日时分秒)或者自1970年1月1日零时零分零秒到当前的秒数来度量时间的流逝,但内核中需要更加有精度的时间度量,因此内...转载 2018-07-04 11:19:57 · 146 阅读 · 0 评论 -
Linux内核编译
尝试编译下Linux-kernel 4.14.14,使用Ubuntu 16.04 64位 系统。 Linux内核官网: https://www.kernel.org/ 内核下载链接: https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.14.14.tar.xzkernel-4.14.14 内核文件约96MB,解压...转载 2018-07-09 13:57:19 · 484 阅读 · 0 评论 -
warning: control reaches end of non-void function
用gcc编译一个程序的时候出现这样的警告:warning: control reaches end of non-void function它的意思是:控制到达非void函数的结尾。就是说你的一些本应带有返回值的函数到达结尾后可能并没有返回任何值。这时候,最好检查一下是否每个控制流都会有返回值。 ...转载 2018-06-03 21:49:41 · 86976 阅读 · 2 评论 -
Linux 下wifi 驱动开发(三)—— SDIO接口WiFi驱动浅析
SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转换。SDIO具有传输数据快,兼容SD、MMC接口等特点。 对于SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以,注册的时候还是先以sdio的卡的转载 2017-11-28 13:08:05 · 1381 阅读 · 0 评论 -
Linux每次开机都要source profile的解决办法
把export语句写在~/.bashrc文件里,或者在该文件里写上source /etc/profile指令:gedit .bashrc“~”指当前账号的根目录“.”表示bashrc是隐藏文件,可以用 ls -a 或 ls -la命令看到#是注释转载 2017-12-15 09:19:39 · 6604 阅读 · 0 评论 -
Linux 设备驱动之字符设备(二)
dev_fifo_v2.zip转载 2016-09-08 10:47:26 · 308 阅读 · 0 评论 -
Linux 设备驱动之字符设备(一)
转载 2016-09-08 10:46:14 · 322 阅读 · 0 评论 -
Linux 驱动之模块参数和符号导出
转载 2016-09-08 10:44:14 · 412 阅读 · 0 评论 -
Linux 驱动 之 模块化编程
转载 2016-09-08 09:49:30 · 756 阅读 · 0 评论 -
Linux /dev 自动创建设备节点
udev的支持主要作用是:在驱动初始化的代码里调用class_create(...)为该设备创建一个class,再为每个设备调用device_create(...);内核中定义的struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再转载 2016-09-08 09:07:17 · 3591 阅读 · 0 评论 -
ubuntu完美搭建git服务器-完善版
最近公司项目需要用到Git来管理项目,正好逢周末花了点时间在虚拟机的unbuntu系统中搭建了下git的服务器,由于搭建过程中多多少少遇到了一些小问题,再因为个人记性不太好,所以在这里记录下来,以备不时之需。开始我已经在虚拟机的ubuntu12.04系统下已经装过一次,忘了记录,这次重新再在虚拟机的ubuntu13.10系统下一步一步的来搭建,后面介绍包括了在客户端机器(宿主机器win7)安装gi转载 2015-10-11 18:22:56 · 8251 阅读 · 3 评论 -
完全用GNU/Linux工作
完全用GNU/Linux工作王珢 (看完这篇博文,我坚定了学linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己。看完这篇文章令我热血沸腾,难以入睡。也希望看到这篇博文的朋友有所收获。) "UNIX 是简单的,你不需要成为天才也能理解这种简单"由于GNU/Linux这个词太长,下面如果没有特别指明,“Linux”就是指“GNU/L转载 2015-09-22 14:59:29 · 1052 阅读 · 0 评论 -
GCC 编译linux运用程序开方错误的解决办法
程序如下:test.c#include#include#define SQ 121int main(void){int x;x = sqrt(SQ);return 0;}编译:gcc -g -o test test.cGCC编译时显示错误,为sqrt没有定义解决办法为:用-lm把数学库链接进去编译:gcc -g原创 2015-09-09 22:47:32 · 740 阅读 · 0 评论 -
结构体和联合体在通信协议解析的应用
在串口通信中,我们往往会解析很多协议,而且在协议中会出现不同数据类型的协议;当然我们也可以把协议都定义成某一种数据格式,但是那样会出现协议的复杂度,但是不那样处理的话,程序在处理协议时会变得很难。为了解决这个问题,本人就应用了结构体和联合体的方式来解决了,反正个人认为自己的方法很实用;具体方法是:1、将不同类型的协议分成不同的结构体struct ChaX_Data //检测转载 2015-07-01 12:54:11 · 2669 阅读 · 1 评论 -
make里的wildcard和patsubst
在 GNU Make 里有一个叫 'wildcard' 的函 数,它有一个参数,功能是展开成一列所有符合由其参数描述的文 件名,文件间以空格间隔。你可以像下面所示使用这个命令:SOURCES = $(wildcard *.c)这行会产生一个所有以 '.c' 结尾的文件的列表,然后存入变量 SOURCES 里。当然你不需要一定要把结果存入一个变量。另一个有用的函数是 pats转载 2015-07-01 16:27:11 · 606 阅读 · 0 评论 -
Linux 设备驱动之字符设备(三)
通过前面我们对字符驱动的完善,已经可以完成基本的功能了,但是仍然有以下不足,这一节我们继续完善它。(1)没有实现xxx_ioctl接口,没办法通过命令来控制dev_fifo 改善:增加xxx_ioctl函数接口,应用层可以通过ioctl系统调用,根据不同的命令来操作dev_fifo。(2)只能驱动一个dev_fifo设备,多个dev_fifo设备无法驱动转载 2016-09-08 10:49:05 · 485 阅读 · 0 评论 -
Linux命令中cat和echo的区别
1. 想看一个文件的内容是什么,可以用cat,比如 cat/etc/reslov.conf,就显示出文件reslov.conf里具体的内容。2. 而echo 没有这样的功能,他会把echo后面的内容作为字符串显示出来,比如 echo hello,就显示hello;比如 echo /etc/reslov.conf ,会显示/etc/reslov.conf转载 2016-09-26 13:36:39 · 7145 阅读 · 0 评论 -
dmesg七种用法
dmesg 命令的使用范例‘dmesg’命令设备故障的诊断是非常重要的。在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息。‘dmesg’命令在多数基于Linux和Unix的操作系统中都可以使用。下面我们展示一些最负盛名的‘dmesg’命令工具以及其实际使用举例。‘dmesg’命令的使用语法如下。# dmesg [optio转载 2017-12-21 12:41:13 · 1303 阅读 · 0 评论 -
linux 挂载tf卡
mount -t vfat /dev/mmcblk0p1 /mnt/mmc/原创 2017-11-20 16:50:46 · 8618 阅读 · 0 评论 -
linux挂载SD卡
(1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡MP805M板子插入SD卡后显示SD30 slot is without WPmmc1: new high speed SD card at address 5bc0mmcblk0: mmc1:5bc0 SD02G 1.83 GiB mmcblk0: p1[/]# fdisk -lDisk /dev转载 2017-10-31 18:01:07 · 3293 阅读 · 0 评论