Linux进程——进程环境与加载可执行映像

进程是程序的一次运行过程,除了进程虚拟地址空间和文件描述符等,进程控制块中还存放了进程运行的环境信息,包括用户、用户组、父进程、进程组和会话等。 ###用户和用户组 //获得当前进程实际用户ID pid_t getuid(void); //获得当前进程有效用户ID pid_t geteuid(void); //获得当前进程实际用户组ID pid_t getgid(void); //获得当前进程有效...

2018-10-09 · 3 min · 1417 字 · Niuhe

Linux进程——地址空间

可执行程序是存储在磁盘设备上由代码和数据按某种格式组织的静态实体,而进程是可被调度的代码的动态运行。在Linux系统中,在一个进程的生命周期里,都有各自的运行环境和所需的资源,这些信息储存在各自的进程控制块中。 进程控制块主要结构如下: 用户标识 进程和会话标识 虚拟地址管理 文件描述符表...

2018-10-08 · 4 min · 1732 字 · Niuhe

Linux信号处理——发送信号

Linux提供了应用编程接口,通过这些接口,进程可以向其他进程或进程组发送信号。root权限的进程可以向任何进程发送信号,非root权限的进程智能向属于同一个回话或同一个用户的进程发送信号。 ###发送信号 常用的函数原型如下 /* 向进程发送信号 pid>0 进程ID为pid的进程 pid=0 同一进程组的进程...

2018-10-07 · 3 min · 1401 字 · Niuhe

Linux下glic库操作文件和目录

文件系统概述 Linux内核的各种真实文件系统、块设备和字符设备统一在虚拟文件系统的框架中,虚拟文件系统为应用提供了一组抽象的文件输入输出接口。 虚拟文件系统是对各种真实文件系统的抽象,在虚拟文件系统中定义了抽象的超级块、i节点和目录,它为真实文件系统提供了一种统一的框架接口。真实文...

2018-10-06 · 6 min · 2846 字 · Niuhe

Linux信号处理——自定义信号处理函数

信号是内核和进程之间通信的一种方式,信号是由内核产生,并发送给一个或一组进程的短消息,用不同特定的数字表示不同的信号,信号的作用是表示某种事件的发生。 信号简介 分类 非实时不可靠信号,值为1-31 实时的可靠信号,值为32-63 信号由内核生成,信号生成和事件的发生密切相关,可将事件发生...

2018-10-06 · 3 min · 1482 字 · Niuhe

Linux下创建和使用C语言函数库

函数库介绍 函数库分为: 静态库 共享库(动态加载库) 应用程序在链接静态库时候,将使用的静态库对象嵌入至可执行映像文件中;而在链接共享库时,仅在可执行映像文件中保留加载目标对象所需的信息,在调用时,才真正将目标对象加载至内存。 静态库特点: 运行时无需外部库的支持,可执行文件中已经嵌入了所...

2018-09-26 · 3 min · 1317 字 · Niuhe

Shell编程基础

Shell 是一种命令行解释器,目前 Linux 下最常用的是 bash 解释器。Shell 不仅可以解释用户输入的命令,还可以解释执行基于命令的 Shell 脚本语言。 Shell 脚本是由命令、Shell 变量和控制语句灯语法元素构成的文本文件。默认情况下,Shell 对脚本中的内容逐行分析,并依次在不同的进程中解释执行。通常 Shell 脚本结构...

2018-09-25 · 4 min · 1626 字 · Niuhe

Pyserial快速上手

现在很多传感器都使用串口进行数据传送,我们再window上通常使用sscom33这类调试工具,在linux下通常使用带界面的cutecom或者命令行界面的minicom进行调试。 而使用Python写几行程API序进行自定义调试,就非常有用。并且可以快速的对传感器进行测试。本文介绍...

2018-09-13 · 1 min · 462 字 · Niuhe

LSM303_Doc

简介 LSM303DLHC是一个三轴加速度和三轴磁场的传感器,具有倾斜补偿,工作电压在2.5-5.5V之间,工作电流10mA,数据接口是I2C接口。 引脚定义 VIN 2.5-5.5V电压供电引脚,SCL和SDA引脚的高电平电压和VIN引脚的电压相同。 VDD 根据VIN引脚的连接情况,VDD引脚用...

2018-09-10 · 2 min · 535 字 · Niuhe

远程ssh连接家中的树莓派

在局域网下可以通过扫描端口号,获得局域网下树莓派的ip地址,如192.168.1.118。之后通过ssh或者VNC等方法访问树莓派。那么如果我们离开局域网,怎么访问到家中的树莓派呢? 公网IP相当于街道中的门牌号,如果远程访问到互联网中的设备,必须知道设备的公网IP。 VPS + SSH远程...

2018-09-04 · 3 min · 1224 字 · Niuhe

Arduino简易示波器检测树莓派产生的方波

在使用超声测距模块时,需要给超声模块一个方波信号。于是可以用树莓派的的PWM功能产生一个低频的方波信号。 产生方波信号后,如果手边没有示波器,还可以使用Arduino的ADC采样功能,做一个简单的示波器。 树莓派产生方波 树莓派的pin12、pin33(GPIO_18、GPIO_13)...

2018-09-01 · 2 min · 744 字 · Niuhe

Arduino任何引脚产生方波

Arduino可以使用PWM产生方波信号,在我的Arduino UNO R3上,支持PWM的输出口是pin 3,5,6,9,10,11这几个引脚,支持大约980Hz的PWM输出。这方面不再赘述。 本文介绍另一种产生方波的方法,可以使用任何引脚产生方波信号。功能: 固定频率,占空比,偏移量的方波...

2018-09-01 · 2 min · 631 字 · Niuhe

树莓派连接LCD1602做一个电子钟

安装LCD库 使用AdaFruit库来控制lcd库,这个库支持AdaFruit屏幕和使用HD44780的显示屏。 通过源码安装: git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd ./Adafruit_Python_CharLCD sudo python setup.py install 将树莓派和LCD1602连接 连接的图如下所示: LCD电子钟程序 #!/usr/bin/python3 # -*- coding: utf-8 -*- import RPi.GPIO as gpio #to add the LCD library import Adafruit_CharLCD as LCD import time gpio.setmode(gpio.BCM) #声明 LCD pins(对应BCM引脚...

2018-08-28 · 1 min · 232 字 · Niuhe

树莓派3启用UART并连接GPS传感器

在树莓派3B+里启用串口,并通过UART读取GPS模块的数据帧。 树莓派3启用UART #####先更新系统 sudo apt-get update sudo apt-get upgrade sudo raspi-config 在raspi-config中设置: disable login shell over serial enable serial hardware port #####然后重启 sudo reboot #####编辑配置文件 sudo nano /boot/config.txt 在最后一段加上: dtparam=spi=on dtoverlay=pi3-disable-bt core_freq=250 enable_uart=1 force_turbo=1 然后编辑cmdline.txt sudo...

2018-08-25 · 2 min · 539 字 · Niuhe

树莓派GPIO入门

本文介绍树莓派上GPIO引脚的三种编号方式,同时介绍控制引脚的方式。并以BCM-17引脚为例,动手点亮led灯并使其闪烁。 GPIO是通用输入输出接口。树莓派上有40个引脚,对这40个引脚主要有两种编号方式。 BOARD 和引脚物理顺序一致 BCM wiringpi编号 wiringPi是一个用来控制G...

2018-08-25 · 2 min · 766 字 · Niuhe