自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 文件IO的方式读取jpeg图片的分辨率

可以使用libjpeg库读取JPEG图像文件,并获取图像的分辨率(宽度和高度),简单demo示例如下:1.2 使用文件IO的方式1.2.1 JPEG文件格式JPEG图片格式组成部分:SOI(文件头)+APP0(图像识别信息)+[APPn(0xFFEn)]可选+ DQT(定义量化表)+SOF0(图像基本信息)+ DHT(定义Huffman表) + DRI(定义重新开始间隔)+ SOS(扫描行开始)+ EOI(文件尾)其中粗体部分是必须的,下面我就来解释一下这些信息吧。JPEG的文件分为若干个块

2024-03-27 10:03:59 805 1

原创 Linux驱动学习—IIC总线之FT5X06触摸驱动实验

流程图:设备树如下:触摸设备对应的设备树节点是:读取坐标的寄存器:#include <linux/init.h>#include <linux/module.h>#include <linux/i2c.h>#include <linux/gpio.h>#include <linux/of_gpio.h>#include <linux/interrupt.h>#include <linux/of_irq.h>#

2024-01-14 14:29:35 1666

原创 Linux驱动学习—I2C总线

I2C是很常见的一种总线协议,I2C是NXP公司设计的,I2C使用两条线在主控制器和从机之间进行数据通信。一条是SCL(串行时钟线),另外一条是SDA(串行数据线),因为I2C这两条数据线是开漏输出的,所以需要接上拉电阻,总线空闲的时候SCL和SDA处于高电平。I2C总线标准模式下速度可以达到100Kb/s,快速模式下可以达到400kb/s。

2024-01-14 00:27:04 2901

原创 Linux驱动学习—输入子系统

输入子系统是Linux专门做的一套框架来处理输入事件的,像鼠标,键盘,触摸屏这些都是输入设备,但是这邪恶输入设备的类型又都不是一样的,所以为了统一这些输入设备驱动标准应运而生的。统一了以后,在节点/dev/input下面则是我们输入设备的节点,如下图所示:这些节点对应的则是我们当前系统的输入设备,我们要怎么查看当前系统都有哪些输入设备呢?

2024-01-10 23:00:34 1477

原创 Linux驱动学习—内核定时器

比如,现在是10点5分,我要定时5分钟,那么定时就是10点5分+5分钟=10点10分。HZ的值我们是可以设置的,也就是一秒对应的时钟拍数我们是可以设置的,Linux内核会使用CONFIG_HZ来设置自己的系统时钟。宏HZ就是CONFIG_HZ,因此HZ=100,表示一秒的节拍数是100,在编译Linux内核的时候可以通过图形化界面设置系统节拍率,按照如下路径打开配置界面。通过上图我们可以发现可选的系统节拍率为100HZ,200HZ,250HZ,300HZ、500HZ和1000HZ.默认是100HZ。

2024-01-07 18:59:04 2112 1

原创 Linux驱动学习—中断

CPU在正常运行期间,由外部或者内部引起的时间,让CPU停下当前正在运行的程序,转而去执行触发他的中断所对应的程序,这就是中断。响应中断的过程:<1>中断请求<2>中断响应<3>保护现场<4>中断处理<5>恢复现场<6>中断返回如果不响应中断,就是中断屏蔽。

2024-01-07 00:04:40 1575 1

原创 Linux驱动学习—ioctl接口

unlocked_ioctl 实际上取代了用了很久的ioctl,主要的改进就是不再需要上大内核锁(BKL) (调用之前不再先调用lock_kernel()然后再unlock_kernel())。值得注意的是,内核中使用的合成宏和分解宏与应用层使用的是一样的。其实可以用户和内核空间共用的头文件,里面是ioctl命令的构成和头文件。和open read write函数同理,当在应用层代码中调用ioctl接口的时候,其实调用的内核file_operations的unlocked_ioctl结构体成员。

2024-01-01 16:24:31 1476 1

原创 Linux驱动学习—pinctl和gpio子系统

