- 博客(186)
- 资源 (22)
- 收藏
- 关注
原创 Android R(11) HIDL 服务添加
HIDL 原本是android9.0 以上版本都具有的特性,主要用于java 层和C/C++ 层功能的连接,简言之,一句话通过hwbinder 与 HAL 进行IPC 通信。 通过hidl-gen工具可以将框架搭建好,有效地将业务层,驱动层隔离开。下面以T9630为例,分享一下touch 模块HIDL 搭建。一. 创建hal 文件我们创建Itouch.hal, types.hal 放到指定目录二. HIDL 生成Android.bp, .cpp, .h 文件首先系统必须完整编译通过了确保hid.
2021-10-22 15:33:24 7971 1
原创 T9632 待机led 控制
当待机流程就会完成一些硬件驱动的现场操作,灯也是如此。kernel\fusion\4.9\kernel\reboot.c/* * Reboot system call: for obvious reasons only root may call it, * and even root needs to set up some magic numbers in the registers * so that some mistake won't make this reboot the whole
2021-05-29 14:31:08 820
原创 T9632 遥控器按键配置
T9632 是mtk 方案的TV芯片,将mstar 原有框架进行了重新设计,很多功能的部署也发生了变化。本片主要分享一下遥控器的配置功能。下面是遥控器功能部署的几个基本步骤核心步骤在1, 2 ,就是通过内核的键值(input-event-codes.h)为桥梁将遥控器的码值和Framework 按键事件连接起来。一. 遥控器码值与键值的映射首先我们不看遥控器协议,这部分基本是标准的,将遥控器在内核input系统注册为输入设备也是标准的。我们只看按键的配置。我们看那个ir_config.ini
2021-05-29 10:45:38 1483 2
原创 Mstar Mac Phy 驱动学习
MII.h 和 MII.c这是MII协议。里面有MII协议的PHY寄存器地址,及MII通信接口库Linux的mdio主要是为了管理PHY芯片寄存器的,跟踪代码发现,它会进行创建PHY设备及一些初始化工作。Linux内核有很多的PHY驱动。PHY一般和具体的MAC控制驱动联系一起,这里以TI的MAC驱动为例,由它切入到PHY驱动。Linux内核通过mdio总线访问、控制PHY,源码实现在driver/net/phy/mdio_bus.c中Linux Ethernet PHY 驱动:http://w
2021-03-02 20:03:33 1350
原创 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 2787
原创 IOCTL 获取网络信息(Ethtool工具)
https://www.cnblogs.com/liujiacai/p/8207267.htmlhttps://www.cnblogs.com/shijianyujingshen/p/7441633.html
2021-02-01 17:37:42 2638
原创 Linux 下获取网络属性(ip,mac)
Linux 下获取网络属性(ip,mac)指令获取显示当前系统拥有的网卡# ls /sys/class/net/ eth0 ip6tnl0 lo p2p0 sit0 wlan0 显示网卡eth0 当前的属性节点文件#ls /sys/class/net/eth0/ addr_assign_type dor
2020-12-30 10:50:59 1258
原创 mboot/kernel 自动化编译流程分析
在我们开发好软件之后,发布固件,ROM 包时,需要自动化编译。 这个时候要解决一个问题,就是编译过程中交互输入完成配置项选择。我们先看一下传统的编译方式,如图都是先拷贝一个 .config*** 配置文件覆盖当前的 .config 文件,接着make menuconfig < … ,重定向输入一个文件,来代替手动选择流程, 最后make clean && make。流程比较简单,但是如果碰到不支持图形界面的服务器,那么执行make menuconfig 会失败,从而导致构
2020-09-10 11:57:11 1647
原创 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 1168
原创 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 1562
原创 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 2280 4
原创 HID 触摸数据流程分析
我们基于mstar 一款4.9 的内核进行分析,针对原生内核我们做以下配置:CONFIG_INPUT_TOUCHSCREEN=yCONFIG_TOUCHSCREEN_PROPERTIES=yCONFIG_HID_MULTITOUCH=y就可以适配一些标准的HID触摸屏和HID 触摸框。HID 触摸驱动注册hid-multitouch.cstatic struct hid_drive...
2020-05-05 17:14:56 3176
原创 android 平台模拟按键转发学习
在android平台通常需要通过按键来实现一些快捷功能,可以通过模拟按键来完成对应功能。例如hardware/power/power.cpp 中bool sendPowerKeyToAndroid() { int fd = 0; int ret = 0; int version = 0; FILE * deviceInfoFd = NULL; c...
2020-04-08 19:59:48 391
原创 M 平台reboot 流程分析
reboot 在我们开发过程中,已经软件固件升级/recovery过程中经常使用到。重启工具# which reboot /system/bin/reboot在Android O里面reboot工具的源码在system\core\reboot\reboot.creboot 工具...
2020-03-30 22:23:40 851
原创 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 2042 1
原创 mstar 平台声音曲线(固定输出增益)
mstar 平台在配置完音频通道,调通功放后,需要调整声音曲线和声音功率。声音功率是调整音量逻辑最大值(100)时,喇叭(负载)功率的最大值,而声音曲线是音量0 ~ 100 整个区间,对应的音频输出的增益大小,所以声音功率调试也是曲线调试的一部分。1. 增益寄存器例如,我当前平台音频输出对应的bank 是0x112D。其中,音频输出通道有6个,如下两个寄存器组成16 位,来完成增益值的...
2020-03-21 14:07:01 1639 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
原创 光感调试
我们使用手机时,经常会发现手机在不通环境下屏幕的背光亮度不一样。其实就是开启了自动背光调节功能。原理就是:光感获取环境光的值,然后背光根据一个环境光的曲线来调整背光的值。这个环境光曲线每家不一样,不同用户感知的效果也不一样。我们这里主要分享光感驱动部分。下面以ISL29023 为例1. 硬件连接拿到规格书,第一步,确定管脚的描述定义,找到和主芯片通信的部分,电源相关PIN(VCC,GND...
2020-03-05 18:52:09 1998
原创 HID 设备的双usb 触摸方案分享
针对越来越多的商显项目,由于有触摸的交互需求,那么触控方案选择也就比较重要。目前市面流行的主要有红外框的,电容屏的。单系统(安卓 or OPS)的又分为串口,usb口。双系统(安卓 + OPS) 则有“串口+USB”,“双USB” 方案。如下:其中图一,是单系统连接,比较简单,打开设备(/dev/ttySx , /dev/hidarwx ,其中<x = 0,1,2,3 … >)...
2020-03-03 22:52:12 3725 2
原创 Mstar温控(热敏电阻)调试笔记
温控见到的I2C 类型的,还ADC 类型的。两种类型获取数据的通道及工作原理不一样。I2C data 获取到的数据根据协议转换成温度即可, 而ADC 类型的温控一般指热敏电阻,连接在主芯片的SAR 口,主芯片通过sar 的电压值,得到热敏电阻的阻值,再通过阻值计算当前的温度。从流程上看要掺一点。热敏电阻连接上图是为了兼容多颗料绘制的原理图,根据实际上料情况简化如下:热敏电阻RT 与 R...
2019-11-21 14:35:19 1263 4
原创 Mstar 平台RTC 时钟(RX8130CE)调试
很多嵌入式设备在使用过程中,会碰到未联网的状态,但是有需要保证时间的正常,或者定时开关机功能。这个时候就需要添加RTC 时钟模块。下面通过mstar 平台的rx8130ce 型号时钟调试为例,一起分享。RTC HW 连接从HW提供的原理图设计时,提供了两款RTC 时钟芯片,地址分别是0x64,0xD0。从提供的PCB 板上,UT3 未上件。 我们进一步查询I2C 的连接走线。分析完...
2019-11-20 17:53:14 5084 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 1565
原创 mstar 平台I2C 配置
芯片的pin 脚可以用作不同的功能,总结一句就是外设进行状态和数据交换。最常用的是作为GPIO,设置为输出模式时,通过高低电平来控制一些外围设置;// 如LED,屏的电源,背光的开关,功放的静音等等。 除了控制设置之外,还需要和外部设置传输数据。pin 作为GPIO 设置为IN时,是获取外设的高低来判断外设的状态,最常用的一些source 通道的detect,及一些wakeup 功能。p...
2019-10-30 15:29:51 1932
原创 Mstar 平台背光时序调试
Mstar panel ,VB1上电是分开的,但是针对不同的屏 时,时序有差异,也就是这两者的启动时间间隔是不一样的,下面我们分享一下调试经验。Panel/VB1 连接从硬件原理图上看,panel on/off 由pin D2 控制;VB1 由pin E4 控制。这两个PIN都属于简单的GPIO口,只需要配置为输出模式,通过高低电平来控制外设。软件配置原理图上面的pin 在boar...
2019-10-30 14:37:08 2203
原创 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
原创 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 2511 1
原创 Linux 平台下zRAM 和 swap 使用(内存交换)
当内存不足时,linux 系统可以向ROM 要空间给内存使用,zram 和 swap 可以完成该功能。zram: 是把物理内存的一部分划分出来,把不是常用的内存数据压缩后放到zram里, 用到的时候把数据解压出来, 相当于牺牲了一些cpu效率,变相增大了内存。磁盘 swap:是把磁盘的一部分作为内存, 对应用来说完全是透明的,相当与增大了内存, 但是缺点很明显, 当用到swap的时候,速度会变...
2019-10-14 17:24:48 8249
原创 linux 阻塞/非阻塞模式下触摸框数据的获取
linux 在针对文件进行IO读写时,存在几种方式,非阻塞模式,阻塞模式也即非同步,同步模式。两个不同的模式读取数据时,同是read获取,但是返回值可能不一样。非阻塞模式此种模式下,需要不停的轮询获取数据,且设置的时间周期需要参考对应设置的时间周期,多次调试才可达到最优。下面分享一下串口非阻塞模式读取的基本流程。openinput_fd = open("/dev/ttyS1", O_R...
2019-09-30 11:11:51 669
转载 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 4323
转载 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
原创 Mstar 平台(648)唤醒之串口唤醒
串口唤醒功能主要是从supernova 待机进入PM后,串口接收PC端口发送过来的特定字串,然后将主板唤醒的功能。与IR,KEYPAD,WOL,CEC,MHL 等等基本流程一致,触发源不一样而已。待机前设置待机参数 pstPMCfg->stPMWakeCfg.bPmWakeEnableIR = TRUE; pstPMCfg->stPMWakeCfg.bPmWakeEn...
2019-09-10 16:10:40 2517
原创 Mstar 648 平台遥控器/按键包POWER键配置
mstar 平台经常配置客户遥控器,客户提供遥控器后,一般我们需要拿到遥控器的头码,按键的物理码值表(头码配置后也可以getevent获取得到)。系统在运行过程中,一般有两个模块中需要对遥控器进行解码,系统运行过程中(kernel),系统待机过程中(PM)。所有我们需要在这个两个地方配置。PM配置遥控器由于PM 是机器待机过程中运行的一段小程序,响应一些唤醒源(遥控器,按键板,uart唤醒,...
2019-09-06 18:28:23 3292
原创 MST8386 新增私有分区
android平台产品开发通常会,产品方案商通常会新增分区存放私有文件,key,bin等等。通过分析releaseimage.sh 文件,可以看到函数release-images中会调用split-fs-partition,release-fs-partition,make-fs-partition 来创建system,userdata,vendor,cache,tvservice,tvcon...
2019-09-04 19:35:55 1775
原创 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 6298
原创 A 平台ADC 按键配置
不同芯片厂商配置keypad 的方式不一样,基本原理一样“将sar 口电压值分成几个区间,每个区间映射一个KeyCode,然后注册一个input 设备,将keycode 抛上去”,上层应用通过捕获keycode 做逻辑处理。我们先看一下电路连接pin E15 作为SARADC_CH0 接收按键板产生的电压变化,根据配置区间映射上抛keycode。adc_keypad 示例Required...
2019-08-29 17:02:28 1993 1
原创 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 976
原创 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 995
原创 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 2252
TypeCDump_Customer_v1.87_20190625.zip
2020-07-17
linux-网卡驱动.zip
2019-12-13
Linux-2.6内核配置参考.pdf
2019-12-13
RTC_RX8130-datasheet-src.zip
2019-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人