linux 调试
文章平均质量分 72
哈利路亚doit
1.从事单片机驱动\应用开发:
熟悉的soc、mcu有:
a.nordic-nrf52840(ble、zigbee);
b.nxp-rt1060(freetos);
c.silicon zgm130s(z-wave).
2. 从事linux rockchip平台,nxp平台驱动\系统调试:(日常学习集中在nxp平台)
熟悉的soc:
a. rochchip: rk3288、rk3399、px30等
b. nxp : imx8mini 、imx6ull
3.从事android 高通平台驱动\系统调试:(目前工作主要集中在高通平台)
熟悉的soc:
a. qualcomm :sdm845
展开
-
android dummy codec
dummy codec1. 什么情况下需要用到虚拟codec一般在linux 或者 android 系统中,没有外挂codec,主控上也没内置codec,但是外挂了一个i2s、spdif的接口的芯片;比如说lt9611 ,芯片内置i2s 接口,用于接收主控的i2s 音频信号,等案例这个时候就需要一个dummy codec ,挂到平台上,注册声卡出来。当播放音频时:主控播放*.wav ----平台i2s rx ------设备lt9611 i2s —>输出2. 虚拟codec 的注册到平台的原创 2022-05-30 20:57:44 · 1266 阅读 · 0 评论 -
Type-c\Usb3.0
1.引脚定义图2.引脚定义说明要理解Type-C的原理,首先要了解他的PN即定义,Type-C口有4对TX/RX分线,2对USBD+/D-,一对SBU,2个CC,另外还有4个VBUS和4个地线 [2] 。当然,如果接收端只需要DP信号,不需要USB 3.1信号,那DP可以利用全部4对TX/RX差分线做输出,从而实现最多4lanes的DP输出,提供高达32.4Gbps的总输出带宽(每条lane可以输出8.IGbps),轻松实现5Kx3K60帧视频,甚至最高可达8K×4K 60帧视频(4:2:0数据)转载 2022-03-07 19:06:54 · 7165 阅读 · 1 评论 -
MIPI LCD屏厂初始化时序转换为 qcom,mdss-dsi-on-command
屏厂初始化程序转换为android/linux系统上电时序1. DCS_Short_Write_1P(0xE0,0x00);转换qcom,mdss-dsi-on-command 2.{0xF0, 5,{0x55, 0xAA, 0x52, 0x08, 0x00}}, 转换qcom,mdss-dsi-on-command原创 2022-02-10 14:39:38 · 5782 阅读 · 0 评论 -
《linux 相关工具record》
简介:今天翻到之前学习的记录,整理了一下,但还是有点乱,发出来记录一下。主要的是ftp,nfs在linux上的部署方法,五、六、七是针对于nxp平台arm32位的一个soc实践记录,其中记录了kernel zImage 在emmc相关内容,有用也没用。一、repo相关,是一个链接介绍了repo,git管理代码的方式,前几天更新了一个nxp上repo上传代码的步骤,可以参考:https://blog.csdn.net/m0_57123509/article/details/121808895一:repo原创 2021-12-18 15:34:54 · 712 阅读 · 0 评论 -
《android AP/BP理解》
一:AP和BP简介大多数手机都至少存在两个处理器,一个负责AP侧,一个负责BP侧。操作系统、用户界面、应用程序都在application processor AP上执行,AP运行在arm上一个处理器上。也就是我们开发rk和nxp平台Android系统,日常所作的事情。而手机射频通信控制软件,运行在另一个处理器上,这个处理器cpu称为BP(Baseband)把射频功能放在bp上主要原因: (1) 射频控制函数(信号调制、编码、射频为一等)都是与时间高度相关的。最好的办法把这些函数放在一个cpu上原创 2021-12-15 10:28:59 · 4827 阅读 · 0 评论 -
《高通mbhc耳机检测》
1.简介Mbhc是codec的一部分,用于检测耳机插入、移除到3.5mm的音频插孔中,以及检测耳机按钮的按下和释放,主要功能: 拔插检测 拔插类型检测:headset、headphone 按钮按下、释放检测 美标国标耳机检测 阻抗检测2.拔插类型美标耳机(US/CTIA headset 4线类型):MIC GND R L欧/国标耳机(Euro/OMTP 4线类型):GND MIC R LHeadphone(3线类型): GND R L如何区分国标(欧标)、美标耳机?原创 2021-12-09 10:53:30 · 7008 阅读 · 1 评论 -
C语言宏定义
doit:一些关于宏的高级定义记录,#include<stdio.h>enum{test0=0,test1,test2,test3,};// 在宏定义中,使用 # 将参数转为字符串#define TO_NAME_INDEX(X) #X,Xint main(){ printf("zyy.....%s\r\n",TO_NAME_INDEX(test3));}out:zyy@host-pc:~/zyy/$ ./main zyy.....test3原创 2021-11-24 10:14:42 · 1389 阅读 · 0 评论 -
《 linux regmap子系统》
doit一:简介最近在看高通音频相关的驱动,发现codec接口时spi接口,在驱动中找到对应spi接口驱动,发现和之前接触的codec rt5651-i2c驱动不一样,它采用的时regmap框架写的,就整理了一下简单的介绍,如下:首先,要明确一点:regmap是怎么出现的?以i2c为例,在linux内核里面有成千上万的i2c设备驱动。各种i2c设备都需要通过i2c子系统的api进行寄存器的操作。在各自的设备驱动中,i2c读写寄存器的操作通常被封装成2个静态函数xxx_i2c_red_reg()/原创 2021-11-14 14:10:35 · 1216 阅读 · 0 评论 -
《Linux异步通知》之青春往事
青春往事高中时期,当时是夏天,天气非常炎热。我们还是住宿舍,一个大院子,园子的南面是2m高的墙,东西两面是宿舍楼,北面是宿舍大门,把我们围得很安全,但宿舍很简陋,连锁都没有,所以到晚上时候,都是敞开门,穿着内裤睡觉,裤子也放在床尾。 由于是刚开学,几千块钱的学费都在自己手里攥着,有的同学就也放在了床尾。凌晨两点,正睡得熟,迷迷糊糊听见抓小偷。我当时听见这个顿时很兴奋,就跑了出来,一看一个人影正在翻南面的2m的高墙,身手很好,三下五除二就来到了墙头,跳了下去。我一个同学的学费被这个小偷顺了出去,也跟着翻原创 2021-10-09 22:22:37 · 318 阅读 · 0 评论 -
《linux内核中断》之 法外狂徒张三删库跑路
法外狂徒张三删库跑路真实案例:在今年2月份,国内一个程序员删库的消息传遍it界。他的几行代码,直接让上市公司微盟的市值一天蒸发超10亿,300百万用户直接受到影响。网上是谣言四起,可谓是最牛逼的删库跑路案例。删库跑路是我们程序员可望而不可及的,是传说。最终没有逃出法律的制裁,罚钱和判刑一样也没少,真是删库一时爽,身后火葬场。删库跑路,是我技术道路上永远无法企及的高度。但是对我们技术人员,千万不要因为一时脑热,做出不可挽回的错误i,让自己身陷牢狱之灾。除此之外,企业也应该完善安全机制和管理制度,顺便在想一原创 2021-09-25 15:55:31 · 464 阅读 · 0 评论 -
《Linux 内核定时器》之iPhone13真香
iPhone13真香系列iphone 的发布会在9月17号,我的一位小伙伴,在发布会结束之后就下单,晒在了朋友圈。作为一个,作为一个爱国主义着,当然要支持国产品牌。最主要的原因:一些品牌吃着中国的饭,砸着中国的碗。像前段时间的H&W的一些知名品牌,做出"停用中国棉花"的决定,所以本人也是内心很抵制一些非国产品牌。但是,第二天我俩聊天 , 12期免息,一个月500,还是值得入手的,啊,真香 !在真香的同时,希望苹果不要做“吃着中国的饭,还砸着中国的锅”!!!H&W就是个例子,天下哪有这样原创 2021-09-20 12:58:57 · 198 阅读 · 1 评论 -
linux驱动 阻塞和非阻塞IO 篇二
@上一篇介绍了linux阻塞与非阻塞的基本概念,以及应用程序的小demo和kernel层对应的api函数。那接下来就以实例来分析,如何在linux驱动层添加等待队列和轮询的方法,以及区别。**一:简介**在linux驱动中,存在很常见的两种设备访问模式,所以在编写驱动的时候,一定要考虑到阻塞和非阻塞。这样做有以下好处1. linux驱动标准的的写法,让你写的驱动正式,拿的出手,也能锻炼个人的规划能力、编程能力、思维能力;2. 提高个人的审美能力,当你去看一个驱动,里面的各种框架,组件的交叉的逻辑原创 2021-09-13 23:56:43 · 173 阅读 · 0 评论 -
linux 阻塞和非阻塞IO 篇一
@在linux驱动开发中有两种常见的设备访问模式,在编写驱动中要考虑到阻塞和非阻塞两种模式。简介这里的io不是我们所说的gpio引脚,是指input/output,也就是输入/输出,是应用程序对设备驱动的输入/输出操作。当应用程序访问设备驱动进行操作的时候,如果不能获取设备资源,阻塞式IO就会将应用程序挂起,直到设备资源可以获取为止。对于非阻塞IO,应用程序对应的线程不会挂起,它要么轮询等待,直到资源可以使用,要么直接放弃。总结:1->阻塞IO 应用程序对应的线程直接挂起,直到设备资源可以访原创 2021-09-07 16:17:05 · 228 阅读 · 0 评论 -
linux 并发与竞争
**并发与竞争**一.简介linux系统是一个多任务的操作系统,存在多个任务同时访问同一片内存区域,这些任务可能会相互影响覆盖内存中的数据,造成内存数据混乱。这个问题会导致系统panic。但总结一下有以下几个原因:a. 多线程并发访问b.内核抢占试访问c.中断程序并发访问d.smp多核间并发访问 并发访问带来的问题就是竞争。如果多个线程同时操作临界区的公共资源,线程之间就存在竞争关系,为了防止出现以上问题,我们在编写去佛那个的时候要考虑到并发与竞争。二.作用保护共享资源,防止并发访问原创 2021-08-30 16:24:48 · 206 阅读 · 0 评论 -
linux bcm43455 wifi led状态灯调试
前言:wifi 状态灯在嵌入式项目中很常见,同过状态灯可以判断wifi是否正常工作,不同的led status,可以表示数据发,收等。在nxp项目中,用到的是bcm43455 wifi (博通ap6255),需要增加一个led灯来表示wifi是否正常工作。有以下方案: 方案一:bcm43xx ap硬件有先关的led-gpio,由硬件来完成 方案二:无led-gpio,需要nxp主控引出一个gpio与wifi状态tx、rx、radio状态建立trigger 方案三:wifi驱动力面增加phytx0、p原创 2021-08-02 10:51:57 · 1262 阅读 · 0 评论 -
龙讯桥接芯片lt9611 hdmi out audio调试
前言:在nxp-imx8mm相关项目中用,使用龙讯的桥接芯片lt9611。在调试过程中,发现,audio挑显示器,在一些显示器上没有声音,主控的i2s clk,data信号都是输出到lt9611上的。于是在排查了一些必要条件后,把audio部分的问题归结到了lt9611 mcu的i2s接口上,即、lt9611 i2s 相关寄存器上。1.原理图:i2s:mclk,sclk,ws , data用示波器量都是有信号的。2.官方提供的单片机参考代码audio部分:可以看到整个代码中,只有在函数入口初始原创 2021-08-02 09:25:26 · 4030 阅读 · 5 评论 -
input 子系统(调试 ili251x-tp)
前言:学习这个input子系统是为了看当下项目中ili25xxtp的遇到的问题,也是对自己的一种积累。当前项目用到tp : ili25xx 触控芯片,在linux debian10上,由于系统对触控类设备支持不太友好,上层一些app bt network出现触控不准,触控不到问题。对比鼠标,app能正常工作。通过对比: 鼠标上报的是相对坐标rel,上层点击正常 tp上报的是绝对坐标abs,上层触控异常所以想通过改tp上报的键值,让tp像鼠标一样上报相对坐标,以下是改动部分,下周验证以下。st原创 2021-08-01 18:46:09 · 839 阅读 · 0 评论 -
linux-wifi/bt调试
wifi、bt开发指导rockchip平台rk wifi、bt调试ap系列:ap6210、ap6212、ap6255、ap6256、ap6356rtl系列:rtl8897、 rtl8811usb系列:8897nxp平台nxp wifi、bt调试ap系列:bcm43455、ap6255、wifi、bt调试步骤:1>wifi /bt固件2>wifi/bt 驱动3>wifi/bt 加载4>wifi/bt 上层调试工具5>wifi/bt debu原创 2021-07-09 13:02:56 · 3340 阅读 · 1 评论