自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小白的学习笔记

记录一个小白的学习之路,相关的源码以开源,地址:https://gitee.com/norep,有需要请自取

  • 博客(76)
  • 收藏
  • 关注

原创 飞牛OS自定义远程挂载目录

通过查阅系统启动脚本发现,系统中远程挂载功能是通过rclone实现,但是使用的并非完整版rclone,其中很多功能被阉割。飞牛OS系统的远程挂载功能,可以将百度网盘、阿里网盘、SMB、Webdav、Ftp、SFtp、NFS等挂载到系统中。但是,系统默认的挂载路径在/vol02目录下的随机文件夹下,并且无法显示在文件管理中,使用起来很不方便。使用系统文件管理窗口下的远程挂在功能,输入挂载地址等信息,完成挂载操作。如果没有文件,可尝试在文件管理中,远程挂载窗口,断开并重连网盘。

2025-01-19 21:02:27 4437 5

原创 Ubuntu设置笔记本电脑合盖时不挂起

有些情况需要我们的笔记本在关闭盖子后,依然需要维持正常工作,而不是挂起或休眠。在Ubuntu默认的设置中,无法设置关闭盖子的操作,因此需要手动修改配置文件。

2024-09-14 15:40:27 1899

原创 报错记录3:imx6ull适配ov2640摄像头无法获取默认摄像头分辨率与格式参数

解决mx6ull平台中,应用层无法获取默认摄像头分辨率与格式参数

2024-09-01 09:45:00 471

原创 报错记录2:imx6ull适配ov2640摄像头查询不到支持的分辨率大小

在通过`ioctl(fd, VIDIOC_ENUM_FRAMESIZES, frmsize);`接口枚举不到ov2640分辨率的解决方法

2024-08-31 17:46:18 512

原创 报错记录1:imx6ull适配ov2640摄像头报错unknown mbus:xxx或rgb取流异常

在mx6ull芯片上移植ov2640摄像头报错处理方法mx6s-csi 21c4000.csi: mbus (0x00001007) invalid.

2024-08-31 16:51:29 505

原创 Ubuntu24开机黑屏,VMware卡死,虚拟机繁忙解决方案

Ubuntu24开机黑屏,VMware卡死,虚拟机繁忙解决方案

2024-07-20 13:36:43 13057 5

原创 STM32Cube系列教程11:STM32 AES加解密模块性能测试

今天使用NUCLEO-U083RC的评估板,测试一下他内置的AES加速模块性能如何。正文开始,本工程基于前期配置的工程模板,感兴趣的可查看之前的文章。

2024-06-10 12:09:33 2079

原创 STM32Cube系列教程11:使用STM32 RNG硬件随机数模块生成彩票号码

今天写段代码测试一下STM32U083RC的(RNG)硬件随机数模块顺便写个小demo生成7位真随机数的彩票号码,帮助那些买彩票还有选择困难症的人群 (doge)(手动狗头)。正文开始,本工程基于前期配置的工程模板,感兴趣的可查看之前的文章。

2024-05-29 05:45:00 771

原创 STM32Cube系列教程10:STM32CubeIDE工程创建+串口DMA+IDLE+printf重定向+软中断处理串口数据+非阻塞延时任务

前两天收到了ST社区的NUCLEO-U083RC的评估板,这颗芯片中内置了硬件AES与RNG模块,准备对这两个模块做个测试,今天先配置个工程模板,主要开启串口收发,printf重定向,利用DMA与IDLE中断自动接收不定长的串口数据,在接收完毕后利用软中断触发中断处理串口数据,在编写一个简易的非阻塞延时功能。

2024-05-27 22:36:19 1309

原创 数据安全-签名、加密、与填充

