自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Linux应用编程的read函数和Linux驱动编程的read函数的区别

返回值:返回成功读取的字节数。如果返回-1,则表示读取失败,可以通过返回的错误码查看具体的错误原因。返回值:返回成功读取的字节数。如果返回-1,则表示读取失败,可以通过。函数将立即返回,此时读取的字节数可能少于期望的字节数。非阻塞式读取:如果设备中没有足够的数据可供读取,阻塞式读取:如果文件中没有足够的数据可供读取,函数将一直等待,直到有足够的数据或者出错。是用于存储读取数据的用户空间缓冲区,参数是表示打开的文件的结构体指针,是用于存储读取数据的缓冲区,是期望读取的字节数。是期望读取的字节数,

2023-08-09 15:39:29 227

原创 C语言全局数组和malloc分别做栈

全局数组的大小在编译时确定,受到编译器和操作系统限制,如全局数组过大,可能会导致栈溢出或编译不通过。如果频繁使用malloc(),可能导致内存碎片化。全局数组是在程序编译时就分配好静态内存,它的大小在编译时确定,不会在运行时改变。malloc():内存通过指针访问,需要使用指针操作来访问内存中的数据,较慢。malloc函数是在程序运行时动态分配内存,可以根据需要动态调整内存大小。全局数组:内存连续分配,可以通过数组下标直接访问元素,访问速度较快。malloc()需要调用free()动态释放内存。

2023-07-21 17:28:08 294

原创 C/C++两种传递结构体的方法(传递地址“->“和传递结构体“.“)

c/c++语言两种传递结构体的方法->和.的区别

2022-10-16 14:28:22 2856 1

原创 Yocto系统的arm(linux)开发板连接wifi

linux开发板连接WIFI

2022-10-11 15:09:46 725

原创 交叉编译开源代码(以libgpiod为例)

交叉编译开源代码的方法(具体步骤)

2022-10-09 12:34:10 2132

原创 加密狗使用RUS报错:在使用Firefox或Chrome时,您不能在创建绑定版本的RUS工具时提供自定义文本。此外,对于Chrome,您还不能在RUS工具中使用连接图像。为避免这些问题,请使用Micr

使用Sentinel加密狗时,在Sentinel EMS界面使用“RUS”报错,提示要求使用IE11浏览器,而IE浏览器早被edge浏览器取代了,详细解决方案如下:1.报错:在使用Firefox或Chrome时,您不能在创建绑定版本的RUS工具时提供自定义文本。此外,对于Chrome,您还不能在RUS工具中使用连接图像。为避免这些问题,请使用Microsoft Edge(仅支持使用HTTP配置的EMS)或Internet Explorer 11。2.解决方案打开edge设置界面,选择“默认浏览器”,

2022-05-27 14:26:05 273

原创 机器学习选择每一层的节点数目

文章目录1.输入层和输出层的节点数目2.隐含层的节点数目1.输入层和输出层的节点数目  对于输入层和输出层的节点数目设置,需要结合实际分析。  对于输入层,如果是全连接网络,节点数就是实际面对问题可以提取出的特征数;如果含有卷积网络,输入应该是一个二位矩阵,要选择适当的尺寸固定下来。  对于输出层,如果是分类问题,大部分是根据分的类别数来设置节点数目。在只有二分类问题上,既可以采用独热编码设置两个节点,也可以只设置一个节点。如果是回归问题,输出就要根据具体问题的要求来确定节点数目。2.隐含层的节点

2022-04-09 18:24:09 1850

转载 基于python和opencv的图像分割旋转裁剪

转自https://blog.csdn.net/sinat_36458870/article/details/78825571,有修改1.代码# encoding:utf-8import mathimport cv2import numpy as npimport matplotlib.pyplot as pltdef get_image(path): # 获取图片 img = cv2.imread(path) gray = cv2.cvtColor(img, cv2.C

2021-12-20 17:23:33 673

