linux
文章平均质量分 84
Alex.Ke
619741254@qq.com
展开
-
linux WOL 唤醒信号监听,解析
wol 本质也是一个网络包,用于局域网内部唤醒只用。WOL 包分析使用工具Wake On Lan 配置wol.mac 地址,ip.mac 地址(255.255.255.255),然后出发一下。使用Wireshark抓取刚刚的WOL 包可以看到服务端发出的这个包的大小为144 byte,下面我们看看包里面有哪些字段。destination broadcast( eth.dst)占用6 个字节source hardware address(eth.src)占用6个字节Type(eth原创 2021-02-24 15:30:32 · 2801 阅读 · 0 评论 -
mstar 平台typec 5450 升级
商显板领域板卡中有许多扩展的端子,且这些端子是带mcu并且包含内置固件程序,为了后续的维护通常需要有升级功能。5450 就是一款扩展芯片,将手机信号转换成DP 信号,主板上的DP转换芯片再将DP信号转换HDMI 信号最后输入给主板显示出来。下面我们围绕5450 来分享一下升级的流程。1. 主体流程如果是原厂提供的PC 工具端的基本升级流程: 大体就是启动VENDOR_CMD_ENABLE,FLASH_ACCESS_ENABLE,SMBUS_REASE_FLASH,CHECK_BANK,WRITE_B原创 2020-08-08 11:49:10 · 1172 阅读 · 0 评论 -
mstar 平台内核i2c总线介绍
所有嵌入式平台都会用i2c 来挂载设备,mstar 平台一般会配置两组i2c,但是如果一路i2c 总线上面挂载设备太多或者设备地址出现冲突时,就需要添加新的总线。硬件连接i2c0连接如下i2c0也即给DCDC使用的一组总线,主要是调整cpu 核心电压,该总线不允许用户挂载其它设备对应的clk,data 是芯片pin脚是E6,F6i2c1 的连接如下对应的clk,data 是芯片pin脚是AE11,AD11i2c2 的连接如下对应的clk,data 是芯片pin脚是AD16,原创 2020-07-17 17:38:08 · 1564 阅读 · 0 评论 -
Mstar 平台hub/usb 设备软复位操作
在嵌入式项目里面,会扩展很多usb端口,由于主芯片本身的局限性还会增加2.0,3.0 的usb hub。有时还需要切换usb 触摸的链路,这样还需要添加switch 开关。小板和子卡上面的usb hub 会与主板连接后,由于时序等其他兼容性问题,尝尝会导致hub 初始化失败或者挂死,这个时候就需要重置恢复正常工作。这里我们只分享一下hub 的软复位。linux下一切设备皆文件,现在我们就找到连接在主板上面的hub文件。查找设备查看所有usb 设备vid,pidMstar:/ # lsusb原创 2020-06-10 20:33:12 · 2287 阅读 · 4 评论 -
mstar 平台GPIO在线调试
1. GPIO状态cat /sys/kernel/debug/gpio可以看到所有当年GPIO口的状态,输入输出模式,输出高/低gpiochip0: GPIOs 0-115, gpio: gpio-0 ( |sysfs ) in hi gpio-1 ( |sysf...原创 2020-03-21 17:19:14 · 2043 阅读 · 1 评论 -
mstar 平台声音曲线(固定输出增益)
mstar 平台在配置完音频通道,调通功放后,需要调整声音曲线和声音功率。声音功率是调整音量逻辑最大值(100)时,喇叭(负载)功率的最大值,而声音曲线是音量0 ~ 100 整个区间,对应的音频输出的增益大小,所以声音功率调试也是曲线调试的一部分。1. 增益寄存器例如,我当前平台音频输出对应的bank 是0x112D。其中,音频输出通道有6个,如下两个寄存器组成16 位,来完成增益值的...原创 2020-03-21 14:07:01 · 1645 阅读 · 1 评论 -
遥控器中断
我们以4.9.44版本内核的IR遥控器为例。1. 查看平台中断表使用cat /proc/interrupts命令其中横向,第一列是中断号,第二列是各中断在CPU中发生的次数,GICv2 是中断控制器的名称,第三列也是中断逻辑号,第四列是驱动注册的中断名称。例如:中断号 130 对应的就是遥控器的中断。2. 中断注册vendor\mstar\kernel\linaro\mstar2\d...原创 2020-03-20 13:52:47 · 782 阅读 · 0 评论 -
M平台双遥控器学习
在我们平常的TV,商显,等电子类产品很多是需要遥控器操作的。一起分享一下M平台遥控器驱动的源码。原创 2020-03-09 12:22:17 · 918 阅读 · 1 评论 -
Mstar温控(热敏电阻)调试笔记
温控见到的I2C 类型的,还ADC 类型的。两种类型获取数据的通道及工作原理不一样。I2C data 获取到的数据根据协议转换成温度即可, 而ADC 类型的温控一般指热敏电阻,连接在主芯片的SAR 口,主芯片通过sar 的电压值,得到热敏电阻的阻值,再通过阻值计算当前的温度。从流程上看要掺一点。热敏电阻连接上图是为了兼容多颗料绘制的原理图,根据实际上料情况简化如下:热敏电阻RT 与 R...原创 2019-11-21 14:35:19 · 1265 阅读 · 4 评论 -
Mstar 平台RTC 时钟(RX8130CE)调试
很多嵌入式设备在使用过程中,会碰到未联网的状态,但是有需要保证时间的正常,或者定时开关机功能。这个时候就需要添加RTC 时钟模块。下面通过mstar 平台的rx8130ce 型号时钟调试为例,一起分享。RTC HW 连接从HW提供的原理图设计时,提供了两款RTC 时钟芯片,地址分别是0x64,0xD0。从提供的PCB 板上,UT3 未上件。 我们进一步查询I2C 的连接走线。分析完...原创 2019-11-20 17:53:14 · 5097 阅读 · 1 评论 -
M 平台audio path 配置
客户在拿到TV的公版之后,通常会进行客制化。在HW 修改电路之后,SW 通常也需要重新修改匹配硬件,这样才能保证功能的正常使用。修改电路后,VGA通道的连接电脑后,电脑的声音无法传递过来。下面以VGA 通过的line-lin 为例硬件连接从原理图上看,VGA通道的PC audio in 是属于芯片端的pin 脚是Y3,AA4,对应的port 是line-in 第 0 路。Audio 的映射...原创 2019-11-05 11:31:14 · 1566 阅读 · 0 评论 -
mstar 平台I2C 配置
芯片的pin 脚可以用作不同的功能,总结一句就是外设进行状态和数据交换。最常用的是作为GPIO,设置为输出模式时,通过高低电平来控制一些外围设置;// 如LED,屏的电源,背光的开关,功放的静音等等。 除了控制设置之外,还需要和外部设置传输数据。pin 作为GPIO 设置为IN时,是获取外设的高低来判断外设的状态,最常用的一些source 通道的detect,及一些wakeup 功能。p...原创 2019-10-30 15:29:51 · 1935 阅读 · 0 评论 -
Mstar 平台背光时序调试
Mstar panel ,VB1上电是分开的,但是针对不同的屏 时,时序有差异,也就是这两者的启动时间间隔是不一样的,下面我们分享一下调试经验。Panel/VB1 连接从硬件原理图上看,panel on/off 由pin D2 控制;VB1 由pin E4 控制。这两个PIN都属于简单的GPIO口,只需要配置为输出模式,通过高低电平来控制外设。软件配置原理图上面的pin 在boar...原创 2019-10-30 14:37:08 · 2207 阅读 · 0 评论 -
M 平台按键强制升级流程分析
mstar 平台升级流程主要是在mboot 开机过程中进行,检测不通的触发条件从而进入升级流程。我们首先熟悉一个mboot的 启动流程。启动流程汇编部分不通方案也大致相同,我们主要以C部分启动流程为主,分析升级流程start.S 调转执行board_init_f板级初始化 board_init_r (@\MBoot\u-boot-2011.06\arch\arm\lib\board.c)...原创 2019-10-26 15:34:10 · 1276 阅读 · 0 评论 -
Mstar 平台TCA9539 移植
tca959 作为一款纯IIC控制的mcu,上电后即可通过主控IC的I2C 来控制mcu 的管脚,设置这些pin的input / output 模式,以及获取output的高低,另外也可以获取input的状态。通常主控IC 的IO 口不够用时用来扩展IO 口。TCA9539 I2C地址的确定查看TCA9539 的datasheet 文档,地址部分,总共有7位,其中Slave address 的...原创 2019-10-25 15:40:15 · 2519 阅读 · 1 评论 -
Linux 平台下zRAM 和 swap 使用(内存交换)
当内存不足时,linux 系统可以向ROM 要空间给内存使用,zram 和 swap 可以完成该功能。zram: 是把物理内存的一部分划分出来,把不是常用的内存数据压缩后放到zram里, 用到的时候把数据解压出来, 相当于牺牲了一些cpu效率,变相增大了内存。磁盘 swap:是把磁盘的一部分作为内存, 对应用来说完全是透明的,相当与增大了内存, 但是缺点很明显, 当用到swap的时候,速度会变...原创 2019-10-14 17:24:48 · 8275 阅读 · 0 评论 -
Valgrind工具的下载编译
Vragrind下载:http://valgrind.org/downloads/repository.htmlVargrind编译: cd valgrind ./autogen.sh ./configure --prefix=/usr/bin make make install说明:如果虚拟机中automake, autoconf , m4,版本偏原创 2014-05-13 12:16:03 · 1143 阅读 · 0 评论 -
M平台 按键板/触摸框 虚拟uinput 设备
基于Android平台的TV 产品,输入设备中除了上篇提到的遥控器,空鼠。还有一些模拟出来的uinput 设备“Mstar Smart TV Keypad” ,“libxTouchScreen” 。1. 虚拟按键板上篇我们通过getevent -l 可以看到device 2(/dev/input/event3)是属于按键板的keypad设备,在Mstar 平台作为一个服务在后台运行在运...原创 2019-07-31 11:55:07 · 1781 阅读 · 0 评论 -
Mstar平台SAR 口使用
SAR 口作为IC 的input 端,一般采集连续的电压值,然后根据区间划分转换成码值,基于这一个特性,按键板,部分温控器件,光感器件可以使用该特性完成一个ADC转换的效果。SAR 物理连接如上面两图,是按键板的与芯片端的SAR 物理连接图,按键down 之后,产生的电压值变化通过SAR 口进入芯片,驱动SAR 模块通过上层配置,来将不同电压区间 映射成对应键值传递上去。S...原创 2019-07-31 20:59:16 · 3375 阅读 · 0 评论 -
Nova Tek Hdmiout 小板调试总结
NovaTek HDMI out小板调试涉及知识点:1.Mboot 添加命令行指令”hdmiout”;2.Mboot 添加功能宏,可配置编译;// UConfig3.Mboot 模块I2C编程;4.DDC/CI 协议NovaTek out 小板大量服务于传统显示器。目前在hht 658 上面应用的作用是接入vb1信号,然后透传输出一个vb1信号直接给屏,再输入一路HDMI信号。其小板...原创 2019-08-14 15:55:35 · 2254 阅读 · 0 评论 -
A平台pin_mux_reg 配置
本文以S905D 三模配置为例,也即DVB-C/DVB-T,DVB-S 。确认PIN脚连接查看原理,确认外设和芯片pin的连接链路。Serial TS stream如下DVB - C/T 这一路连接的是芯片的管脚是V21(GPIOZ_0),V20(GPIOZ_1) ,U22(GPIOZ_2) ,U21(GPIOZ_3),主芯片只需要接入即可解TS流,该路属于串行serial TS St...原创 2019-08-27 18:18:44 · 997 阅读 · 0 评论 -
A 平台I2C 的使用
下面分享一下amlogic 平台I2C 使用的一点心得。I2C controllers 概述I2C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or “eye-two-cee” , 它是一种两线接口。I2C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。SCL:...原创 2019-08-29 15:24:34 · 977 阅读 · 0 评论 -
A 平台ADC 按键配置
不同芯片厂商配置keypad 的方式不一样,基本原理一样“将sar 口电压值分成几个区间,每个区间映射一个KeyCode,然后注册一个input 设备,将keycode 抛上去”,上层应用通过捕获keycode 做逻辑处理。我们先看一下电路连接pin E15 作为SARADC_CH0 接收按键板产生的电压变化,根据配置区间映射上抛keycode。adc_keypad 示例Required...原创 2019-08-29 17:02:28 · 1993 阅读 · 1 评论 -
Android usb 设备管理器lsusb 分析
在android 平台,我们再调试所有usb 设备时,硬件焊接好后,在内核usb 核心驱动正常情况下(当然只要USB外设遵循标准协议基本没有问题),我们都会通过lsusb 指令在确认usb 设置是否正常接入且被识别到,并且得到usb 设备的vid,pid,及bus id,device id。lsub 命令通过命令,我们可以查询到当前系统中,在usb 的三条总线分别插入的6个USB设备。ls...原创 2019-09-04 11:52:16 · 6314 阅读 · 0 评论 -
Mstar 平台(648)唤醒之串口唤醒
串口唤醒功能主要是从supernova 待机进入PM后,串口接收PC端口发送过来的特定字串,然后将主板唤醒的功能。与IR,KEYPAD,WOL,CEC,MHL 等等基本流程一致,触发源不一样而已。待机前设置待机参数 pstPMCfg->stPMWakeCfg.bPmWakeEnableIR = TRUE; pstPMCfg->stPMWakeCfg.bPmWakeEn...原创 2019-09-10 16:10:40 · 2519 阅读 · 0 评论 -
Linux 添加新驱动模块(理解驱动模型)
讲解驱动模型,device,driver,bus 之间关系。 KObject,Kset,Kset_Type ,sys文件系统关系。通过添加ldd 驱动加深理解驱动模型。转载:https://www.cnblogs.com/alan666/p/8311852.html#top...转载 2019-09-17 16:30:40 · 348 阅读 · 0 评论 -
LInux usb mouse(鼠标)驱动分析
linux 下usb 鼠标的驱动基本上属于USB 协议中HID 设备的中断通信的应用。代码vendor\mstar\kernel\linaro\drivers\hid\usbhid\usbmouse.c,下面一起学习usb 鼠标驱动。USB mouse 设备结构struct usb_mouse { char name[128]; // 名称,一般存储制造商名称 char phys[6...转载 2019-09-18 16:27:25 · 4342 阅读 · 0 评论 -
linux 阻塞/非阻塞模式下触摸框数据的获取
linux 在针对文件进行IO读写时,存在几种方式,非阻塞模式,阻塞模式也即非同步,同步模式。两个不同的模式读取数据时,同是read获取,但是返回值可能不一样。非阻塞模式此种模式下,需要不停的轮询获取数据,且设置的时间周期需要参考对应设置的时间周期,多次调试才可达到最优。下面分享一下串口非阻塞模式读取的基本流程。openinput_fd = open("/dev/ttyS1", O_R...原创 2019-09-30 11:11:51 · 669 阅读 · 0 评论 -
M平台input设备分析
在Android平台通常有多个输入设备,遥控器,按键板,触摸屏/触摸框,鼠标,蓝牙笔等等。归根结柢都是属于Linux 平台的一个input device,上面的多个种类的输入设备是input device 的封装。下面以手上平台为例,一起学习了解遥控器设备的注册流程。android 输入设备的查询如图:上面描述了四个输入设备:触摸框(libxTouchScreen),按键板(MSt...原创 2019-07-30 18:19:16 · 797 阅读 · 0 评论 -
Linux ccache 工具的安装
Linux ccache 工具的安装Linux 下编译FFmpeg时,会出现找不到ccache 命令的问题,本篇记录一下自己”./FFmpeg-Android.sh: line 121: ccache: command not found”时的解决方法。ccache下载解压编译安装说明ccache 下载ccache 链接地址:http://ccache.samba.org/download原创 2017-07-20 13:43:10 · 11248 阅读 · 0 评论 -
gcc命令objdump用法
gcc命令objdump用法2009年03月29日 星期日 23:49gcc命令之 objdump ---------------objdump是用查看目标文件或者可执行的目标文件的构成的GCC工具----------以下3条命令足够那些喜欢探索目标文件与源代码之间的丝丝的关系的朋友。objdump -x obj 以某种分类信息的形式把目标文件的数据组织(被分为几大块)输出转载 2014-07-10 20:15:59 · 1098 阅读 · 0 评论 -
Linux的Proc文件系统详解
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系 统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变 内核的运行状态。基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特转载 2014-05-23 14:46:14 · 742 阅读 · 0 评论 -
Android 修改权限
通常我们调试原创 2014-06-06 13:25:52 · 1155 阅读 · 0 评论 -
printk的使用
1、基本原理(1)在UBOOT里设置console=ttySAC0或者console=tty1这里是设置控制终端,tySAC0 表示串口, tty1 表示lcd(2)内核用printk打印内核就会根据命令行参数来找到对应的硬件操作函数,并将信息通过对应的硬件终端打印出来!2、printk的使用(1)printk函数的信息如何才能在终端显示出来在内核代码inc转载 2014-05-23 14:29:24 · 1640 阅读 · 0 评论 -
Linux 路由信息配置,查询
在linux嵌入式设备中,调试时经常涉及到网络信息原创 2014-06-02 17:54:05 · 4208 阅读 · 0 评论 -
死锁分析
文章转自:http://www.ibm.com/developerworks/cn/linux/l-cn-deadlock/- 概述: 死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁转载 2014-05-12 18:56:04 · 781 阅读 · 0 评论 -
linux 内存检测工具之memleak
MemLeak 是一个C语言内存泄漏检测工具。 原理是利用 C 语言的宏调用来替代原有的函数调用, memleak 维护了一个链表,在这个链表中保存着程序中对内存函数调用的记录,这些函数包括:malloc、calloc、realloc、free。原创 2014-05-12 12:24:51 · 5999 阅读 · 2 评论 -
Linux 内存检测工具 memwatch的使用
1.首先我们可以到官网下载一份memwatch的源码,推荐使用地址http://www.linkdata.se/sourcecode/memwatch/原创 2014-05-07 16:28:25 · 10266 阅读 · 0 评论 -
程序性能分析工具 grof
grof简介gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。grof官网:https://sourceware.org/binutils/转载 2014-05-15 17:29:05 · 2095 阅读 · 0 评论 -
Valgrind的简单使用
上一篇已经jia原创 2014-05-13 17:50:56 · 1082 阅读 · 0 评论