密钥对的开始部分为:-----BEGIN PRIVATE KEY----- 或 -----BEGIN ENCRYPTED PRIVATE KEY----- 或-----BEGIN PUBLIC KEY-----。加密与解密一般需要对数据进行分包,将明文数据分包处理后,使用加密算法对每包数据进行运算,求出密文数据,每包密文数据的长度通常都是等长的,将每包密文依次连接,形成完整的密文数据。PKCS5是8字节填充的,即填充一定数量的内容,使得成为8的整数倍,而填充的内容取决于需要填充的数目。

2024-05-10 10:18:49 1324

原创 MBR与GPT分区表

LBA0 : 保护性MBR,保护GPT分区表不受MBR磁盘工具的危害,含有一个分区类型为0xEE的分区,MBR磁盘无法识别,因此拒接对硬盘进行操作,从而保护GPT分区。每个磁盘最多支持128个分区,单个分区最大支持到8ZB,分区表由34个LBA组成。每个磁盘最多分为4个主分区,或三个主分区及一个扩展分区,扩展分区可分为N个逻辑分区。引导标识:0x00;LBA1 : 分区表头,记录硬盘的信息,分区表管理的空间大小以及分区表项数量,分区表项的地址。按照上面MBR的方法,获取使用gpt分区表的U盘的分区表数据。

2024-05-10 10:06:51 1949

原创 Linux嵌入式驱动开发-gpio子系统

函数从设备树获取指定 GPIO 属性信息,此函数会返回这个 GPIO 的标号。在pinctl中配置过的GPIO,在使用时,不需要使用。在pinctl中配置过的GPIO,在使用时,不需要使用。但是,推荐即使在pinctl中配置的gpio,也使用。用于设置某个 GPIO 的值,此函数是个宏,gpio:要申请的 gpio 标号,使用。gpio:要设置为输入的 GPIO 标号。gpio:要设置为输出的 GPIO 标号。返回值:0,设置成功;gpio:要释放的 gpio 标号。gpio:要获取的 GPIO 标号。

2024-04-24 01:30:00 555

原创 Linux嵌入式驱动开发-MISC驱动

表示子设备号,MISC 设备的主设备号为 10,这个是固定的,需要用户指定子设备号,Linux 系统已经预定义了一些 MISC 设备的子设备号,这些预定义的子设备号定义在include/linux/miscdevice.h 文件中。MISC 设备会自动创建 cdev,不需要像我们以前那样手动创建,因此采用 MISC 设备驱动可以简化字符设备驱动的编写。所有的 MISC 设备驱动的主设备号都为 10,不同的设备使用不同的从设备号。misc:要注册的 MISC 设备。misc:要注销的 MISC 设备。

2024-04-23 07:15:00 453

原创 Linux嵌入式驱动开发-platform 设备驱动

Linux 系统要考虑到驱动的可重用性,因此提出了驱动的分离与分层这样的软件思路,在这个思路下诞生了platform 设备驱动,也叫做平台设备驱动。驱动的分隔,也就是将主机驱动和设备驱动分隔开来。Linux 中的总线(bus)、驱动(driver)和设备(device)模型当我们向系统注册一个驱动的时候,总线就会在右侧的设备中查找,看看有没有与之匹配的设备,如果有的话就将两者联系起来。同样的,当向系统中注册一个设备的时候,总线就会在左侧的驱动中查找看有没有与之匹配的设备,有的话也联系起来。

2024-04-23 01:00:00 913

原创 Linux嵌入式驱动开发-阻塞IO与非阻塞IO

*IO:**Input/Output,也就是输入/输出,是应用程序对驱动设备的输入/输出操作。**阻塞式 IO:**当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,阻塞式 IO 就会将应用程序对应的线程挂起,直到设备资源可以获取为止。阻塞访问最大的好处就是当设备文件不可操作的时候进程可以进入休眠态,这样可以将CPU 资源让出来使用打开文件,则以阻塞的方式访问文件IO。**非阻塞 IO:**应用程序对应的线程不会挂起,它要么一直轮询等待,直到设备资源可以使用,要么就直接放弃。使用。

2024-04-22 06:45:00 872