原创 树莓派3B安装PyQt5非apt方法(解决pyinstaller无法打包)

  树莓派使用pip或pip3安装PyQt5会导致报错,因此要想安装就得使用sudo apt install python3-pyqt5。但是以这种方式安装会导致pyinstaller打不了包,原因未知欢迎留言。参考:https://stackoverflow.com/questions/59558343/cant-install-pyqt5-on-raspberry-pi得到解决方法:1. 下载PyQt源码 https://pypi.org/project/PyQt5/#files进入此网站

2021-09-18 11:59:21 829

原创 【PYQT项目】摄像头拍照保存

1.实现目标  使用OpenCV-Python调用笔记本电脑摄像头,使用QT绘制图形界面,当按下拍照时,照片显示在屏幕,按下保存时,该照片可以保存在指定路径。

2021-06-29 15:59:16 2117 4

原创 【python】==和is的区别

==运算符比较两个对象的值(对象中保存的数据),而is比较对象的标识。通常我们关注的是值,而不是标识,所以==出现的频率比is高。在变量和单例值之间比较时,应该使用is。目前最常使用is检查变量绑定的值是不是None,例如:x is Nonex is not Noneis运算符比==速度更快,因为它不能重载,所以Python不用寻找并调用特殊方法,而是直接比较两个整数ID。而a==b是语法糖(语法糖:相当于汉语中的成语。用简练的言语表达较为复杂的含义。在得到广泛接受的情况下,可以提升交流的效率)

2021-06-29 15:37:35 138

原创 【APUE笔记】第十四章 进程间通信

文章目录1.管道IPC进程间通信(InterProcess Communication)1.管道尽管有以下这两种限制,半双工管道仍是最常用的IPC形式:(1) 它们是半双工的。数据只能在一个方向上流动。(2) 它们只能在具有公共祖先的进程之间使用。通常,一个管道由一个进程创建,然后该进程调用fork,此后父、子进程之间就可应用该管道。  管道是由pipe()函数创建的。fstat()函数对管道的每一端都返回一个FIFO类型的文件描述符,可以用S_ISFIFO宏来测试管道。  单个进程中的管道几

2021-03-19 15:32:32 155

原创 【APUE笔记】第十三章 精灵进程

文章目录1.简介2.编程规则1.简介  精灵进程(daemon)是生存期长的一种进程。它们常常在系统引导装入时起动,在系统关闭时终止。因为它们没有控制终端,所以说它们是在后台运行的。UNIX系统有很多精灵进程,它们执行日常事物活动。所有精灵进程都以超级用户(用户ID为0)的优先权运行。没有一个精灵进程具有控制终端—终端名称设置为问号(?)、终端前台进程组ID设置为-1。2.编程规则(1) 首先做的是调用fork,然后使父进程exit。这样做实现了下面几点:第一,如果该精灵进程是由一条简单shell命

2021-03-01 17:42:52 110

原创 华为云搭建web服务器(WordPress)

文章目录1.购买云服务器2.域名注册、实名认证、域名备案、DNS解析3.安装LNMP3.1.LNMP简介3.2.步骤4.配置LNMP5.配置安装WordPress1.购买云服务器  我用的是ubuntu20.04LTS系统。2.域名注册、实名认证、域名备案、DNS解析  按照官网流程一步一步来。3.安装LNMP3.1.LNMP简介  Linux+Apache+Mysql+PHP(LAMP)是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来

2021-02-23 23:25:35 934 1

原创 FL2440开发板Jlink操作

FL2440开发板主控芯片为S3C2440。H -> halt,停止CPU运行;J-Link>hspeed -> 设置 J-link的速率;J-Link>speed 12000loadbin -> 从本地硬盘加载文件到内存中去(SRAM和SDRAM)J-Link>loadbin D:\*******.bin 0 //加

2021-02-22 15:38:30 192

原创 五种网络I/O模型

