![](https://img-blog.csdnimg.cn/20200902093748257.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux - 杂
文章平均质量分 98
Linux(虚拟机,树莓派)环境下的应用实践,例如静态库与动态库的制作,sqlite3的使用,操作系统相关知识等
梦小羊
系统软件工程师
展开
-
Linux树莓派串口通信编程 —— C语言实现AT指令集的发送与接收
一. 前言 在拿到我的EC20 4G模块后,可谓是迫不及待的去办了一张新的电话卡,可是在插上卡以后,登录我的树莓派,却始终存在一个问题,插上卡以后,使用AT命令AT+CSQ查看信号强度,一切正常,AT+CPIN?一切也都就绪,但是在使用AT+CREG?时,却出现了(0,2)的错误,我上一篇博客有提到,使用这个命令第二个参数出现2说明卡还没有注册上,但是处于正在注册状态,可是无论我怎么等,仍然处于这个状态,换了几张卡依然如此,能检查出卡,却大不了电话发不了短信,在网上找了各种解决方法,cs原创 2020-07-05 13:48:17 · 7453 阅读 · 9 评论 -
基于树莓派的sht20温湿度传感器应用(c语言)
文章目录一.I2C协议1.1 I2C总线特征1.2 I2C总线特征1.3 I2C总线协议1.4 常见的几种传输二. sht2x温湿度传感器模块三. 基于树莓派的温湿度传感器的应用3.1 使能i2c驱动3.2 接线3.3 C代码3.4 运行实现一.I2C协议协议详解1.1 I2C总线特征I2C主要靠2根线来控制,一根是SDA(串行数据线),一根是SCL(串行时钟线),通过对SCL和SDA线电平高低的控制,来产生I2C总线协议所需要的信号进行数据传递。空闲时,两根线一般被接上上拉电阻拉高,保持高电平。原创 2020-06-26 16:57:27 · 3430 阅读 · 1 评论 -
Linux的五种网络IO模型
文章目录一、同步与异步,阻塞与非阻塞1.1 同步1.2 异步1.3 阻塞1.4 非阻塞二、同步阻塞与同步非阻塞2.1 同步阻塞2.2 同步非阻塞三、五种网络IO模型3.1 阻塞IO模型3.2非阻塞IO模型3.3 IO复用模型3.4 信号驱动IO3.5 异步IO在刚开始学习到五种IO模型时,只是学习各个模型的工作特点,却不能真正的理解,类似于死记硬背,而现在伴随着知识的积累,也慢慢的将以前不懂的知识慢慢梳理,理解;今天就来聊聊,Linux下的五种IO模型。一、同步与异步,阻塞与非阻塞1.1 同步同步原创 2020-05-26 20:05:08 · 388 阅读 · 0 评论 -
系统调用与库函数
操作系统对于文件的操作,有两种方式,分别是 :系统调用(system call)和库函数调用(Library functions)从这个图不难看出,其实库函数的原理还是使用了系统调用;系统调用系统调用,我们可以理解是操作系统为用户提供的一系列操作的接口(API),这些接口提供了对系统硬件设备功能的操作。举个例子,我们最熟悉的 hello world 程序会在屏幕上打印出信息,程序中调用了printf() 函数,而库函数 printf 是将需要打印的信息输出到屏幕这个硬件设备上。我们知道,对于所有原创 2020-05-26 17:07:10 · 390 阅读 · 0 评论 -
Linux下动态库与静态库原理与制作
一. 什么是库在系统中,库就是一个现有的,已经写好可供直接使用的代码,很多程序都依赖库;通常,库大致分为两种:分别是动态库和静态库;二. c程序的链接过程先观察图:通过...原创 2020-04-08 16:11:05 · 729 阅读 · 0 评论 -
gcc编译过程及常用选项
GUN编译套件GUN编译套件(GNU Compiler Collection),我们将其简称为gcc .GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。),是一系列编译器的集合,下面,我将以一段c代码为例,讲述gcc编译的过程以及我们常用的选项。GCC编译过程预处理当我们...原创 2020-04-07 19:24:06 · 520 阅读 · 0 评论 -
判断大小端字节序的两种方法(联合与指针)
1.什么是大小端字节序在我们的电脑中,系统在会将多个字节的数据存储在一片连续的地址上,而将数据的各个字节从这片空间的高地址位开始存储还是从低地址位开始存储就决定了系统的存储字节序1.1 小端字节序在32位的操作系统中,int 类型的变量占4个字节,我们利用这样一个变量来说明什么是大端字节序什么是小端字节序;定义一个变量并赋于初值 ...原创 2020-03-25 10:47:56 · 4922 阅读 · 3 评论 -
嵌入式 sqlite3 相关使用
1.什么是sqlite3数据库SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。此外,安装sqlite3也极为简单,其大小只有250KB左右;2.l...原创 2020-03-24 22:02:45 · 434 阅读 · 0 评论 -
Segmentation Fault ? Linux中C程序内存布局(透过代码看本质)
有时候编写代码,总有一些程序编译能通过,但是一运行,就会抛错:Segmentation fault,一直迷迷糊糊的,在对c程序内存布局了解以后,只要再出现这样的错误,就可以回想一下c程序内存布局的图,一定能解决!各布局分区说明:内存分布说明System Space这段高地址内存大小为1GB,固定留给内核使用,称之为内核空间。命令行参数区在Linux操作系统中,...原创 2020-03-09 17:02:21 · 394 阅读 · 0 评论 -
Linux系统编程:树莓派 ds18b20温度获取(文件IO相关操作)
问题当树莓派配置好ds18b20数字温度传感器后,该温度信息通常保存在下面路径中:/sys/bus/w1/devices/28-04xxxxxxxxxx/w1_slave这里的“28-04xxxxxxxxxx"是数字温度传感器的生产流水号,每一个传感器的都不相同。当我们打开这个文件后,会读到下面内容:ten@Public_RPi:/sys/bus/w1/devices/28-0417...原创 2020-03-08 12:08:39 · 2951 阅读 · 0 评论 -
Linux信号(signal)机制
一、什么是信号1.信号本质软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部...原创 2020-03-01 12:25:18 · 773 阅读 · 0 评论 -
在Linux下使用git存储代码
一. git简介最近开始使用Git来管理自己的代码,这里总结了一下我所学到的一些关于GIt方面的知识一如何在Linux环境下使用git。1.git的产生历史git是目前世界上最先进的分布式版本控制系统,是我们在开发项目时常用的代码管理工具。相关历史可参考git的出身历史2.git的特点(1)版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题;(2)分布式G...原创 2020-02-10 22:18:12 · 735 阅读 · 0 评论