原创 Linux嵌入式驱动开发-设备树中的中断

与中断有关的设备树属性信息:#interrupt-cells:该节点的“子”中断控制器 interrupts 属性的 cells 大小。interrupt-controller,表示当前节点为中断控制器。interrupts,指定中断号,触发方式等。interrupt-parent,指定父中断,也就是中断控制器。

2024-04-22 01:15:00 1616

原创 Linux嵌入式驱动开发-Linux中断映射与API

通常内部会有多个中断控制器(比如gic interrupt controller, gpio interrupt controller), 每一个中断控制器对应多个中断号,而硬件中断号在不同的中断控制器上是会重复编码的, 这时仅仅用硬中断号已经不能唯一标识一个外设中断。因此linux kernel提供了一个虚拟中断号的概念。linux kernel提供irq_domain的管理框架, 将hwirq映射到虚拟中断号上。每一个中断控制器都需要注册一个irq_domain。中断映射的完整过程interrupt c

2024-04-21 06:45:00 995

原创 Linux嵌入式驱动开发-linux中断

GIC 是 ARM 公司给 Cortex-A/R 内核提供的一个中断控制器,类似 Cortex-M 内核中的NVIC。当 GIC 接收到外部中断信号以后就会报给 ARM 内核,但是ARM 内核只提供了四个信号给 GIC 来汇报中断情况:VFIQ、VIRQ、FIQ 和 IRQ,他们之间的关系如下:GIC 接收众多的外部中断,然后对其进行处理,最终就只通过四个信号报给 ARM 内核,这四个信号的含义如下:GIC 将众多的中断源分为分为三类:SPI(Shared Peripheral Interrupt),共享中

2024-04-21 01:45:00 893

原创 Linux嵌入式驱动开发-设备树OF操作函数

用于获取设备树某个属性里面定义了几个 GPIO 信息,要注意的是空的 GPIO 信息也会被统计到np:设备节点。propname:要统计的 GPIO 属性。返回值:正值,统计到的 GPIO 数量;负值,失败。此函数统计的是“gpios”这个属性的 GPIO 数量,而 of_gpio_named_count 函数可以统计任意属性的 GPIO 信息np:设备节点。返回值:正值,统计到的 GPIO 数量;负值,失败。

2024-04-20 07:00:00 941

原创 Linux嵌入式驱动开发-内核定时器

linux系统频率,也叫节拍率(tick rate),比如 1000Hz,100Hz 等等说的就是系统节拍率。系统节拍率可设置,在kernel配置中,-> Kernel Features ->Timer frequency 可选。可选的系统节拍率为 100Hz、200Hz、250Hz、300Hz、500Hz 和 1000Hz,默认情况下选择 100Hz。高节拍率会提高系统时间精度,如果采用 100Hz 的节拍率,时间精度就是 10ms,采用1000Hz 的话时间精度就是 1ms,精度提高了 10 倍。

2024-04-20 04:00:00 1252

原创 Linux应用开发-进程间通信-Socket

Socket 起源于 Unix,原意是,在计算机通信领域,Socket 被翻译为,它是计算机之间进行通信的一种约定或一种方式。通过 Socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。套接字有和两种。本地套接字的名字是Linux文件系统中的文件名,一般中;网络套接字的名字是与客户连接的特定网络有关的服务标识符(端口号或访问点)。这个标识符允许Linux将进入的针对特定端口号的连接转到正确的服务器进程。

2024-04-19 09:15:00 1056

原创 Linux应用开发-进程间通信-共享内存

共享内存就是允许不相干的进程将同一段物理内存连接到它们各自的地址空间中,使得这些进程可以访问同一个物理内存,这个物理内存就成为共享内存。如果某个进程向共享内存写入数据,所做的改动将影响到可以访问同一段共享内存的任何其他进程。

2024-04-19 07:00:00 645

原创 Linux应用开发-进程间通信-消息队列

