- 博客(104)
- 资源 (6)
- 收藏
- 关注
原创 1、Linux文件系统:sysfs详解
sysfs 是 Linux 内核提供的一种虚拟文件系统,用于向用户空间提供关于系统硬件设备和驱动程序的信息。它以文件和目录的形式呈现,可以通过读取和写入这些文件来与系统硬件进行交互和配置。sysfs被挂载与根文件系统的/sys目录下,其主要目的是提供一种统一的接口,使用户空间程序能够方便地获取和管理系统硬件设备的信息。
2024-03-06 16:03:27 413
原创 10、Linux驱动开发:驱动-进程&设备文件&内核驱动
随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。
2024-03-06 16:00:48 857
原创 9、Linux驱动开发:驱动-控制接口的实现(ioctl)
以字符设备为例。一般情况下,一个字符设备的驱动,除了读取和写入设备之外,大部分的驱动程序都需要通过设备驱动程序来执行各种类型的硬件控制。例如,针对串口设备,驱动层除了需要提供对串口的读写,还需要提供对串口波特率、校验位、以及流控等配置信息的控制。这些配置信息需要从应用层传递一些基本数据,相比普通的读写数据,控制数据仅仅也只是数据类型不同。同时传输的控制信息,数据量一般情况下也不会太大。
2024-03-06 15:59:14 1008
原创 8、Linux驱动开发:驱动-读写接口实现(read&write)
随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。
2024-03-06 15:57:52 995
原创 1、docker常用技巧:docker数据位置更改
随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。
2024-01-04 21:03:37 1220
原创 7、Linux驱动开发:设备-自动创建设备节点
在前面两小节中,我们学习到了设备注册。可以将一个设备驱动注册到内核中。设备注册完成后,还需要通过mknod指令在用户空间中手动创建该驱动对应的设备节点。该命令在执行是不会检查参数的合法性。也不会检查设备驱动是否存在。如果系统中所有的驱动都通过该方法创建设备节点,就会出现一个问题。当设备未接入时,就可能会出现很多的设备节点。实际上Linux内核为我们提供了一组函数,可以在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。
2023-10-18 15:48:09 563
原创 6、Linux驱动开发:设备-更简单的设备注册
随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。
2023-10-18 15:45:52 320
原创 5、Linux驱动开发:设备-设备注册
随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。
2023-09-29 15:54:14 532
原创 Linux杂项:遍历指定目录计算文件的md5并输出到文件
随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。
2023-08-14 10:15:26 260
原创 4、Linux驱动开发:设备-设备号&设备号注册
随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。
2023-07-26 11:56:14 1426
原创 3、Linux驱动开发:模块_传递参数
在用户态下编程可以通过main来传递命令行参数,而编写一个内核模块则可通过来传递命令行参数。宏是Linux 2.6内核中新增的,该宏被定义在/**/**/**/**/**/**/**/**/**使用了3个参数:变量名,它的类型,以及一个权限掩码用来做一个辅助的sysfs入口。这个宏定义应当放在函数之外,典型的是出现在源文件的前面。则是另一个变种,以示例说明可使得var变量在内核外的变量名称为var_out。在内核外给var_out赋值等同于给模块内var变量赋值。
2023-07-26 11:49:49 948
原创 2、Linux驱动开发:模块_引用符号
这里的符号主要指的是全局变量和函数Linux内核采用的是以模块化形式管理内核代码。内核中的每个模块相互之间是相互独立的,也就是说A模块的全局变量和函数,B模块是无法访问的。不同模块间可通过导出宏,将符号导出,被导出的符号可被其他模块使用。
2023-07-26 11:46:30 899
原创 5、USB协议学习:USB的枚举过程
地址偏移量字段名长度说明0bLength1描述符长度(字节):12H11描述符类型:设备=01H2bcdUSB2USB 规范版本号(BCD 码)41类代码51子类代码61协议代码71端点 0 支持最大数据包长度8idVender2供应商 ID10idProduct2产品 ID12bcdDevice2设备版本号(BCD 码)141供应商字符串描述符索引值15iProduct1产品字符串描述符索引值161。
2023-05-31 09:38:31 2210 1
原创 4、USB协议学习:USB的数据包结构
对于批量传输,如果启动批量传输,如果USB总线中有多余的总线带宽,批量传输会立即执行,但当带宽比较紧张时,批量传输会把带宽让给其它传输类型。中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据量小的数据不连续的但实时性高的场合的一种传输方式,主要应用于人机交互设备(HID)中的USB鼠标和USB键盘等。如果最后个事务的数据长度小于端点支持的最大包长度。等时传输也有“同步传输”的叫法,一般用于要求数据连续、实时且数据量大的场合,其对传输延时十分敏感,类似用于USB摄像设备,USB语音设备等等。
2023-05-31 09:33:58 1317 2
原创 3、USB协议学习:USB的NRZI信号格式
USB使用的是差分传输模式,因而有2条数据线,分别是D+和D-。标准的USB连接线使用4芯电缆,接口一般的排列方式是:红白绿黑从左到右。USB2.0支持3种传输速度:低速模式(1.5Mb/s)、全速模式(12Mb/s)以及高速模式(480Mb/s)。在USB的低速和全速模式中,采用的是电压传输模式。而在高速模式下,则是电流传输模式。关于具体的各种电气参数,请参看USB协议。传输速度是指总线上每秒传输的位数,实际的数据速率要比这个速度低一些,因为有很多协议开销,例如同步、令牌、校验、位填充和包间隙等。
2023-03-18 16:48:20 1559
原创 Linux进程间通信-FIFO命名管道
要创建和打开管道,只需调用pipe。创建和打开一个FIFO,在调用mkfifo后还需要使用open;管道在所有进程最终关闭后自动消失,只有通过调用unlink才能从文件系统中删除FIFO名称。创建FIFO文件时会锁定文件的写入权限,只有创建者才有资格写入。
2023-03-11 10:31:31 903
原创 杂项:闲置手机改摩托车车机导航,支持短时停车休眠,长时停车断电,点火开机(大屏平板也可参照此方案用于汽车)
闲置手机改摩托车车机导航,支持短时停车休眠,长时停车断电,点火开机(大屏平板也可参照此方案用于汽车)。本文以安卓11为例,必须解锁bootload,且刷入第三方recovery。
2023-03-06 13:55:50 5415 4
原创 Linux杂项:Linux内核cmdline详解(如何通过bootload给kernel传递参数)
Linux学习笔记:Linux内核cmdline详解(如何通过bootload给kernel传递参数)
2022-10-23 21:19:12 5107 8
转载 4G杂项:lwip_网卡简述(以8910平台为例)
网络接口(如以太网接口)是硬件接口,如何和软件进行无缝衔接尼?软件中是通过定义了一个netif的结构体来描述网卡设备。lwip中实现网卡驱动的模块是ethernetif.c,可以看成是链路层的驱动封装模块。......
2022-08-16 11:24:21 1024
转载 4G杂项:Air72XUX平台secure boot使用说明
数字签名技术基于非对称算法。非对称算法将密钥分为公钥(publickey)和私钥(privatekey)两种。发送方使用私钥把信息(image)的数字摘要(hash值)加密,此密文被称为签名,附着在信息后面。接收方使用公钥解密,得到解密后的hash值,并且重新计算信息(image)的hash值,然后将重新计算出的hash值与解密出的hash值进行比较,若两者一致,表明验签通过,否则验签失败。...
2022-08-16 11:00:04 239
原创 杂项:Hyper-v/远程桌面使用USB设备(串口、加密狗等)
我们在使用hyper-v的时候,可能会使用宿主的USB设备。我们可以在宿主电脑上开启RemoteFX USB 重定向功能,这样在虚拟机中共享使用宿主的USB资源了。1、在宿主电脑上,按win+r组合键打开运行窗口,输入 gpedit.msc打开组策略编辑器,依次点击计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话客户端 -> RemoteFX USB 设备重定向。2、双击右边的“允许此计算机中受支持的其他 RemoteFX
2022-05-11 20:08:32 13481 20
转载 杂项:git修改历史提交(commit)信息(超详细,图文并茂)
我们在开发中使用git经常会遇到想要修改之前commit的提交信息,这里记录下怎么使用git修改之前已经提交的信息。1,修改最近一次commit的信息 使用命令:git commit --amend,进入命令模式,这是按 a或者i或者o进入编辑模式,我们修改好commit信息后按Esc健退出编辑模式,然后:wq保存我们编辑的信息。(这个比较简单,所以就没有贴图) 最后git push到远程仓库2,修改最近两个或者两次上的commit信息 比如我这里有两次提交 使用命令:git re
2021-11-05 17:12:45 7955 1
原创 19、RDA8910(4GCAT1)CSDK二次开发:CSDK也能用触摸屏了--电阻屏适配(XPT2046采集ADC)
目录点击这里查看所有博文 本系列博客所述资料均来自合宙官方,并不是本人原创(只有博客是自己写的),csdk只是得到了口头的允许公开授权。出于热心,本人将自己的所学笔记整理并推出相对应的使用教程,方面其他人学习。为国内的物联网事业发展尽自己的一份绵薄之力,没有为自己谋取私利的想法。若出现侵权现象,请告知本人,本人会立即停止更新,并删除相应的文章和代码。 本系列博客基于紫光展锐的RDA8910 LTE Cat 1 bis芯片平台开发。理论上适用于合宙的Air720U、Air724U、广和通L610以及
2021-05-05 19:32:53 1215 7
原创 18、RDA8910(4GCAT1)CSDK二次开发:一个极简的GUI库---画一些简单的几何图形还是没问题的
目录点击这里查看所有博文 本系列博客所述资料均来自合宙官方,并不是本人原创(只有博客是自己写的),csdk只是得到了口头的允许公开授权。出于热心,本人将自己的所学笔记整理并推出相对应的使用教程,方面其他人学习。为国内的物联网事业发展尽自己的一份绵薄之力,没有为自己谋取私利的想法。若出现侵权现象,请告知本人,本人会立即停止更新,并删除相应的文章和代码。 本系列博客基于紫光展锐的RDA8910 LTE Cat 1 bis芯片平台开发。理论上适用于合宙的Air720U、Air724U、广和通L610以及
2021-05-05 19:32:01 813 4
Simplified_Physical_Layer_Spec-converted.docx
2021-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人