自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vscode ssh连接ubantu显示管道不存在,VMware Virtual Ethernet Adapter for VMnet8不存在

2、查看网络适配器发现没有VMware Virtual Ethernet Adapter。3、设备管理器中VMware Virtual Ethernet Adapter带感叹号。4、主机ping ubantu无法ping通,但ubantu可以上网。1、首先是vscode ssh连接ubantu失败显示管道不存在。重启虚拟机,勾选将主机虚拟虚拟适配器连接到此网络然后应用即可。主机能ping通虚拟机即可,再次做ssh连接即可成功。大概率原因是因为你有太多无用注册表,需要清理。

2025-03-25 21:30:04 182

原创 Rk3568驱动开发_设备树点亮LED_10

在设备树文件中添加led节点,添加完后需要重新编译内核,因为单独编译这个设备树文件生成的dtb文件目前不能直接做替换,所以要编译内核将编译好的boot.img文件烧录到设备里,boot.img里包含新添加的设备树节点,注意zboot.img没有设备树。

2025-03-24 21:29:29 239

原创 Rk3568驱动开发_设备树_9

{ 为根节点,代表设备树的起点,compatible:这是设备树中非常重要的属性,用于标识设备的兼容性,“rockchip,rk3568-evb1-ddr4-v10”:这是第一个兼容性字符串,表示该设备树描述的是 Rockchip RK3568 的开发板 EVB1 DDR4 V10 版本。外设设备:reg 属性包含地址和大小部分,因为外设设备的寄存器区域需要定义一个地址范围,以便内核能够正确地访问这些寄存器。<0x0 0x100>:这是一个由两个单元组成的地址值,每个单元是 32 位(4 字节)。

2025-03-20 17:08:33 865

原创 计算机组成相关知识

它的宽度决定了一次可以传输的数据量,比如32位数据总线一次可以传输4个字节的数据。重要性:控制总线用于传输控制信号,这些信号指导和同步系统中各部件的操作。作用:数据总线是系统中数据流通的通道,无论是从内存读取数据还是向内存写入数据,或是与外设交换数据,都需要通过数据总线进行。作用:在访问内存或外设时,CPU通过地址总线发送地址信息,以确保数据可以被正确地发送到或从指定位置读取。作用:控制总线使得CPU能够控制内存和外设的操作,如发起读操作或写操作,以及处理中断等。控制总线(Control Bus,CB)

2025-03-18 21:23:02 376

原创 vscode错误:Unable to connect to VS Code server: Error in request.

【代码】vscode错误:Unable to connect to VS Code server: Error in request.

2025-03-13 09:06:46 122

原创 vscode通过ssh远程连接(linux系统)不能跳转问题

注意:有网的条件下主机下载插件后ubantu会相应下载不用移植,没有网络的条件下,需要将下载好的插件移植到unbantu的对应上述目录就可以使用。

2025-03-03 13:06:00 571

原创 Rk3568驱动开发_自动创建设备节点_8

在 Linux 驱动开发中,通过 class_create 和 device_create 函数自动在 /dev 下创建设备节点的过程,本质上是利用了内核的 sysfs 文件系统 和 udev 用户空间守护进程 的协同机制。调用 class_create 会为设备驱动创建一个类(Class),该类的信息会被注册到 /sys/class 目录下。例如,代码中 NEWCHRLED_NAME 对应的类会在 /sys/class 下生成一个同名目录(如 /sys/class/newchrled)

2025-03-01 21:18:56 555

原创 Rk3568驱动开发_新字符设备驱动原理_7

如果指定主设备号则。

2025-02-28 22:41:41 304

原创 Rk3568驱动开发_点亮led灯代码完善(手动挡)_6

open函数在驱动中属于可选实现,而write/read等函数则是必须实现的。由于最开始设备led灯会闪烁,应该是有这个驱动用echo 0 > /sys/class/leds/work/brightness命令关闭后再挂载驱动。驱动的.open函数是设备初始化的入口,但不影响文件描述符的分配机制。文件描述符的返还是内核的默认行为,仅当驱动.open返回错误时,内核会撤销分配。配置和读写操作的时候要谨慎,比如先关掉gpio再注销掉虚拟内存否则照成内存泄漏设备直接死机(别问我怎么知道的)

2025-02-26 21:50:22 531

原创 Rk3568驱动开发_点亮led灯(手动挡)_5

stm32没有这个MMU其控制gpio直接操作寄存器就行,在linux上由于这个内存映射在,需要知道真实物理地址,反推其虚拟地址才能像stm32一样操作寄存器。

2025-02-26 20:30:45 420

原创 Rk3568驱动开发_完善字符驱动_4

用户层在调用open函数打开设备节点后,应用层上的write和read函数调用的是我们自己实现的驱动函数,同理在linux操作系统上调用write和read函数去操作txt文件的时候调用的是系统实现的函数应用层没办法直接读取或写入数据到内核里,所以要借助接口函数copy_to_user、copy_from_user函数去做app层往内核写数据要注意安全严谨,容易发生缓冲区溢出。

2025-02-25 22:45:33 360

原创 Rk3568驱动开发_驱动实现流程以及本质_3

Linux中为何一切皆文件?open函数打开txt文件调用的是读取txt文件的函数,open函数打开串口是调用串口的驱动函数,打开chrdevbase文件就是调用我们自己写的驱动函数,也就是说每一个设备都有其对应的实现驱动模块,open打开他的时候就会去调用这个接口,我们要做的就是实现这些驱动的接口,创建一个节点/dev节点也就是所谓文件,open调用这个文件的时候能正确的调用我们的驱动模块,实现我们的目的。

2025-02-24 23:38:05 656 1

原创 Rk3568驱动开发_驱动编写和挂载_2

file_operations通过接口抽象简化了系统调用与驱动的交互,而硬件初始化(如时钟配置)由底层框架或库函数自动处理,开发者只需关注核心逻辑(如GPIO引脚配置和数据传输)

2025-02-23 22:04:30 448

原创 Rk3568驱动开发_开发环境的搭建_1

Linux系统镜像文件通常是多个模块的集合,不同镜像封装不同功能组件,常见类型包括:引导镜像(如u-boot.img)封装内容:引导加载程序(如U-Boot),负责初始化硬件并加载内核。作用:提供启动流程控制、环境变量管理、内核加载入口。内核镜像(如vmlinuz或bzImage)封装内容:内核核心代码,包含进程调度、内存管理、VFS等模块的二进制代码。作用:驱动硬件、管理系统资源、提供基础服务(如系统调用)。根文件系统镜像(如rootfs.img)

2025-02-23 15:58:41 547

原创 c++中类的静态成员变量以及静态成员函数

【代码】c++中类的静态成员变量以及静态成员函数。

2025-02-18 17:09:07 234

原创 python实现情绪识别模块,并将模块封装成可执行文件

封装好的模型直接做一个函数来使用了,也就是获取用户情绪函数,让它单独做一个进程去使用,将用户的情绪结果放置到active_emotion文件中,其他进程需要使用到用户情绪的时候直接打开文件读取即可为了读取方便可以用a、b、c、d…需要获取用户摄像头权限,摄像头会捕获用户的面部视频流,程序会在每一定时间内抽取一帧做处理,将图片与训练好的模型进行张量运算,最后输出各个情绪可能的百分比,取最高百分比的情绪为本次图片的情绪。目前用不了GPU,应该是python库版本问题。

2025-02-09 19:39:15 328 1

原创 opencv打开摄像头出现读取帧错误问题

usb协议错了导致画质损坏,调成3.1即可解决。手动开启一下,右下角摄像头亮了说明开启了。

2025-02-08 18:46:51 482

原创 c语言提供后端,提供页面显示跳转服务

【代码】c语言提供后端,提供页面显示跳转服务。

2025-01-10 09:11:16 405

原创 c++ 打开摄像头并显示摄像头捕获的数据

【代码】c++ 打开摄像头并显示摄像头捕获的数据。

2024-12-27 16:41:24 506

原创 c++ 命名空间使用规则

【代码】c++ 命名空间使用规则。

2024-12-27 15:59:53 297

原创 git clone必须使用sudo否则失败 && git推送错误想再次编辑和推送

我的问题比较特别用env | grep -i proxy发现没问题所幸直接删掉~/.ssh下的秘钥,重新弄。按照这个操作重新搞后git clone就不用sudo了,之前搞的秘钥要重新配置一下。2.git reset HEAD@{18} 回退到我想回退的18结点。1.git reflog 查看一下你想回退到哪里。至此就可以再次编辑,推送了。

2024-12-24 21:35:49 537

原创 ubantu设置静态ip后不能上网解决方案

如果未成功,执行 gedit /etc/resolv.conf ,查看是否有以下内容,没有就添上。添入以下内容:(clone后的机器若想要修改ip并联网,还要重新再编辑一遍这一步)编辑——虚拟网络编辑器——VMnet8——NAT设置——网关IP(G)执行 ifconfig 命令可查看所配置的 ip 地址是否生效;其中gateway必须是vmware虚拟机分配的默认网关,查看。注:第二步我执行执行是失败的,但好像对整体并不影响。#将managed=false 改成true。

2024-12-24 16:56:49 598

原创 vscode免密ssh登录ubantu && 配置ubantu静态ip

之前ubantu一直用的是动态ip,ubantu的ip变一次我就要从新配置一次ssh十分不方便,直接改成静态ip。

2024-12-11 10:14:14 376

原创 设置数据,再次读取数据出现:段错误 (核心已转储)解決方案

通过putleu32(buf, MSG_INDEX, data_number);利用socket将数据传输给服务端,服务端接收数据后更新自己的数据。

2024-12-10 17:27:44 462

原创 gitcode推送项目出现各种权限问题解决方案

这个命令的意思是:以递归方式将 /home/saisi/Desktop/Linux_Socket/.git 目录及其所有子文件和子目录的所有者和组更改为用户 saisi。这个命令的意思是:将单个文件 /home/saisi/Desktop/Linux_Socket/README.md 的所有者和组更改为用户 saisi。/home/saisi/Desktop/Linux_Socket/README.md:指定要更改所有权的具体文件路径。saisi:saisi:指定新的所有者和组。

2024-12-10 14:01:59 573

原创 递归实现排列型枚举 & 马蹄铁

其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。把 1∼n这 n个整数排成一行后随机打乱顺序,输出所有可能的次序。按照从小到大的顺序输出所有方案,每行 1个。首先,同一行相邻两个数用一个空格隔开。

2024-10-30 11:24:19 201

原创 c语言、Linux的一些知识点补充

在执行函数的时候,函数中的局部变量的存储单元都可以从栈中分配,函数执行结束后这些存储单元都会被自动释放,实现从栈中分配存储单元运算操作内置于处理器的指令集中,效率很高 但是分配的内存容量有限。线程之间共享数据段,堆区,不共享栈区,每个线程都有自己的寄存器集合,包括程序计数器、栈指针、状态寄存器等,这些也是线程私有的。用于存储,函数调用,函数参数,局部变量,局部变量的生命周期为函数调用开始到函数的返回结束。fork创建子进程后,父子进程用相同的代码段,子进程会copy父进程的数据段,栈区,堆区。

2024-10-16 21:30:00 311

原创 c语言:二叉树的创建、前序遍历、中序遍历、后续遍历

代码中创建的二叉树如下图。

2024-10-08 19:34:10 539

原创 判断链表是否有回环 C

一定要注意就是先判断指针是不是空再执行->next操作。

2024-10-08 14:20:34 230

原创 大端、小端区分与判断

【代码】大端、小端区分与判断。

2024-09-29 21:07:55 218

原创 linux项目_c语言:Makefile编写、动态库生成、添加动态库路径

【代码】linux项目_c语言:Makefile编写、动态库生成、添加动态库路径。

2024-09-28 21:05:30 338

原创 c语言:知识补充

heap是堆区,stack是栈区,stack区的空间由系统自动分配和释放,比如int a = 1;是由系统自动分配,而heap区域是由为用户提供,需要用户手动分配和释放如malloc和free,heap的空间是要比stack的空间大。两者的区别在于括号的位置不同。返回一个int*指针。

2024-09-26 21:17:56 255

原创 c语言:数组、指针、地址

【代码】c语言:数组、指针、地址。

2024-09-26 08:51:45 288

原创 c语言实现:链表创建、插入、删除、翻转

【代码】c语言实现:链表创建、插入、删除、翻转。

2024-09-25 17:27:29 553

原创 SX_c程序的编译_24

【代码】SX_c程序的编译_24。

2024-09-25 09:01:08 227

原创 SX_VMware联网_23

虚拟机使用私有IP地址,并通过主机的IP地址进行网络地址转换来访问外部网络。在NAT模式下,虚拟机通过主机的网络接口访问外部网络。虚拟机之间可以相互通信,也可以访问主机网络以及互联网。

2024-09-14 09:53:01 289

原创 SX_c语言替换文件中的字符串_22

项目实现中有时候需要根据一些设置的值替换掉代码文件中的一些字符串,让显示有所变化,这里有两种方式替换。可以对全局文件做查找操作,找到所有目标文件的位置。

2024-09-12 10:40:40 361

原创 SX_c语言字符串赋值 & “multiple definition of .. first defined here”问题_21

用static是为了延长retvalue的生存周期,因为retvalue的生存周期是被限制在了这个函数中,函数结束生命周期也就结束,内存也就自动会被回收,但是用static之后retvalue就变成了静态数组,a指向了retvalue, b指向了retvalue,那么问题就很严重了retvalue的值是不断变动的那么,a和b的值也就会不断变动,a和b的值是一样的。项目中写了这样一个函数用于给char* a, char*b看似很优雅其实问题严重的一批。

2024-08-28 21:34:52 258

原创 SX_Git Graph图形化案例详解_20

git graph提供的图形化操作极大程度的方便了用户,避免了过多手动输入git命令的操作,下面创建一个小项目去模拟真实项目的需求,并通图形化操作去满足需求。

2024-08-27 20:25:47 1157

原创 SX_gitlab图形化案例_19

这条命令是将GitLab服务器上项目ts300中的jhy_gnss分支的最新改动,合并到你的电脑本地的jhy_gnss分支上。这里的远程分支就是GitLab上的代码分支。(这个好像是自动同步到本地,因为别人合并到你的分支上,而你所处的位置就在这个分支,那么本地主机就自动和远程gitlab同步)意思是将gitlab上dev-bd的代码合并到当前分支,HEAD指的是当前分支的最新提交。这就代表着,本机的代码和远程仓库,jhy_gnss的代码是一样的。圆圈代表着本机代码所在的位置。一个原点代表着一次改动。

2024-08-23 14:41:55 377

空空如也

空空如也

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

TA关注的人

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