消息队列允许一个或多个进程向它写入或读取消息。消息队列可以实现消息的,不一定非要以先进先出的次序读取消息,也可以按消息的类型读取。比有名管道的先进先出原则更有优势。对于消息队列来说,在某个进程往一个队列写入消息之前,并不需要另一个进程在该消息队列上等待消息的到达。而对于管道来说,除非读进程已存在,否则先有写进程进行写入操作是没有意义的。消息队列的生命周期随内核,如果没有释放消息队列或者没有关闭操作系统,消息队列就会一直存在。而匿名管道随进程的创建而建立,随进程的结束而销毁。

2024-04-18 15:23:06 878

原创 Linux应用开发-进程间通信-管道

管道中的数据只能单向流动,也就是半双工通信,如果想实现相互通信(全双工通信),我们需要创建两个管道。向管道中写入数据时,linux将不保证写入的原子性,管道缓冲区一有空闲区域,写进程就会试 图向管道写入数据。如果读进程不读走管道缓冲区中的数据,那么写操作将一直阻塞。注:只有在管道的读端存在时,向管道中写入数据才有意义。否则,向管道中写入数据的进程将收到 内核传来的SIFPIPE信号,应用程序可以处理该信号,也可以忽略(默认动作则是应用程序终止)。

2024-04-18 15:20:35 860

原创 OpenCV-图像形态学处理

OpenCV使用图像形态学操作,对图像进行处理

2024-03-21 11:45:00 1276

原创 OpenCV-图像二值化

使用OpenCV接口对图像进行二值化处理,对比全局二值化与自适应二值化的效果差异

2024-03-20 14:45:00 887

原创 OpenCV-高通滤波与边缘检测

在OpenCV中使用卷积操作,对图像进行高通滤波,提取图像边缘,比较各种高通滤波方法的特点与效果

2024-03-20 10:15:00 2494

原创 OpenCV-卷积与低通滤波

使用卷积操作,对图像进行低通滤波,降噪处理。比较各种滤波算法对图像处理的效果差异

2024-03-19 09:46:39 1534

原创 OpenCV-矩阵仿射变换

OpenCV中使用简单的矩阵进行图像仿射变换,进行图像的平移,旋转与透视变形等操作。

2024-03-19 09:46:27 1221

原创 OpenCV-图像基本变换

使用OpenCV对图像进行缩放,旋转,翻转操作

2024-03-18 10:03:13 477

原创 OpenCV-图像通道处理

使用OpenCV对图像各个颜色通道进行分离,处理,通道融合

2024-03-18 10:00:53 1333 1

原创 OpenCV-绘制图形

OpenCV绘制图形,绘制文本

2024-03-13 19:30:00 990

原创 OpenCV-交互相关接口

OpenCV中鼠标事件与滑动条接口的使用

2024-03-12 18:00:00 977

原创 OpenCV-环境搭建及基本IO接口

讲解OpenCV基本IO接口调用方法

2024-03-11 18:32:54 1158 1

原创 Linux嵌入式驱动开发-并发与竞争

简单记录linux驱动开发中的对临界数据区的操作锁

2023-08-16 08:00:00 523 1

原创 Linux嵌入式驱动开发-字符设备开发

总结了linux系统字符设备驱动开发的一些重点

2023-08-12 08:00:00 514

原创 收音机/电台波段划分与特点

简单介绍各个无线电波段的频率范围与特点

2023-08-10 22:16:33 18476

原创 ESPHOME max7219点阵时钟

使用ESPHOME配置esp8266驱动max7219显示实时时钟

2023-07-13 00:15:00 742

原创 ESPHOME Fonts字体组件

简单描述了ESPHOME中font对象的使用方法

2023-07-12 08:00:00 696

原创 ESPHOME_驱动OLED显示时间

使用ESPhome,结合OLES组件与time组件,编写一个显示实时时间的demo

2023-07-11 08:00:00 1305

空空如也

空空如也

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

TA关注的人

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