- 博客(36)
- 收藏
- 关注
原创 在ros2上使用opencv显示一张图片
5.进入/home/kong/opencv_ws/opencv_use/src目录创建.cpp文件并编辑。2.打开终端ctrl+alt+T,查看自己是否已安装opencv。4.进入工作目录并创建ROS2包添加OpenCV依赖项。1.先将图片放到桌面上。
2025-04-15 20:00:12
233
原创 linux系统移植---有关于tftp服务
网络文件系统作用:开发板启动linux系统之后,通过网络的方式从ubuntu服务中挂载根文件系统,也就是说将开发板的文件系统放到ubuntu服务器中,让开发板通过NFS的方式挂载根文件系统,这种文件系统就是网络文件系统。
2024-12-06 21:33:20
903
原创 SPI总线的接口
在时钟的上升沿时,主机向MOSI数据线上写入数据,从机向MISO数据线上写入数据,此时MOSI和MISO数据线上的数据可以改变;在时钟的下降沿时,主机从MISO数据线上读取数据,从机从MOSI数据线上读取数据,此时MOSI和MISO数据线上的数据必须保持稳定。MOSI及MISO数据线在SCK的每个时钟周期传输一个bit位数据,且数据输入输出是同时进行的。由CPOL及CPHA的不同状态,SPI分成了四种模式,主机与从机需要工作在相同模式下才可以正常通讯,因此通常主机要按照从机支持的模式去设置。
2024-12-02 19:59:29
1291
原创 信号灯集以及 P V 操作
0号灯有资源,相应的A进程就可以去执行共享内存的写操作。1号灯有资源,相应的B进程就可以去执行共享内存的读操作。信号灯集创建后,在信号灯集内部会有很多个信号灯。比如A进程监视0号灯,B进程监视1号灯。每个信号灯都可以理解为是一个信号量。信号灯集是进程间同步的一种方式。1.2 信号灯集的API接口分析。信号灯的编号是从0开始的。1.1 信号灯集的概念。
2024-12-01 18:28:27
235
原创 分析 系统滴答时钟(tickClock),设置72MHz系统周期,如何实现1毫秒的系统时间?
一、CubeMX相关配置1.1 相关引脚配置1.2相关时钟数配置1.3打开程序源码二、相关函数分析
2024-11-30 20:51:03
302
原创 进程间通信、无名管道、有名管道
线程通信通过全局变量即可。进程间通信是相互独立的,但是所有进程都共用一份内核空间,所以进程和进程之间的通信可以通过内核去进行。
2024-10-15 22:09:05
1022
原创 线程相关知识点
线程是轻量级的进程。线程不会单独分配内存空间,线程共用进程的资源。线程之间通信比较方便,但是不安全。多线程没有多进程安全。多线程效率比较高。线程创建比较快,公用进程的资源。线程上下文的切换比较迅速,因为线程占用的内存资源少。多进程比较浪费资源,多线程节省资源。每一个进程中,最少有一个线程,叫做主线程。线程使用的是第三方库,需要添加#include<pthread.h>头文件,在编译的时候,需要添加 -lpthread参数。
2024-10-14 22:45:49
368
原创 进程相关。
0号进程:又叫做空闲进程,当系统上没有任何程序运行时,就运行0号进程。进程是有生命周期的,随着程序的启动而启动,随着程序的终止而终止,是动态变化的(进程终止不代表进程死亡)。子进程结束后,父进程没结束,且父进程没有为子进程回收资源(调用wait函数),此时子进程就是僵尸进程。进程和进程之间是相互独立的,比如每个进程都会有自己的文件描述符,都会有自己的缓冲区。进程的创建是通过拷贝其父进程的资源完成的,子进程的所有资源都来自于他的父进程。程序的每次执行会产生一个进程,进程的本质是存储在内存上的。
2024-10-12 20:41:04
726
原创 库的相关使用
库是由.c文件编译生成的二进制文件。库的内部就是各种函数的实现。windows中库的格式:xxx.dll -- 动态库xxx.lib -- 静态库linux中库的格式:libxxx.a --- 静态库libxxx.so --- 动态库。
2024-10-11 21:21:35
951
原创 IO相关,标准输入输出及错误提示
操作系统的概念:向下统筹控制硬件,向上为用户提供接口。操作系统的组成 = 内核 + 外壳(shell)linux的五大功能:进程管理、内存管理、文件管理、设备管理、网络管理。最早接触的IO:printf -- 标准输出scanf -- 标准输入。
2024-10-09 19:58:40
780
原创 结构体、共用体、Makefile
C++的结构体中允许定义函数,但是C语言中不允许,C语言的结构体中可以有函数指针return x+y;int id;int score;//定义函数指针}Test_t;Test_t t;//让函数指针指向函数//通过函数指针调用函数return 0;结果:501.4 结构体对齐----------------------------------32位系统------------------------------------------------
2024-09-20 20:39:24
992
原创 动态内存分配malloc 结构体
struct 结构体类型名 结构体变量名;4.3 结构体类型定义指针struct 结构体类型名 *结构体指针名;4.4 结构体访问成员的方式4.4.1 结构体变量访问成员变量名成员名int id;4.4.2 结构体指针访问成员指针名成员名//定义一个结构体类型int id;//定义结构体变量,此时操作系统才会给s1分配内存return 0;结果://定义一个结构体类型int id;//定义结构体变量,此时操作系统才会给s1分配内存。
2024-09-19 21:35:37
1221
原创 求助帖--shell脚本
为什么我执行这个脚本之后,明明家目录里面没有file_dir和dir_dir文件,if [ -e $fire_dir ]还会判断为真?1.判断用户的家目录($HOME)下是否存在 file_dir 这个目录文件。2.判断用户的家目录($HOME)下是否存在 dir_dir 这个目录文件。如果存在,则询问用户是否清空,如果用户输入的是Y,则清空该目录文件。如果存在,则询问用户是否清空,如果用户输入的是Y,则清空该目录文件。将该路径下的所有目录文件都拷贝到 dir_dir 中。如果不存在,则新建该目录文件。
2024-09-17 23:02:49
239
原创 Shell相关命令
其中 表达式的用法 和 if..else 语句的表达式用法一模一样。相当于 switch..case 语句的 default分支。功能:将单词列表转换成一个可供用户选择的列表,方便用户操作。2.每个选项中的字符串就是case后面变量所有可能的结果。只有同一组的硬链接文件 inode 号才相同。上述四种运算方式,执行的效率是依次递减的。-ef 相同为真 不同为假。
2024-09-14 21:26:59
2243
原创 Linux相关命令的使用
通用的解压缩解归档的命令:tar -xvf hqyj.tar.(gz/bz2/xz) //()里面的内容三选一。find 路径 -type f | grep "\.c$" | wc -l //统计指定路径下.c 文件的个数。tar -Jcvf hqyj.tar.xz hqyj //将目录 hqyj 及其子目录下的内容归档并。wc -l file //(小写的L)统计文件的行数-----line //比较常用。tar -xvf 归档后的文件名(要解归档的文件名) //将归档后的文件进行。
2024-09-12 21:03:47
1142
原创 Linux下载软件及卸载
--------------------系统调用-----------------------------点击左下角的显示应用程序----》软件更新器----》设置----》Ubuntu软件选项卡----》----》勾选所有的复选框(尤其是源代码哪一项)----》点击下载自后面的下拉箭头----》----》选择其他中的中国中的 阿里云 的镜像服务器即可---》点击关闭---》等待即可。----段错误之后程序崩溃,但是系统不会崩。3、文件管理:-----将一堆 0 1 转换成方便人类识别的内容。
2024-09-11 19:28:29
1177
原创 (Linux)嵌入式打卡第十一天
概念:指针数组的本质是一个数组,只不过数组里面的每一个元素都是指针;定义格式:数组类型 *数组名[成员个数];eg://定义一个数组,数组里面的每一个元素都是 int * 类型概念:数组指针本质上是一个指针,这个指针指向的是一个数组;数组指针定义个数:数据类型 (*变量名)[成员个数];eg://arr在 &运算符的时候表达的是整个数组概念:一级指针也是一个变量,定义在内存中,一级指针就会有一个地址。保存一级指针的地址的指针,就称之为二级指针;
2024-09-09 19:46:18
548
原创 (Linux)嵌入式打卡第九天
地址:在arm架构的计算机中,地址是一块连续的空间。地址中的每一个字节都有一个编号,这个编号就称之为地址。指针:指针是一个数据类型指针变量:本质是一个变量,变量里面存地址。在后续学习中,工作中,以上三个概念统称为指针。格式:<数据类型> *指针名 = value;| | | |-------->地址| | |---------------->变量名:符合变量的命名规则| |-------------------->*是一个指针的标识。
2024-09-05 19:44:32
645
原创 (Linux)嵌入式打卡第五天
格式:<存储类型> <数据类型> 数组名[行数][列数];注意:存储类型:默认为autoeg://定义了一个2行3列的二维数组// 每个元素都是int型。
2024-09-03 18:55:14
415
原创 (Linux)嵌入式打卡第五天
格式:if (条件)code1;elsecode2;语法含义:判断condition条件是否成立。如果条件为真:执行code1的代码;如果条件为假:执行code2的代码。
2024-09-02 19:04:53
483
原创 (Linux)嵌入式打卡第四天
C语言库提供了三套输入输出函数,C库输入输出必须添加头文件 #include <stdio.h>printf() 和 scanf()putchar() 和 getchar()puts() 和 gets()C语言程序结构有三种:顺序结构:从上到下,从左到右,依次执行。分支结构(选择结构):判断语句: if switch循环结构:while do ...while for。
2024-08-30 19:18:26
1062
原创 (Linux)嵌入式打卡第四天
依次执行表达式1,表达式2,表达式3,表达式4,运算符的结果是 表达式4 的结果。大于 > 小于 < 等于 == 大于等于>= 小于等于 <= 不等于!+= , -=, *=, /=, =(赋值), %=, >>=, <<=除法 /:C语言中/的意思是整除,计算机中数比可以进行 /0 操作的。int number = (表达式1,表达式2,表达式3,表达式4);与运算符是一个二进制运算符,&与运算符需要使用二进制进行运算。前提:计算机中,必须是相同类型的数据,才可以进行运算。number = 4;
2024-08-29 20:34:28
932
原创 (Linux)嵌入式打卡第三天
概念:程序运行中,可以发生改变的量。在内存中,申请空间。变量的声明:格式:<存储类型> <数据类型> 变量名;eg:char ch;//声明一个名为ch的char类型变量变量的定义:格式:<存储类型> <数据类型> 变量名 = value;//在内存中有一个空间,空间名叫number,里面的值是10标识符:标识符就是程序员自定一个符号,可以是变量名,函数名……标识符由数字,字母,下划线组成,但数字不能开头。标识符不可以和关键字重合。
2024-08-28 19:22:10
737
原创 (Linux)嵌入式打卡第二天
默认进入命令行模式,按 i 进入插入模式。插入模式 按ESC 进入命令行模式。vim编辑区分为:文本编辑区,文件名,底行命令编辑区,命令编辑区。
2024-08-27 19:59:57
673
原创 Linux终端及命令
linux -> 当前用户名(whoami)@ : 间隔符kong -> 主机名~ -> 当前所在的路径用户家目录:/home/linux。
2024-08-26 19:44:32
1300
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人