- 博客(49)
- 收藏
- 关注
转载 matlab卡在启动页面或闪退问题
删除安装包下的network.lic文件。matlab在启动的过程中,如果存在network.lic,会不断地访问网络,即使没有联网也会不断尝试,因此拖慢了启动速度。该文件的位置在安装位置的licenses文件夹下,如图所示。建议,如果安装完matlab有该文件的小伙伴。
2022-10-08 01:05:07
2266
原创 QT使用以及定时器
创建函数以及引用库时要在widget.h中的private slots:中声明。信号的发起者btn1, 发出信号 主窗口this, 实现 关闭(槽函数)定时器 都是设置好一个时间开始倒数。connect用于对某些不能使用。QByteArray字符组类。第二种:QObject。QString字符串。第一种:QTimer。
2022-09-27 03:30:32
456
转载 Linux 文件服务系统
项目功能: 实现了对文件的远程访问,远程传输的功能。类似于 tftp 服务器。 开发及硬件组成:Linux,pc机,arm 开发板 项目描述:实现 Linux 文件服务端的开发,Linux 客户端的开发。主要使用 Linux 系统网络编程技术,当有新客户端介入时,创建一个子进程与客户端对接,实现基本的读取文件列表,获取文件,放入文件等操作。这么设计能同时支持并管理多个客户端的接入,不会因为一个客户机的退出而对其他客户机造成影响。
2022-09-13 15:49:05
239
原创 vue 一个文件引用另外一个文件的数据
vue 一个文件引用另外一个文件的数据第一个文件第一个文件获取数据库数据第二个文件引用第一个文件的数据引用
2022-07-05 09:30:54
997
原创 建一个array数组存放数据,通过foreach循环将数据写入到数组中
建一个array数组存放数据,通过foreach循环将数据写入到数组中使用ref="moctgDetails"与that.$refs.moctgDetails配合获取另外一个vue中的数据方法v-model=“attribute[index]”
2022-07-04 14:21:58
325
原创 easyexcel用法
参考https://www.yuque.com/easyexcel/doc/read以及https://github.com/alibaba/easyexcel
2022-05-29 21:55:50
111
原创 老毛子的二级路由,通过无线中继方式设置与主路由在同一网段
以极路由作为示例root过程各有不同step3开始其他路由器也适用**Step1:**路由器复位,有线/无线连接路由器进入后台(192.168.199.1/hiwifi.com),设置WiFi联网**Step2:**极路由ROOT local-ssh利用工具 (hiwifi.wtf)提交就会得到一个端口号**Step3:**使用winSCP连接路由器进行文件传输,将(breed-mt7620-hc5761.bin)breed扔进tmp文件夹**Step4:**打开putty配置连接进行命令操
2022-01-16 23:40:36
6659
转载 链表定义、链表的插入、链表的删除、链表的查找
链表的定义链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束。结构体形式struct test
2021-04-28 03:01:04
298
转载 IO口操控代码
查看内存cat /proc/meminfo查看cpucat /proc/cpuinfo我们在编写驱动程序的时候,IO空间的起始地址是0x3f000000,加上GPIO的偏移量0x2000000,所以GPIO的物理地址应该是从0x3f200000开始的,然后在这个基础上进行Linux系统的MMU内存虚拟化管理,映射到虚拟地址上。底层驱动代码#include <linux/fs.h> //file_operations声明#include <linux/mo
2021-04-28 02:01:19
249
转载 基于框架编写驱动代码
操作驱动的上层代码(pin4test)#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>void main(){ int fd,data; fd = open("/dev/pin4",O_RDWR); if(fd<0){ printf("open fail
2021-04-27 20:44:39
169
原创 驱动认知
用户态App:cp指令,ftp的项目等等这就是App的开发。App开发需要C的基础和C库,C库讲到文件,进程,进程间通信,线程,网络,界面(GTk)。C库(是linux标准库一定有):就是Clibary,提供了APP支配内核干活的接口,调用的open,read,write,fork,pthread,socket由此处封装实现,由写的应用程序调用,C库中的各种API调用的是内核态,支配内核干活内核态进程,内存,线程,网络,设备驱动不需要上层应用开发者关心,驱动在前面的学习是调用wringpi库实现,
2021-04-27 20:31:05
324
原创 文件系统认知
什么是文件系统?常规认知: 根目录文件系统是操作系统用于明确存储设备组织文件的方法。以上说的方法:就是文件管理系统(程序),简称文件系统文件系统(文件管理系统的方法)的种类有哪些?FAT VFAT NTFS EXT1/2/3/4 HFS …树莓派查看文件系统的命令: df -Tvfat : boot(bootloader, kernel)ext4 : 根目录tmpfs : 内存文件系统什么是分区?Linux: 按照功能来分区,每个分区严格存放文件(开发者)嵌入式系..
2021-04-27 20:08:20
149
原创 树莓派Linux源码配置以及树莓派Linux内核编译
1驱动代码的编译需要一个提前编译好的内核>编译内核就必须配置>配置的最终目标会生成 .config文件,该文件指导Makefile去把有用东西组织成内核参考文档https://blog.youkuaiyun.com/nicekwell/article/details/78482833对于我们要用到的有两个仓库:查看树莓派的版本下载对应版本uname -rhttps://github.com/raspberrypi/linux 内核源码https://github.com/raspberr
2021-04-27 19:53:06
312
原创 交叉编译
交叉编译 是在一个平台上生成另一个平台上的可执行代码。编译:是在一个平台上生成在该平台上的可执行代码宿主机(host) :编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。目标机(target):用户开发的系统,通常都是非X86平台。host编译得到的可执行代码在target上运行。交叉编译工具链的安装https://github.com/raspberrypi/解压unzip tools-master.zip cd /tools-master/arm-bcm2708/gcc
2021-04-25 23:32:51
224
原创 jetson nano 部署
下载地址https://developer.nvidia.com/zh-cn/embedded/downloads使用一张大于64g的内存卡格式化并且烧写系统(烧写时使用管理者模式)烧写软件下载地址https://www.balena.io/etcher/烧写完成后进行配置安装和测试DeepStream...
2021-04-24 23:07:45
438
原创 人脸识别
基于上一篇文章实现人脸识别识别平台为翔云#include <stdio.h>#include <curl/curl.h>#include<string.h>#include <stdlib.h>#include <sys/types.h> #include <sys/stat.h>#include <fcntl.h>#define true 1#define false 0typede
2021-04-20 15:14:08
108
原创 Http协议之libcurl实现
Http协议之libcurl实现http协议之详解http协议之httpshttp协议之libcurl参考博文https://www.cnblogs.com/xietianjiao/p/13260021.htmllibcurl库下载https://github.com/curl/curl/releases/tag/curl-7_71_1openssl安装https://blog.youkuaiyun.com/weixin_38184741/article/details/86554438wget ht
2021-04-20 15:08:05
315
原创 Source Insight 4使用手册
得到软件后导入项目技巧:在原有的code文件夹下再创建一个si文件夹并且命名一个名字到这一步要把代码加载进来选择code文件夹,点击add all,加载加载成功r如果没有右边的文件栏的话可以进行下面的操作如果出现乱码可以进行下面设置里面选择国家下面方法可以永久最后所有文件进行同步到了这一步我们就可以对其各种骚操作了...
2021-04-15 14:01:14
294
转载 Linux库概念及相关编程
分文件编程案例好处:分模块的编程思想网络 a超声波b电机ca.功能责任划分b.方便调试c.主程序简洁分文件编程(把里面的函数单独提出来到一个文件里面)需要三个基本文件Main.c 函数可以全部去掉并且放到Fun.c里面,引用#include”Func.h”Fun.cFunc.h 只需要函数名库 (就是主要对func.c进行操作的,别人就不知道你的函数写了是啥)https://www.cnblogs.com/sunsky303/p/7731911.htmlhttps
2021-04-14 09:47:13
85
原创 树莓派开发文档笔记—基础配置
1.树莓派刷机2.树莓派登录2.1HDMI视频线 连接到显示器2.2串口 2.2.1设备破解默认情况,树莓派的串口和蓝牙连接。想办法断开蓝牙连接,把串口用来数据通信https://blog.youkuaiyun.com/syjsxxjy/article/details/80774262a.观看树莓派的启动过程,字符b.串口登录树莓派2.2.2默认账号:pi默认密码:raspberry2.3通过网络登录树莓派2.3.1让树莓派入网修改https://blog.youkuaiyun.com/qq_36
2021-04-13 23:08:06
171
原创 socket服务端与客户端进行通信
使用socket编程实现双端的收发功能突破口1:因为使用while不断检测检测客户端,read,write要使用三个进程fork两次read,write要使用两个进程fork一次突破口2:要使用memset(msg,0,sizeof(msg));进行数据的清空突破口3:服务器端server.c#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<netine
2021-03-28 21:12:05
300
原创 线程条件控制实现线程的同步
概念条件变量是线程另一可用的同步机制。条件变量给多个线程提供了一个会合的场所。条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定的条件发生。用法第一步全局定义一个pthread_cond_t类型pthread_cond_t cond;第二步在主函数创建及销毁条件变量#include <pthread.h>int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restri
2021-03-27 17:42:38
115
原创 在linux下自动测试程序
代码:int main(int argc, char **argv){ int time = atoi(argv[1]);//次数 int i; for(i=0;i<time;i++){ //运行测试的代码 system("./demo"); }}运行:./a.out 10 >>test.ret.txt &可自动生成运行结果并且写入到txt文本中...
2021-03-27 16:39:41
291
原创 线程同步之互斥量加锁解锁并且互斥锁限制共享资源的访问
概念互斥量(mutex)从本质上来说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变为可运行状态的线程可以对互斥量加锁,其他线程将会看到互斥锁依然被锁住,只能回去等待它重新变为可用。在这种方式下,每次只有一个线程可以向前运行。用法第一步全局定义一个pthread_mutex_t类型pthread_mu
2021-03-27 15:41:19
258
原创 线程创建等待及退出
思路防止线程还没有处理完主进程就退出因此要使用在线程中static char *p = "t1 run out";pthread_exit((void *)p);在主函数中char *pret = NULL;pthread_join(t1,(void *)&pret);主进程运行到pthread_join时会等待线程的pthread_exit返回才会继续进行主进程的运行代码演示#include<stdio.h>#include<pthread.h>
2021-03-26 00:25:53
117
原创 信号量
它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享。信号量工作原理由于信号量只能进行两种操作等待和发送信号,即P(sv)和V(sv),他们的行为是这样的:(1)P(sv):如果sv的值大于零,就给它减1;如果它的值为零,就挂起该进程的执行(2)V(sv):如果有其他进程因等待sv而被挂起,就让它恢复运行,如果没有进程因等待sv而挂起,就给它加1.在信号量进行PV操作时都为原子操作(因为它需要保护临界资源)核心代码 :释放等待 if((pid =
2021-03-25 16:58:12
184
原创 信号编程
信号接受函数#include<signal.h>#include<stdio.h>#include <unistd.h>//typedef void (*sighandler_t)(int);void handler(int signum){ switch(signum){ case SIGIO: printf("SIGIO signal: %d\n", signum); case SIGUSR1: printf("SIGUSR1
2021-03-24 14:33:51
108
原创 共享内存
整体优势能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了同一进程内的一块内存特点共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。因为多个进程可以同时操作,所以需要进行同步。信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问。#include <sys/shm.h>// 创建或获取一个共享内存:成功返回共享内存
2021-03-24 02:08:59
147
原创 消息队列
消息队列1 、消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制2、消息队列跟命名管道有不少的相同之处,通过与命名管道一样,消息队列进行通信的进程可以是不相关的进程,同时它们都是通过发送和接收的方式来传递数据的。在命名管道中,发送数据用write,接收数据用read,则在消息队列中,发送数据用msgsn
2021-03-23 16:26:41
136
原创 无名管道的用法
无名管道的用法父进程 pid>0close(fd[0]);write(fd[1],"hello from father\n",128);子进程 pid=0close(fd[1]);read(fd[0],buf,128);#include<stdio.h>#include<unistd.h>int main(){ int fd[2]; int pid; char buf[1280]; if(pipe(fd) == -1){ printf("pip
2021-03-18 23:15:38
289
原创 popen结合fread进行子进程内容的输出
popen可以读取子进程中运行的结果并且输出出来而execl,system不行#include<stdio.h>#include<unistd.h>#include<stdlib.h>int main(){ int nread = 0; char ret[1024]={0}; FILE *fp; fp = popen("ps","r"); nread = fread(ret,1,1024,fp); printf("read %d byte,ret=
2021-03-18 21:37:20
1204
原创 exec函数配合fork使用进行修改配置文件
需要三个文件1.config.txt2.changeData.c3.demo.cconfig.txt:a=10b=1LENG=5changeData.c#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdio.h>#include<unistd.h>#include<string.h>#include<st
2021-03-17 23:13:56
187
原创 父进程等待子进程退出
先会运行子进程 检测到了exit(3)返回参数3再运行父进程#include<stdio.h>#include<sys/types.h>#include<unistd.h>#include<stdlib.h>int main(){ pid_t pid; int cnt = 0; int status = 10; pid = fork(); if(pid > 0){
2021-03-17 11:41:14
147
原创 写一个整数到文件
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>int main(){ int fd; int a = 10; int b; fd
2021-03-16 09:55:39
120
原创 修改程序的配置文件
修改文件可以对其进行封装成函数#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>int main( int argc, char **argv){ //传入一个文件 int fd
2021-03-15 22:09:43
245
原创 使用c完成linux的cp功能
使用c完成linux的cp功能#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>int main( int argc, char **argv){ int fdSrc;
2021-03-15 18:57:01
144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人