/设备的状态,可以有多种状态,default为状态0/*第0个状态所对应的引脚配置,也就是default状态对应的引脚在pin controller里面定义好的节点pinctrl_hog_1里面的管脚配置。*///设备的状态,可以有多种状态,default为状态0,wake up为状态1,/*第0个状态所对应的引脚配置,也就是default状态对应的引脚在pin controller里面定义好的节点pinctrl_hog_1里面的管脚配置。*/

2023-12-31 22:46:29 1813

原创 Linux驱动学习—设备树及设备树下的platform总线

设备树是一种描述硬件资源的数据结构。他通过bootloader将硬件资源传给内核,使得内核和硬件资源 描述相对独立。 cd /proc/device-tree/下就可看到 cd /sys/firmware/devicetree/base/下就可看到。

2023-12-30 15:40:30 2533 1

原创 Linux驱动学习—平台总线模型

平台总线模型也叫platform总线模型。是Linux内核虚拟出来的一条总线,不是真实的导线。平台总线模型就是把原来的驱动C文件给分成两个C文件,一个是device.c,一个是driver.c把稳定不变的放在driver.c里面,需要变得放在devic.c里面。可以发现设备名称name要一样才能进入probe函数,id_table没有初始化值的时候,device name才会与结构体driver成员name匹配。否则会优先与id_table成员name进行匹配,匹配成功才会加载probe函数。

2023-12-27 22:20:52 1412 1

原创 Linux驱动学习—杂项设备驱动注册

②杂项设备出来比字符设备代码简单。其他区别是杂项设备的主设备号是相同的,均为是10,次设备号是不同的。主设备号相同就可以节省内核的资源。①杂项设备驱动是属于字符设备的一种。设备号包含主设备号和次设备号,主设备号在Linux系统里面 是唯一的,次设备号不一定唯一。字符设备:IO的传输过程是以字符为单位的,没有缓冲。比如I2C,SPI都是字符设备。块设备:IO传输过程是以块为单位的。设备号是计算机识别设备的一种方式,主设备号相同的被视为同一类设备。主设备号比做成电话号码的区号。③主设备号和次设备号是什么?

2023-12-25 20:58:13 1022 1

原创 Linux驱动学习—驱动模块传参数

驱动传参就是传参数给我们的驱动。

2023-12-25 20:45:32 515 1

原创 Linux驱动学习—字符设备驱动注册详解

参数一:要初始化的cdev参数二:文件操作集//实际就是把文件操作集写给opsmdev是udev的简化版本,是busybox中所带的程序,最适合用在嵌入式系统。udev是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。udev一般用在PC上的linux中,相对mdev来说要复杂些。

2023-12-25 20:39:07 1974 1

原创 uboot升级流程详解

因为OTA升级的时候要保存用户操作的设置项,当然这样操作的缺陷就是当我们的默认设置项增加几项设置项或者删除几项设置项的时候,只有当用户恢复出厂设置的时候才能加载进config分区,所以后期完善应该对config分区的数据与现在存在的数据进行校验。Linux进程间通信-杂项设备驱动buf共享的方式-CSDN博客。

2023-12-18 21:10:13 1954 1

原创 Linux进程间通信-消息队列实例(解决mstar平台连续发管道消息数据会丢失的问题)

消息队列与命名管道类似,但少了打开和关闭管道方面的复杂性。使用消息队列并未解决我们在使用命名管道时遇到的一些问题,如管道满时的阻塞问题。消息队列提供了一种在两个不相关进程间传递数据的简单有效的方法。与命名管道相比:消息队列的优势在于,它独立于发送和接收进程而存在,这消除了在同步命名管道的打开和关闭时可能产生的一些困难。消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。而且,每个数据块被认为含有一个类型,接收进程可以独立地接收含有不同类型值的数据块。

2023-11-27 19:42:33 967

原创 Linux进程间通信-杂项设备驱动buf共享的方式