文章目录综述1.同步阻塞IO(Blocking IO)综述  在Linux下进行网络编程时,常见同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式。  同步和异步的概念描述的是用户线程与内核的交互方式:  同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;  异步是指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会通知用户线程,或者调用用户线程注册的回调函数。  阻塞和非阻塞的概念描述的是用户线程调用内核IO操作的方

2021-02-20 20:45:42 151

原创 【APUE笔记】第十二章 高级I/O

文章目录1.非阻塞I/O2.记录锁2.1.fcntl记录锁1.非阻塞I/O  系统调用分成两类:低速系统调用和其他。低速系统调用是可能会使进程永远阻塞的一类系统调用:(1)如果数据并不存在,则读文件可能会使调用者永远阻塞(例如读管道,终端设备和网络设备)。(2)如果数据不能立即被接受,则写这些同样的文件也会使调用者永远阻塞。(3)在某些条件发生之前,打开文件会被阻塞(例如打开一个终端设备可能需等到与之连接的调制解调器应答;又例如若以只写方式打开FIFO,那么在没有其他进程已用读方式打开该FIFO时

2021-02-18 23:55:48 210

原创 浮点类型存储

文章目录1.简介2.单精度与双精度3.表示范围4.实际举例5.浮点数比较1.简介  对于浮点类型的数据采用单精度类型(float,4字节)和双精度类型(double,8字节)来存储。根据国际标准IEEE 754标准规定,无论是单精度还是双精度在存储中都分为三个部分:(1)符号位(Sign) : 0代表正,1代表为负(2)指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储(3)尾数部分(Mantissa):尾数部分2.单精度与双精度  float和double类型:(

2021-02-02 15:11:30 213 1

原创 计算机存储系统详解

文章目录1.计算机存储系统金字塔2.随机存储器RAM(Random Access Memory)2.1.动态随机存储器DRAM(Dynamic Random Access Memory)2.2.静态随机存储器SRAM(Static Random Access Memory)2.3.DRAM和SRAM对比3.地址线与编址4.CPU访问内存5.字长与总线5.1.字长5.2.总线6.内存编址6.1.内存扩容6.2.内存编址1.计算机存储系统金字塔金字塔越往上,速度越快,更小,成本更高。(1)寄存器、Cac

2021-01-31 19:32:16 1316

原创 【APUE笔记】第十一章 终端I/O

文章目录1.综述2.特殊输入字符3.获得和设置终端属性4.波特率函数5.行控制函数6.终端标识7.规范方式1.综述终端I/O有两种不同的工作方式:(1)规范方式输入处理。在这种方式中,终端输入以行为单位进行处理。对于每个读要求,终端驱动程序最多返回一行。(2)非规范方式输入处理。输入字符不以行为单位进行装配。终端设备的输入、输出队列的逻辑结构:(图片来自https://www.cnblogs.com/nufangrensheng/p/3575752.html)所有我们可以检测和更改的终端设备特

2021-01-31 15:53:40 273

原创 【APUE笔记】第十章 信号

1.信号  信号是软件中断。每个信号都有一个名字。这些名字都以三个字符SIG开头。在头文件<signal.h>中,这些信号都被定义为正整数(信号编号)。没有一个信号其编号为0。很多条件可以产生一个信号:(1)当用户按某些终端键时,产生信号。在终端上按DELETE键通常产生中断信号(SIGINT)。这是停止一个已失去控制程序的方法。(第11章将说明此信号可被映射为终端上的任一字符。)(2)硬件异常产生信号:除数为0、无效的存储访问等等。这些条件通常由硬件检测到,并将其通知内核。然后内核为

2021-01-29 23:33:04 136

原创 【APUE笔记】第九章 进程关系

1.getpgrp函数  进程组是一个或多个进程的集合。每个进程组有一个唯一的进程组ID。进程组ID类似于进程ID——它是一个正整数,并可存放在pid_t数据类型中。函数getpgrp返回调用进程的进程组ID。  每个进程组有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID。  进程组组长可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中有一个进程存在,则该进程组就存在,这与其组长进程是否终止无关。从进程组创建开始到其中最后一个进程离开为止的时间区间称为进程组的生命期。某个进

2021-01-28 12:33:03 109

原创 【APUE笔记】第八章 进程控制

1.fork函数  功能:一个现存进程调用fork函数是UNIX内核创建一个新进程的唯一方法(这并不适用于前节提及的交换进程、init进程和页精灵进程。这些进程是由内核作为自举过程的一部分以特殊方式创建的)。  由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新子进程的进程ID。将子进程ID返回给父进程的理由是:因为一个进程的子进程可以多于一个,所以没有一个函数使一个进程可以获得其所有子进程的进程ID

2021-01-26 17:57:09 219

原创 【APUE笔记】第七章 UNIX进程的环境

1.main()函数int main(int argc, char *argv[]);//或者以下int main(int argc, char **argv);argc为命令行参数的数目,argv是指向参数的各个指针所构成的数组。2.进程终止  有5种方式使进程终止:(1)正常终止(a)从main返回(b)调用exit©调用_exit(2)异常终止(a)调用abort(b)由一个信号终止  exit和_exit函数用于正常终止一个程序:_exit立即进入内核,exit则先执行一

2021-01-24 23:42:33 111

原创 【APUE笔记】第六章 系统数据文件和信息

1.getpwuid()和getpwnam()函数  功能:存取口令文件中信息。2.getpwent()、setpwent()和endpwent()函数查看整个口令文件

2021-01-24 15:34:08 128

原创 【APUE笔记】第五章 标准I/O库

  标准I/O库是在系统调用函数基础上构造的。1.三种缓存ANSI C要求下列缓存特征:(1) 当且仅当标准输入和标准输出并不涉及交互作用设备时,它们才是全缓存的。(2) 标准出错决不会是全缓存的。1.1全缓存  在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。对于驻在磁盘上的文件通常是由标准I/O库实施全缓存的。在一个流上执行第一次I/O操作时,相关标准I/O函数通常调用malloc获得需使用的缓存。1.2行缓存  在这种情况下,当在输入和输出中遇到新行符时,标准I/O库执行I/

2021-01-23 22:07:43 125

原创 【APUE笔记】第四章 文件和目录

1.stat、fstat 和lstat 函数  功能:给定一个pathname,stat函数返回一个与此命名文件有关的信息结构,fstat函数获得已在描述符filedes上打开的文件的有关信息。lstat函数类似于stat,但是当命名的文件是一个符号连接时,lstat返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息。#include <sys/types.h>#include <sys/stat.h>int stat(const char *p a t h n a

2021-01-23 15:40:07 134

原创 【APUE笔记】第三章 文件I/O

  大多数UNIX文件I/O只需用到5个函数:open()、read()、write()、lseek()以及close()。1.原子操作  现代操作系统中,一般都提供了原子操作来实现一些同步操作,所谓原子操作,也就是一个独立而不可分割的操作。在单核环境中,一般的意义下原子操作中线程不会被切换,线程切换要么在原子操作之前,要么在原子操作完成之后。更广泛的意义下原子操作是指一系列必须整体完成的操作步骤,如果任何一步操作没有完成,那么所有完成的步骤都必须回滚,这样就可以保证要么所有操作步骤都未完成,要么所有操

2021-01-16 23:50:51 145

原创 【APUE笔记】第二章 UNIX标准化及实现

1.POSIX  计算机环境的可移植操作系统界面POSIX(Portable Operating System Interface for Computer Environment),是一个由IEEE制定的标准族。

2021-01-16 13:24:33 91

原创 【APUE笔记】第一章 UNIX基础知识

1.文件描述符  文件描述符是一个小的非负整数,内核用以标识一个待定进程正在存访的文件。当内核打开一个现存文件或创建一个新文件时,它就返回一个文件描述符。当读、写文件时,就可以使用它。2.不用缓存的I/O  函数open、read、write、lseek以及close提供了不用缓存的I/O。这些函数都用文件描述符进行工作。3.标准I/O  标准I/O函数提供一种对不用缓存的I/O函数的带缓存的界面。使用标准I/O无需担心如何选取最佳的缓存长度。4.程序  程序是存放在磁盘中的可执行文件。使用6

2021-01-15 23:21:16 104

原创 【FPGA】有限状态机(FSM)的设计

有限状态机,也称为FSM(Finite State Machine),其在任意时刻都处于有限状态集合中的某一状态。当其获得一个输入字符时,将从当前状态转换到另一个状态,或者仍然保持在当前状态。1.One-hot编码的FSM One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有...

2020-04-21 23:37:34 868

原创 【FPGA】verilog实现ALU(算数逻辑单元)

算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU。module ALU(A, B, Cin, Sum, Cout, Operate, Mode); input [3:0] A, B; // two operands of ALU input Cin; //carry in at the LSB input [...

2020-04-14 10:53:32 7698 6

原创 电信光猫管理员登入

1.打开telnet功能打开浏览器,并在地址栏输入:192.168.1.1:8080/cgi-bin/telnetenable.cgi?telnetenable=12.使用secureCRT登陆光猫服务器选择连接形式:telnet主机名:192.168.1.1端口:23用户名:root默认密码:无线网络密钥(光猫底部贴纸)+默认终端配置密码(光猫底部贴纸) 的组合...

2020-04-08 10:13:05 15413 2

原创 【Linux】Ubuntu19.10 vim安装问题

今天新装ubuntu19.10,发现vim安装不了,报错如下:正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件包尚未被创建或是它们已被从新到(Incoming)目录移...

2020-02-21 15:31:59 716

原创 【Linux】c语言多线程编程笔记

线程简介 每个进程都拥有自己的数据段、代码段和堆栈段,这就造成进程在进行创建、切换、撤销操作时,需要较大的系统开销。为了减少系统开销,从进程中演化出了线程。 线程存在于进程中,共享进程的资源。 线程是进程中的独立控制流,由环境(包括寄存器组和程序计数器)和一系列的执行指令组成。 每个进程有一个地址空间和一个控制线程。...

2019-10-14 20:44:51 262 1

原创 【FPGA】Quartus设置程序掉电保存

板载芯片:ALTERAEP4CE10F17C8下载方式:JTAG1.File->Convert Programming File2.选择芯片型号3.配置SOF Data4.点击Generate生成5.下载程序,FPGA掉电程序不被丢失先删除原有文件,然后将后面两个方框打勾最后点击Start下载程序到FPGA,如果需要擦除,将勾选取消...

2019-05-26 14:43:43 5726

原创 stm32f103 USART串口简单实现

(基于奋斗stm32_v5开发板)1、创建工程并编写C程序#include"stm32f10x.h"#include"stdarg.h"void USART1_Config(){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* 使能USART1的时钟 */ RCC_A...

2018-04-17 14:55:35 10505

原创 stm32f103按键中断实现方法

(基于奋斗stm32_v5开发板)#include"stm32f10x.h"void LED_GPIO_Config(){ /*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure; /*开启GPIOB的外设时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,...

2018-04-08 17:10:53 7936 1

原创 stm32f103按键轮询实现方法

(基于奋斗stm32_v5开发板)#include"stm32f10x.h"#define ON 1#define OFF 0void LED_GPIO_Config(){ /*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure; /*开启GPIOB的外设时钟*/ RCC_APB2PeriphCl...

2018-04-06 18:48:28 2562

原创 stm32f103 LED灯简单程序实现

(基于奋斗stm32_v5开发板)1.创建工程之配置库文件2.编写main.c代码#include"stm32f10x.h"#define ON 1#define OFF 0#define DELAY_TIME 0x3FFFFFenum { LED1 = 0, LED2, LED3, MAX_LED,};typedef st...

2018-03-30 20:04:57 13570

空空如也

空空如也

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

TA关注的人

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