
linux
文章平均质量分 50
星空语
linux驱动开发
展开
-
ipc msg
(2)消息队列类似于管道却又比管道更加人性化,管道的读端只要是管道里有消息都会将其读走,而消息队列是有选择性地去读取数据,只要不是它想要地都不会读走。4.当一个发送方往消息队列中发送数据时,接收方一直还没接收,数据会一直在消息队列里等待接收方的出现。(3)当消息队列的写端往消息队列写入数据时,读端还没打开,数据会一直在消息队列中等待它读端打开。//获取消息队列id号,如果不存在则创建。//每次清空一下结构体变量里的内容。//申请一个消息队列结构体变量。/* 消息队列接收 *///设计消息队列结构体。原创 2023-05-10 11:36:27 · 147 阅读 · 0 评论 -
linux字符设备和块设备的区别 以及网络设备
2、块设备对I/0请求有对应的缓冲区,因此他们可以选择以什么样的顺序进行响应。对于存储设备而言,调整读写的顺序作用巨大,因为读写连续的扇区的读写速度比分离的扇区更快。1、字符设备以字节为单位。大多数设备是字符设备,因为他们不需要缓冲而且不以固定块大小进行操作。4、块设备工作于VFS(虚拟文件系统)之下。1、块设备只能以块为单位接受输入和输出。2、字符设备无需缓冲直接读写。3、字符设备只能被顺序读写。3、块设备可以随机访问。原创 2023-03-11 18:50:52 · 1157 阅读 · 0 评论 -
DMA cache一致性怎么保持(修改中)
(1)在向内传输(rx)时,DMA设备将数据写入内存后,DMAC将向CPU发出中断请求,在RX ISR中使用该内存之前,需要先InvalidateD-Cache(sync_single_for_cpu)使cache无效重填(refill),此时CPU通过高速缓存cache获得的才是最新的数据。CPU的读/写用的是不同的cache(读用的是cache,写则用的是write buffer),所以建立流式DMA映射需要指明数据在DMA通道中的流向,以便由内核决定是操作cache还是write buffer。原创 2023-03-08 23:56:49 · 587 阅读 · 0 评论 -
MMU作用及Cache作用
2、TTW(Translation Table Walk):即转换表漫游,当TLB中没有缓冲对应的地址转换关系时,需要通过通过对内存中转换页表(大多数处理器的转换为多级页表)的访问来获得虚拟地址和物理地址的对应关系.TTW成功后,结果写入TLB中。1、TLB(Translation Lookside Buffer):即转换旁路缓存,TLB时MMU的核心部件,它缓存少量的虚拟地址和物理地址的转换关系,是转换表的cache,因此也经常被成为“快表”。原创 2023-03-02 23:34:48 · 376 阅读 · 0 评论 -
硅麦驱动开发及调试(pdm>>I2S>>pcm)
硅麦mic驱动开发原创 2022-11-17 15:57:47 · 2444 阅读 · 0 评论 -
linux5.10升级
linux官网下载linux代码: https://www.kernel.org/1、下载最新linux代码。2、查看config信息。原创 2022-08-22 16:34:45 · 773 阅读 · 0 评论 -
gerrit 快速查找commit
网页上commit快速查找原创 2022-08-11 16:21:24 · 989 阅读 · 0 评论 -
Uboot删除环境变量
uboot删除变量原创 2022-08-11 15:19:18 · 3902 阅读 · 0 评论 -
ffmpeg命令参考
ffmpeg转载 2022-07-21 17:34:38 · 88 阅读 · 0 评论 -
Wrong JPEG library version: library is 80, caller expects 62 解决办法
添加/usr/include/jconfig.h,并将JPEG_VERSION的值由62设为80,这样可以轻松构建项目并链接正确的版本。原创 2022-05-10 23:58:15 · 1705 阅读 · 2 评论 -
遍历文件夹下所有子目录下的文件(linux C )
void listDir(char *path){ DIR *pDir ; struct dirent *ent ; int i=0 ; char childpath[512]; char childfile[512]; pDir=opendir(path); memset(childpath,0,sizeof(childpath)); while((ent=readdir(pDir))!=NULL) { if(ent->d_type & DT_DIR) {原创 2021-11-23 10:27:40 · 246 阅读 · 0 评论 -
source insight 绿色护眼主题&暗色护眼主题
效果如下:主题下载地址:链接:https://pan.baidu.com/s/1aSkQOo70nr498hf_wHN4Jw提取码:f3f6–来自百度网盘超级会员V5的分享原创 2021-10-09 10:44:03 · 1934 阅读 · 3 评论 -
记录几个堪称神器的学习网站
1、中国大学慕课网网址:https://www.icourse163.org/中国大学精品开放课程的官方网站,提供2000多门教育部“国家级精品资源共享课”。2、B站学习区https://www.bilibili.com/v/tech/computer_tech/#/3314766(野生技术协会、演讲公开课;十八般武艺样样精通)3、Stack Overflow网址:https://stackoverflow.com/stackoverflow作为全球最大的技术问答网站,可以说是每个搞过技术原创 2021-08-20 15:33:38 · 1917 阅读 · 0 评论 -
2021-07-16
linux下通过sysfs操作GPIO以GPIO_57 GPIO_58为例执行如下操作:1)通知系统需要导出控制的GPIO引脚编号:echo 58 > /sys/class/gpio/exportecho 57 > /sys/class/gpio/export2)设置引脚的输出/输入状态,和输出输入高低电平echo out > /sys/class/gpio/gpio58/directionecho out > /sys/class/gpio/gpio57/direc原创 2021-07-16 11:23:23 · 88 阅读 · 0 评论 -
onvif简介
onvif介绍标题1.1 onvif背景网络摄像机是网络设备,需要有通讯协议,早期的网络摄像机硬件提供商都采用私有协议。随着视频监控的网络化应用,产业链的分工将越来越细。有些厂商专门做摄像头,有些厂商专门做视频服务器,有些厂商则可能专门做平台等,然后通过集成商进行集成,提供给最终客户。私有协议无法胜任这种产业合作模式,行业标准化的接口由此应运而生。目前,网络摄像机的标准协议,国际标准上有三大类:ONVIF、PSIA和HDCCTV,国内标准有国标GB/T28181。ONVIF阵营日益壮大,与PSIA、原创 2021-07-01 15:55:38 · 3433 阅读 · 0 评论 -
container of()函数简介
在linux 内核编程中,会经常见到一个宏函数container_of(ptr,type,member), 但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀? 函数还可以这样定义??? 怎么还有0呢??? 哎,算了,还是放弃吧。。。)。 这就是内核大佬们厉害的地方,随便两行代码就让我们怀疑人生,凡是都需要一个过程,慢慢来吧。其实,原理很简单: 已知结构体type的成员member的地址ptr,求解结构体type的起始地址。 type的起始地址 = p转载 2021-03-29 14:21:12 · 660 阅读 · 0 评论 -
writel原理
内核里面writel(readl)是如何实现的writel和readl,这两个个函数实现在操作系统层,有内存保护的情况下,往一个寄存器或者内存地址写一个数据。先说一下writel:在arch/alpha/kernel/io.c中有188 void writel(u32 b, volatile void __iomem *addr)189 {190 __raw_writel(b, addr);191 mb();192 }这样一个writel函数的作用应该是向一个地址上写一个值转载 2021-03-11 16:27:38 · 2728 阅读 · 0 评论 -
TEE(Trusted Execution Environment)
REE(Rich Execution Environment)1.1. REE简介 所有移动设备都支持REE 运行通用OS:Android、iOS、Linux 为上层App提供设备的所有功能 开放的、可扩展的且通用的 在互联互通的网络世界中运转1.2. REE存在安全隐患 基于OS实现的App隔离极易被绕过; OS代码庞大,漏洞频发; OS很难被检验和认证; OS可以看到App内部的所有数据; 大量的恶意代码和高级的攻击技术; 缺乏隔离意味着App无法安全.原创 2021-03-10 16:40:00 · 1566 阅读 · 4 评论 -
yocto详解
参考:1、https://www.yoctoproject.org/docs/2.1/mega-manual/mega-manual.html#creating-a-general-layer-using-the-yocto-layer-script原创 2020-11-03 14:47:58 · 177 阅读 · 0 评论 -
SecureCRT如何自动保存log 并带主机类型和时间
##1、 在选项里选择全局配置2、全局配置里选择默认配置(以后不需要重新修改)原创 2020-08-14 19:20:33 · 1012 阅读 · 1 评论 -
buildroot syslog配置深入解析
1、syslog源码所在位置syslog在busybox的工具包内busybox是在buildroot的dl目录下(./buildroot/dl/busybox),这个目录会根据网址从网上下载压缩包在./buildroot/dl/busybox/busybox-1.31.0/sysklogd$ l目录下有syslogd源码syslogd.cstatic const struct init_globals init_data = { .logFile = { .path = "/var/log原创 2020-08-14 19:08:17 · 1830 阅读 · 0 评论 -
yocto syslog配置深入解析
1、 配置完成的结果1、配置完成后/etc目录下会有syslog.conf文件2、配置完成后/var/log下可以看到logfile,size最大为2048k,可以缓存两个副本2、配置及过程解析1、首先看syslog的源码yocto/build/downloads/busybox-1.29.2.tar.bz2软件包里,解压后可以看到:/build/downloads/busybox-1.29.2/sysklogd/syslogd.cstatic const struct init_glob原创 2020-08-14 18:37:49 · 1849 阅读 · 0 评论 -
基于Yocto和Buildroot平台的Syslog 配置
2. Syslog简介2.1. 简介在Unix类操作系统上,syslog广泛应用于系统日志,负责记录内核和应用程序产生的日志信息。syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的内容做相应的处理。常见的应用场景是网络管理工具、安全管理系统、日志审计系统。2.2. 日志格式规定syslog消息的UDP报文不能超过1024字节,并且全部由可打印的字符组成。完整的syslog消息原创 2020-08-07 10:18:44 · 1578 阅读 · 0 评论 -
syslog信息打印到控制台 无法打印到文件的问题解决
如下图所示,这些信息在配置完syslog后应该打印到/var/log/messages,但是却全部输出到控制台,(至于怎么配置syslog,请参考https://blog.youkuaiyun.com/sssddd12345_/article/details/105561142)输入make menuconfig选中如下配置70)保存后依次执行make savedefconfig,make clean && make重新编译后烧写,发现syslog信息被发送到指定文件.原创 2020-07-07 18:29:31 · 1692 阅读 · 2 评论 -
技术学习经验总结
1、养成靠自己的习惯,自己想办法去解决,去成长,自己给自己设立目标,然后去完成。2、先解决问题,问题解决了很多地方自己可能很多地方都不是很理解,做好记录,解决问题之后再去消化不理解的知识点,解决问题可能花一天,消化知识点可能花一周甚至一个月,但自己会获得很大的提升和进步。3、定期的反馈,去看自己之前做的工作,不断做的更好,获得提升。4、实在解决不了该问还是要问的,脸皮要厚。...原创 2020-06-28 16:22:26 · 217 阅读 · 0 评论 -
“kernel is not clean, please run make mrproper ” 的解决办法
遇见如下问题:make[2]: *** [prepare3] Error 1make[2]: *** 正在等待未完成的任务....package/pkg-generic.mk:238: recipe for target '/home/sunhelong/work/buildbetter/buildroot/output/build/linux-custom/.stamp_built' failedmake[1]: *** [/home/sunhelong/work/buildbetter/buil原创 2020-05-25 17:23:02 · 940 阅读 · 0 评论 -
linux支持 zImage rootfs dtb 剥离 及 zImage和dtb拼接
1.1. 选择bootz模式启动zImage内核之前选择bootm模式启动boot.im,boot.img带有its格式的header,需要根据header去header。现在直接启动zImage,需要通过do bootz()函数启动。方式如下:1.1.1. 在uboot目下执行make menuconfig,选中bootz1.1.2. 选中Command line interface —> Boot commands —> bootz1.1.3. 选中Enable a defa原创 2020-05-25 17:01:41 · 3909 阅读 · 0 评论 -
找不到/etc/syslog.conf解决办法
1、首先我们需要先确认我们的开发板上是否安装了syslog服务,在开发板的文件系统下输入syslogd help命令查看如果不支持就是busybox的版本太低了,如图出现this version of syslogd ignores /etc/syslog.conf就是这个版本的syslogd不支持/etc/syslog.conf,需要我们重新构建一个支持/etc/syslog.conf的linu...原创 2020-04-16 16:46:06 · 8162 阅读 · 0 评论 -
linux内核驱动学习路线
学习路线linux学习路线linux驱动开发操作系统要求① 懂硬件知识才能看懂电路图② 英文好会看芯片手册③ 有编写、移植驱动程序的能力④ 对操作系统本身有一定的理解,才能解决各类疑难问题⑤ 理解Android内部机制⑥ 懂汇编、C语言、C++、JAVA缺点① 这行的入门,绝对需要半年以上,即使全天学习也要半年。② 它的职位,绝对比APP的职位少③ 并且你没有1、2年经...原创 2020-04-15 16:36:11 · 3508 阅读 · 1 评论 -
win10下电脑和开发板无法ping通解决
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2020-03-28 16:22:27 · 5125 阅读 · 2 评论 -
cp:目标“/drv_module”不是目录的解决方法
编译结果:问题出现在变量内部有一个空格消除空格后编译正确:原创 2019-11-04 15:22:49 · 6991 阅读 · 0 评论