本文中的实例是将设置项写入驱动中,支持多个进程共享。在开机初始化进入应用层=的时候需要把保存在/config/settings.txt文件中的设置项全部读出来,然后在写入到杂项设备驱动中,杂项设备中有一个全局数据buf用来保存这些设置项,这是初始化必须要做的。除此之外,当是首次使用的时候config/settings.txt文件是没有数据的,要先把应用层保存的设置项数组数据写入到文件中,才可以使用。

2023-11-26 18:27:57 23222 1

原创 Linux进程间通信实例:文件共享的方式

Linux进程间通信代码实例:共享内存

2023-11-26 11:35:27 906 1

原创 通过文件IO的方式获取视频时长

注意:不同的平台需要修改MY_MVHD结构。

2023-07-10 21:22:54 268 1

原创 hostapd-2.7编译、libnl-3.2.25编译及openssl编译注意事项

hostapd的功能就是作为AP的认证服务器,其将无线网卡切换为master模式,模拟AP的功能,负责控制管理stations的接入和认证;通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个不加密的WEP,WPA或WPA2的无线网络。并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号,beacon包时间间隔,是否发送beacon包,如果响应探针请求等等。

2023-07-05 21:32:00 994

原创 mstar SSC337平台各个分区的作用及升级时不擦除相应的分区

1.怎么修改配置文件分配一个分区2.打包生成升级文件的脚本make_sd_upgrade_sigmastar.sh如何对分区进行操作3.制作烧录文件的脚本dumpspi_nor.sh中如何对分区进行操作4.怎么把授权码等信息写入一个分区和备份到另一个分区以及如何读取

2023-07-03 22:54:53 451 1

原创 mstar gdb调试

6、dd if=/tmp/core.AIIOT_TASK.466 of=/tmp/sdcard/core_dump 然后将卡内的文件core_dump放到/apical/ipcam/bin中 arm-buildroot-linux-uclibcgnueabihf-gdb cardv core_dump (用于ssc333 ssc337平台)4、串口输入:echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern //指定coredump文件生成路径。

2023-06-03 22:51:28 172

原创 spi nor flash写保护

uboot和kernel中保护后,写、擦除flash导致状态寄存器的值被改写,保护被取消的问题。uboot中保护后,到kernel的flash驱动加载可能会取消保护的问题。

2023-06-03 22:46:40 887

原创 【uboot学习】uboot添加升级包MD5校验逻辑

alientek_uboot/arch/arm/lib/bootm.c中的boot_prep_linux函数主要用于处理环境变量bootargs,bootargs 保存着传递给 Linux kernel 的参数,在这里添加的主要作用是升级包校验不过的时候向内核层传递参数upload=2,然后再应用层上如果读取到这个参数就删除对应的升级包文件。

2023-06-01 22:18:06 354 1

原创 C语言设置文件隐藏属性

【代码】C语言设置文件隐藏属性。

2023-03-23 23:19:38 525

原创 Linux下把驱动编译进内核及图形化配置的方式进行选择

Linux下把驱动编译进内核及图形化配置的方式进行选择

2023-01-15 11:10:02 2543

原创 音频文件PCM、WAV、MP3的区别以及文件合并

音频文件PCM、WAV、MP3的区别以及文件合并

2023-01-15 09:17:33 6868

原创 基于杰理RTOS平台的433射频无线数传通信

在杰理的AC7916N实现了433射频的数据发送,在杰理的AD15系列实现433射频接收。

2022-08-19 22:10:33 1317

原创 C语言bmp图片读写,画点,画线

bmp文件信息头、文件头结构体:#pragma pack(1)typedef struct { uint16_t bfType;//位图类别,根据不同的操作系统而不同,在Windows中,此字段的值总为'BM' uint32_t bfSize;//BMP图像文件的大小 uint16_t bfReserved1;//总为0 uint16_t bfReserved2;//总为0 uint32_t bfOffBits;//BMP图像数据的地址 54 ui...

2022-03-12 10:35:26 2522

空空如也

空空如也

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

TA关注的人

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