自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 hdmiout 68411升级

2020-08-29 16:23:39 1977 2

原创 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

原创 M平台双遥控器学习

在我们平常的TV,商显,等电子类产品很多是需要遥控器操作的。一起分享一下M平台遥控器驱动的源码。

2020-03-09 12:22:17 916 1

原创 光感调试

我们使用手机时,经常会发现手机在不通环境下屏幕的背光亮度不一样。其实就是开启了自动背光调节功能。原理就是:光感获取环境光的值,然后背光根据一个环境光的曲线来调整背光的值。这个环境光曲线每家不一样,不同用户感知的效果也不一样。我们这里主要分享光感驱动部分。下面以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

00013578-RTL8306M_API_Driver_V1.0.3_20150721.zip

RTL8306M 网络交换机的SDK资料

2021-02-21

TypeCDump_Customer_v1.87_20190625.zip

1. 瑞晟微typec 升级工具; 2. PC 端快速升级typec芯片fw; 3. 同步搭载芯片原厂小板;

2020-07-17

linux-网卡驱动.zip

1. 介绍网卡设备DM9000 特性LED,EFFROM,电源等引脚定义; 2. 基于mini 2440 介绍网卡驱动模型; 3. 网卡驱动的探测,增删,操作等等;

2019-12-13

Linux-2.6内核配置参考.pdf

linux 2.6 内核配置选项说明: 1. 常规配置;2. 可加载模块支持; 3. 快设备层;3.CPU 类型及特性;4.电源管理选项; 5. 总线选项;6.可执行文件格式;7. 网络选项;8.设备驱动程序;9. 文件系统; 10. 分析支持; 11. 内核hack 选项; 12.安全选项; 13.加密选项; 14. 库子程序;

2019-12-13

第九章 LCD驱动.pdf

1. linux 平台lcd 驱动移植; 2. 简析framebuffer 原理; 3. 显示基本框架;

2019-12-13

rtc-BQ32000DR.zip

1. RTC BQ3200DR ; 2. M平台 RTC 3200DR 驱动实现; 3. 数据解析源码;

2019-11-21

RTC_RX8130-datasheet-src.zip

1. RX 8130CE datasheet; 2. mst8386 rtc 驱动code; 3. rtc 8130ce 协议分析;

2019-11-20

i2c for uboot.pdf

amlogic 平台uboot 中,i2c 的配置,i2c 的使用,i2c的初始化。

2019-08-29

i2c for kernel.pdf

amlogic 平台 i2c 的使用规则, 调试方法,如何定义等等。

2019-08-29

Linux内核I2C子系统初始化驱动架构.pdf

linux 内核 中I2C 系统结构,初始化流程,通信流程,读写方法等。

2019-08-02

Linux内核Input子系统初始化驱动架构.pdf

讲述linux 内核input 系统的框架,逻辑关系,驱动模型等。

2019-08-02

Linux内核USB驱动架构:USB设备驱动架构.pdf

介绍Linux 内核中USB 驱动的框架,图文并茂,设备的加载流程等等。

2019-08-02

Wifi模块全总结.pdf

讲述wifi 模块工作模式,802.11 协议简介,wpa_supplicant及调试工具wpa_cli使用。wifi驱动源码分析。

2019-08-02

linux-2.6.19.x内核编译配置选项简介.pdf

全面介绍,linux 内核编译配置选项,每条选项的意义,可以根据产品需要自行裁剪。

2019-08-02

WEXT-CFG80211-study.pptx

wifi 中wpa_supplicant AP 热点链接流程。简述wap_supplicant,cfg80211

2019-08-02

linux 命令手册

linux命令使用手册,分类齐全,方便查询

2014-05-06

Neptune C++ Runtime Library

neptune c++ runtime http://sourceforge.net/projects/neptune/

2014-04-30

最新DLAN源码

DLAN源码,适合DLAN开发,移植的同胞下载查阅。

2014-04-30

Jni 调用注意事项

JNI 方法调用时的一些注意事项,可做参考避免出现不必要的错误

2014-04-16

java c 之间参数与方法的调用

java 代码与c代码之间参数以及方法在调用时的转换

2014-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除