自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 在orangepi lite 开发板上使用rz sz命令

在Ubuntu上下载lrzsz-0.12.20.tar.gzwget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz解压lrzsz-0.12.20.tar.gztar -vxf lrzsz-0.12.20.tar.gz配置脚本cd lrzsz-0.12.20/vi build.sh 将 echo "ac_cv_prog_CC=${ac_cv_prog_CC='arm-none-linux-gnueabi-gcc'}" >&gt

2020-08-28 12:46:27 256

原创 orange pi lite安装交叉编译工具

编译U-Boot获取工具链apt-get install gcc-arm-linux-gnueabihf还需要添加一些其他软件包来构建U-Bootapt-get install swig python-dev获取设备树编译器

2020-08-26 18:13:54 634

原创 文件通过NFS文件系统复制到orangepi lite开发板

1.确保板子已经能够正常联网:ping外网,检测是否能和外网通讯ping www.baidu.comPING www.a.shifen.com (180.101.49.42) 56(84) bytes of data.64 bytes from 180.101.49.42: icmp_seq=1 ttl=53 time=27.5 ms64 bytes from 180.101.49.42: icmp_seq=2 ttl=53 time=27.1 ms64 bytes from 180.101.

2020-08-26 15:53:19 423

原创 网络编程-广播通信以及组播通信的例子

单播(unicast)任播(anycast)组播(multicast)广播(broadcast)注: 广播和组播都需要使用UDP,都不能使用TCP地址表示方式:IPv4地址的表示 {子网id:192.168.1, 主机id:12}A/B/C/D/E五类地址,-1表示所有位都为1 的字段子网广播地址,{子网id ,-1},指定子网所有接口的广播地址192.168.177.0/24 该子网上的广播地址192.168.177.255受限广播地地址 {-1 , -1}255.255

2020-07-25 15:47:43 1013 1

原创 网络编程-复用I/O-select、epoll的用法

阻塞式I/O非阻塞式I/OI/O复用(select/epoll)信号驱动I/O异步I/O

2020-07-24 19:14:49 156

原创 网络编程-多进程并发TCP服务器

send函数: 发送数据原函数:ssize_t send(int sockfd, const void *buf, size_t len, int flags);参数:sockfd,是由socket函数返回的套接字描述符   buf,要发送的数据   len,要发送的数据的大小   flags,一个标志位recv函数: 接收数据原函数:ssize_t recv(int sockfd, void *buf, size_t len, int flags);参数:sockfd,由socket函数返

2020-07-23 21:00:27 307

原创 网络编程-基于TCP/UDP的客户端获取服务器时间例子

TCP传输控制协议向用户进程提供可靠的全双工字节流(字节流:给每一个字节编序)UDP用户数据报协议是一种无连接的协议获取时间服务的客户端client#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include &

2020-07-23 11:18:58 1317

原创 基于多线程的TCP并发服务器的创建及相关函数

线程:有时又称轻量级进程,程序执行的最小单位,系统独立调度和分派CPU的基本单位,它是进程中的一个实体一个进程中可以有多个线程,这些线程共享进程的所有资源,线程本身只包含一点必不可少的资源。优势:在多处理器中开发程序的并行性在等待慢速IO操作时,程序可以执行其他操作,提高并发性模块化的编程,能清晰的表达程序中独立事件的关系,结构清晰占用较少的系统资源线程创造:获取ID线程控制:终止、连接、取消、发送信号、清除操作线程同步:互斥量、读写锁、条件变量线程高级控制:一次性初始化、线程属性、同

2020-07-21 11:18:58 382

原创 Linux中线程的高级控制-线程私有属性、线程与fork

线程私有属性  应用程序设计中有必要提供一种变量,使得多个函数多个线程都可以访问这个变量(看起来是个全局变量),但是线程对这个变量的访问都不会彼此产生影响(貌似不是全局变量哦),但是你需要这样的数据,比如errno。那么这种数据就是线程的私有数据,尽管名字相同,但是每个线程访问的都是数据的副本。  在使用私有数据之前,你首先要创建一个与私有数据相关的键,要来获取对私有数据的访问权限 。这个键的类型是pthread_key_tpthread_key_create函数: 创建私有数据的键原函数:int

2020-07-20 10:52:35 200

原创 Linux中线程的高级控制-一次性初始化、线程的分离属性、栈属性及同步属性

一次性初始化  有些事需要且只能执行一次(比如互斥量初始化)。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库函数时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始(pthread_once_t)会比较容易些。  首先要定义一个pthread_once_t变量,这个变量要用宏PTHREAD_ONCE_INIT初始化。然后创建一个与控制变量相关的初始化函数。pthread_once_t once_control = PTHREAD_ONCE_INIT;vo

2020-07-18 17:50:33 204

原创 AD19导出Gerber文件-嘉立创打板

选择文件->制造输出->Berber Files(或快捷键:F+F->Gerber Files)格式选择2:5点击层,绘制层选选择使用的取消右边机械层点击钻孔图层,取消需所有选项光圈、高级如图,一般默认点击确定右击close,无需保存继续选择文件->制造输出->Berber Files通用跟上次一样,一般不用改点击层,绘制层选择全部去掉...

2020-07-18 13:14:29 27283 3

原创 线程的同步-互斥量、读写锁及条件变量

互斥量  当多个线程共享相同的内存时,需要每一个线程看到相同的视图。当一个线程修改变量时,而其他线程也可以读取或者修改这个变量,就需要对这些线程同步,确保他们不会访问到无效的变量。  为了让线程访问数据不产生冲突,这要就需要对变量加锁,使得同一时刻只有一个线程可以访问变量。互斥量本质就是锁,访问共享资源前对互斥量加锁,访问完成后解锁。  当互斥量加锁以后,其他所有需要访问该互斥量的线程都将阻塞。互斥量用pthread_mutex_t类型的数据表示,在使用之前需要对互斥量初始化  1)、如果是动态分

2020-07-16 21:43:22 201

原创 linux中线程的基本控制--信号的处理及清理程序

pthread_kill函数: 发送信号原函数:int pthread_kill(pthread_t thread,int sig)参数:thread,线程的id   sig,要发送的信号返回值:成功返回0,失败返回错误码作用:向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说,如果你给一个线程发送了SIGQUIT信号,但线程却没有实现signal处理函数,则整个进程会退出。如果第二个参数是0 ,这就是一个保留信号,其实并没有发送信号,作用是用来判断

2020-07-16 16:07:47 337

原创 ubuntu中shell常用命令及vi编辑器基础以及shell脚本基础

ls //显示当前目录文件 ls -a //显示隐藏文件 ls -l //显示文件信息 ls -al //显示所有文件及信息cd //进入目录 cd Desktop 进入桌面 cd /mnt/hgfs 进入共享文件 cd … //返回上一级 cd …/…/ 返回上上一级pwd //显示当前目录uname //系统信息查看 uname -a //查看全部信息clear //清屏 实际没清,切到下一页cat //显示文件内容 cat 123.t

2020-07-16 11:31:03 800

原创 linux中线程的基本控制--创建、退出、连接及取消

pthread_create函数: 线程创建原函数:pthread_create(pthread *restrict tidp,           const pthread_attr_t *restrict attr,           void *(*start_routine)(void *),           void *restrict arg)参数:新线程ID,如果成功则新线程的ID回填充到tidp的内存   线程属性(调度策略,继承性,分高性)   回调函数(新线程要执行

2020-07-14 19:39:59 270

原创 ubuntu中的Git上传及常用命令

git上传的基本流程1. Git安装sudo apt-get install git //ubuntu / linux安装git2. 初始化git init //初始化仓库3. 克隆地址git clone https://*** //***:克隆仓库地址4. 添加文件git add . //将本地所有文件添加到暂存区5. 注释说明git commit -m "***" //***:本次提交的说明6. 推送git push

2020-07-09 18:11:54 336 1

原创 有名管道-非父子进程间通信

有名,即文件系统中存在对应文件节点,每个文件节点都有一个inode号。open: 普通文件mkfifo: 创建管道socket:创建套接字mknod:字符设备文件mkdir: 目录文件mkfifo函数: 创建管道文件函数形式:int mkfifo(const char * filename, mode_t mode);参数:管道文件名;权限,文件权限仍然和umask有关返回:成功返回0,失败返回-1创建有名管道mkfifo,打开open,读read,写write,关闭close。非父子

2020-07-09 10:37:33 687 1

原创 无名管道-父子进程间通信

  管道文件是一个特殊文件,它由队列实现的。在文件IO中,创建、打开一个文件是由open函数实现,但是无名管道不能用open创建,对应的函数是pipe。  无名管道读完就删除,再读就阻塞;缓存满了,也会阻塞。只能在父子进程(有亲缘关系的进程)间通信。pipe函数: 创建管道函数原型:int pipe(int fd[2]);头文件:unistd.h参数:文件描述符。fd[0]是读端口,fd[1]是写端口。返回:成功0,出错-1.例:int ret=pipe(int fd[2]);write函

2020-07-08 21:56:34 1627

原创 消息队列-无亲缘关系进程通信

消息队列不像共享内存的流程,它不需要信号通知。消息队列的另一个特点:信息读取完自动删除;可以阻塞msgget函数: 消息队列创建头文件: #include <sys/types.h>     #include <sys/ipc.h>     #include <sys/msg.h>函数原型: int msgget(key_t key, int flag);参数: key,和消息队列关联的key值    flag,消息队列的访问权返回: 成功,消息队列ID

2020-07-08 21:37:07 1637 2

原创 共享内存-父子进程、非亲缘关系进程通信

IPC:共享内存、信号灯、消息队列共享内存的特点:共享内存创建后一直存在于内核中,直到被删除或系统关闭;共享内存和管道不一样,读取后,内容仍然存在。shm_get函数: 共享内存的创建头文件: #include <sys/types.h>     #include <sys/ipc.h>     #include <sys/shm.h>函数原型: int shmget(key_t key, int size, int shmflg)函数参数: key:I

2020-07-08 18:21:02 1848

原创 信号的发送、接收、处理函数

信号的发送函数:kill函数:发送信号给任意进程头文件: #include <signal.h>#include <sys/types.h>函数原型: int kill(pid_t pid, int sig)参数:*pid: 正数,要接收信号的进程号;0,信号被发送到与pid进程相同的进程组中;-1,信号发送给所有的进程表中的进程*sig: 信号返回: 成功0,错误-1例:kill(pid,9);raise函数:只能发送给当前进程,等于kill(getpid(

2020-07-08 11:09:38 1354

原创 Android - NDK - CMake - 生成so库

我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《Android - NDK - CMake - 生成so库(方式一)》, 一起来围观吧 https://blog.csdn.net/weixin_43707799/article/details/107123520?utm_source=app

2020-07-04 15:24:06 259 1

OrangePi_Lite_H3_用户手册_v2.0.pdf

orangepi lite 开发板的基本特性,使用介绍,Linux编译环境的搭建,Android源码编译环境搭建及调试工具

2020-08-25

Vim 中文用户手册.zip

Vim 中文用户手册 非常简单实用的vim使用手册 一本介绍了vim基本操作的东西 详细描述Vim的每一个命令的详细资料

2020-07-31

空空如也

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

TA关注的人

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