- 博客(150)
- 资源 (24)
- 收藏
- 关注
原创 MTK logo.bin手动制作(个人博客:浏览器直接输入wugn.tech)
概述目前项目有客户需要更换logo图片的需求,不同客户有不用的定制需求。代码分析目前情况,执行命令systool update bootlogo logo-verified.bin烧录失败:02-01 11:20:47.694 3096 3096 W paxsec : VerifyPaxImageByName logo-verified.bin02-01 11:20:47.694 3096 3096 W paxsec : file logo-verified.bin siz
2021-02-07 15:58:06
3328
2
原创 ST7703 LCM显示屏调试--基于MT6765
参考st7703_hd720_dsi_vdo驱动MTK驱动-----添加lcm液晶驱动在mt6735平台下驱动LCD显示屏步骤各种屏幕分辨率基于MTK平台LCM的移植mtk-lk display代码分析Kernel驱动加载流程mtkfb驱动mtkfb驱动通过数据结构platform_driver挂接的到platform总线上。2890 static struct pla...
2020-12-24 21:26:41
7626
原创 MTK充电温度保护机制
问题点发现低温箱关机状态下能充进去电。开机是正常的。参考Android 8.0 MTK平台 电池高低温提醒客制化kernel充电温度保护机制drivers/power/supply/mediatek/charger/mtk_charger.c充电保护线程:dts:/* Battery Temperature Protection */#define MIN_CHARGE_TEMP 0#define MIN_CHARGE_TEMP_PLUS_X_DEGREE 6#define MAX
2020-12-24 21:24:22
5760
2
原创 imx8qm LSM9DS1九轴驱动调试
HAL代码:https://github.com/STMicroelectronics/STMems_Android_Sensor_HAL_IIOhttps://www.st.com/content/st_com/zh/products/embedded-software/mems-and-sensors-software/drivers-for-mems/androidhal-iio.htmlkernel层代码:https://github.com/STMicroelectronic.
2020-12-24 21:18:16
1504
原创 fastboot启动初始化流程--基于MT6765
概述lk最主要的工作就是加载kernel和ramdisk,然后跳转到kernel中去执行。同时有几个比较重要工作也是在lk中执行:a.初始化LCD,加载并显示开机logo。b.对启动模式判断,meta模式,recovery模式,power off charging模式,fastboot模式等等。c.fastboot也是在lk中实现的,主要作用就是下载我们手机镜像。检测启动模式软件流程platform/mt6765/platform.c:static int bootstrap2
2020-06-20 11:16:54
4001
原创 XEN增加虚拟网卡linux-android双系统socket通信--基于imx8qm
主要在linux系统中增加start.sh脚本:linux系统主要完成insmod和分配网卡id及netmask工作root@imx8qmmek:/etc/profile.d# cat start.shinsmod /lib/modules/4.14.98+g5d6cbeafb80c/kernel/drivers/net/xen-netback/xen-netback.koinsmod /lib/modules/4.14.98+g5d6cbeafb80c/kernel/net/80.
2020-06-15 17:22:29
653
3
原创 max9286+max96705摄像头调试--基于imx8qm
一.硬件原理1.原理图2.引脚信息 /* max9286 */ SC_P_MIPI_DSI0_GPIO0_00 摄像头电源power-gpios SC_P_MIPI_CSI0_MCLK_OUT 摄像头信号触发,需要26HZ的pwm,gpi-gpios SC_P_ADC_IN0 pwn-gpios /* i2c */ SC_P_MIPI_CSI0_I2C0_SDA
2020-06-15 17:18:35
12208
34
原创 iomux介绍--基于imx8qm
举例:uart0功能实现,pinctrl-0选择的是pinctrl_lpuart0。通过查询datesheet或者i.MX_8QuadMax_Pinmux_v0.71.xlsx得知:UART0_RX和UART0_TX两个引脚分别复用ATL0功能。拆分如下:引脚名称 复用功能名称SC_P_ UART0_RX _ DMA_UART0_RX查询SC_P_UART0_RX_DMA_UART0_RX定义在kernel_imx\include\d...
2020-06-15 17:09:20
2334
原创 uevent拔插事件分析--基于imx8
1.uevent介绍Uevent是内核通知android有状态变化的一种方法,比如USB线插入、拔出,电池电量变化等等。其本质是内核发送(可以通过socket)一个字符串,应用层(android)接收并解释该字符串,获取相应信息。路径:system/core/init/ueventd.cppimx8 uevent说明:At a high level, ueventd listens for uevent messages generated by the kernel...
2020-06-15 17:01:53
2449
原创 驱动开发笔记--workqueue
参考工作队列(workqueue) create_workqueue/schedule_work/queue_work工作队列workqueue应用workqueue 用法实例概述工作队列是另一种将工作推后执行的形式,它可以把工作交给一个内核线程去执行,这个下半部是在进程上下文中执行的,因此,它可以重新调度还有睡眠。在2.6.36之后的内核当中对工作队列子系统作了改变,采用的机制改变为并发管理工作队列机制(Concurrency Managed Workqueue (cmwq))。在原来的机制当
2020-05-15 17:20:42
336
原创 驱动开发笔记--hrtimer高精度定时器
参考linux下jiffies定时器和hrtimer高精度定时器背景jiffies定时器,HZ=100,精度只能达到10ms。hrtimer高精度定时器,可做到ns级,此处做到毫秒如下例:历程#include <linux/dma-mapping.h> //DO-->hrtimer包含以下三个头文件 /* DMA APIs  
2020-05-15 17:19:32
569
原创 驱动开发笔记--platform_set_drvdata & platform_get_drvdata分析
概述在用到Linux设备驱动的platform框架时,常常会遇到两个函数platform_get_drvdata和platform_set_drvdata。通常,会在驱动的probe函数中获取device的相关信息,然后使用platform_set_drvdata进行保存局部变量。在其他函数中要用到时(比如remove),通过platform_get_drvdata来获取。函数定义include\linux\platform_device.h:static inline void platfo
2020-05-15 17:18:49
1633
原创 MTK 驱动开发---Vibrator
参考MTK 驱动开发(33)—Vibrator概述pmic mt6357为振动器提供ldo稳压电源。主要文件驱动drivers/misc/mediatek/vibrator/mt6765/vibrator.cdrivers/misc/mediatek/vibrator/vibrator_drv.cDTSkernel-4.9/arch/arm64/boot/dts/mediatek/M50.dts:&odm {... vibrator0:vibrat
2020-05-15 17:16:02
1761
原创 MT6765开机LOGO图片的显示原理
概述 Android 开机画面由三部分组成,第一部分在bootloader启动时显示(uboot);第二部分在启动kernel 时显示(kernel);第三部分在系统启动时(bootanimation)显示(动画)。uboot、kernel的LOGO(项目中一般这两张图片是一样的,即常说的开机LOGO)。代码位置mtk6739_q0_mp1/device/mediateksample...
2020-04-16 17:04:07
2244
4
原创 Ubuntu18.10在VMware中无法自适应全屏
网上查询我自己按照网上的教程反复下载vmware-tools完全没用,GG,所以尝试使用ubuntu自带设置试试看。解决办法setting->Devices->Displays->Resolution调整适应屏幕大小的分辨率即可。...
2020-04-04 09:55:35
671
原创 ubuntu SSH的安装及使用详解
SSH的安装及使用详解SSH简介传统的网络服务程序,如:ftp、POP和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你传给服务器的数据...
2020-03-28 15:20:21
1537
原创 android P驱动技巧历程--基于imx8
GPIO例程:DTS: pwn-gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>; #include <linux/of_gpio.h>struct sensor_data {... int pwn_gpio;...}struct sensor_data *max9286_data;dev = &...
2020-03-27 11:00:45
970
原创 i2c-tool使用详细说明
1.首先检测系统上有几组i2c:root@imx8qmmek:/etc/xen# i2cdetect -li2c-3 i2c 56247000.i2c I2C adapteri2c-2 i2c 56226000.i2c I2C a...
2020-03-27 10:55:03
14241
9
原创 蓝牙电话详细流程--基于imx8qm
tinyalsa:sco_tx_task负责1、2、3、4 ,in rate 48000, out rate 8000sco_rx_task负责4、3、5然后声音从喇叭输出。 in rate 8000, out rate 48000
2020-03-27 10:47:50
2627
5
原创 USB HOST和device切换原理--基于imx8qm
USB_HOST_GADGET_SWITCH相关文件kernel_imx\arch\arm64\boot\dts\freescale\fsl-imx8qm-mek-domu.dts: 如果开机固定为host模式,只需修改dr_mode = “host”;如果需要OTG功能切换,底层是根据ID PIN引脚的高低电平进行判断(host device),软件上通过otgsc register判断。...
2020-03-27 10:37:21
6992
原创 Android 9.0 Auto及m4 core倒车逻辑--基于imx8qm
新板子car版本android系统收不到m4发送的资源释放消息,屏不亮,先分析一下逻辑关系。上图就是car版本AP核和M41核之间的倒车逻辑。阶段1 系统启动完毕mek_8q.mk 63: $(IMX_DEVICE_PATH)/init_car_m4.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.car_additiona...
2020-03-27 10:32:53
1420
原创 imx8qm LVDS屏 DS90UB9478调试
1.947驱动是根据parade-ps8622.c改编的,电源由于pmic的ldo无法输出1.8v电源,改飞线。2.改编后发现报错定位代码位置vendor\nxp-opensource\kernel_imx\drivers\gpu\drm\imx\nwl_dsi-imx.cimx_nwl_dsi_bind函数最终死在kernel去掉CONFIG_DRM_IM...
2020-03-27 10:22:21
7537
10
原创 imx8背光控制原理
backlight参考文档android lcd 背光控制流程error[ 1286.086494] vehicle_rpmsg virtio0.rpmsg-vehicle-channel.-1.1: rpmsg_send timeout![ 1286.086543] send message failed!06-27 07:05:48.557 2595 2595 I CAR.PO...
2020-03-16 14:21:13
1123
原创 init进程详细分析--基于android 10
init进程详细分析概述android设备上电,引导程序引导进入boot(通常是uboot),加载initramfs、kernel镜像,启动kernel后,进入用户态程序。第一个用户空间程序是init,PID固定是1.在android系统上,init的代码位于/system/core/init下,基本功能有:管理设备解析并处理启动脚本init.rc实时维护这个init.rc中的服务...
2020-03-16 14:20:02
5667
2
原创 Android.bp基于Android 10学习笔记
Android.bp简介Android 7.0之后希望用Android.bp替换Android.mk,bp简单的配置更方便Ninja 文件的产生,而Blueprint和Soong 就此产生。Android 利用Blueprint和Soong 来解析bp文件,经过最终转换为ninja files。 Blueprint和Soong都是由Golang写的项目。 从Android Nougat开始,p...
2020-03-16 14:19:01
6941
1
原创 [MT6765]Preloader_流程分析--基于android 10
preloader运行流程–基于MT6765启动流程简介ARM架构中,EL0/EL1是必须实现,EL2/EL3是选配,ELx跟层级对应关系:EL0 -- appEL1 -- Linux kernel 、lkEL2 -- hypervisor(虚拟化)EL3 -- ARM trust firmware 、pre-loader1.设备上电起来后,跳转到BootROM(不是...
2020-03-16 14:17:54
4388
1
原创 YOCTO_SD_Image
Systemd Auto Start Xen DomUSystemd Serviceroot@imx8qmmek:/lib/systemd/system# cat xen-init-domu.service[Unit]Description=xen-init-domu, initialise DomU configuration (xenstore nodes, JSON configur...
2019-10-10 10:46:29
433
原创 imx8qm wifi sdio调试
imx8qm平台用的是有WIFI和BT功能的Murata芯片,型号是LBEE6U41LQ,WIFI采用sdio接口,由WL_EN控制上电;BT是UART1接口,由BT_EN控制上电;一.硬件原理二.引脚信息/* bt enable*/ SC_P_USDHC2_VSELECT /* uart1 */ SC_P_UART1_RX SC_P_...
2019-10-10 10:38:02
3361
16
原创 imx8 Linux DRM modetest
Linux DRM modetest And QtDRM Testhttps://github.com/grate-driver/libdrm/tree/master/testsroot@imx8qmmek:/etc# modetest --helpusage: modetest [-cDdefMPpsCvw] Query options: -c list ...
2019-10-10 10:32:27
3924
原创 imx8qm android8.1.0源码下载教程
1.env config$ sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git-core curl u-boot-tools mtd-utils android-tools-fsutils openjdk-8-jdk device-tree-compiler gdisk2....
2019-08-12 14:09:51
796
原创 imx8qm学习笔记之memory map
物理内存从系统管理员的角度来看,物理内存映射如下。系统内存映射由AP处理器看到。所有其他的都将引用系统内存映射,并显示为子集。系统中有几个主要的地址映射:•系统内存映射,在AP核中也被视为相同•DAP内存映射,与系统内存映射极为相似。•系统控制器内存映射。这是从M$core形成系统控制器的内存映射。它是一个独立的32位映射,它将窗口包含到整个系统内存映射的各个部分。•M4内...
2019-08-12 14:09:38
972
原创 imx8qm HDMI-TX调试
HDMI参考资料chipset: DS90UB929-Q1iMX8M HDMIHDMI之HPDLinux/DS90UB929-Q1: DS90UB929 HDMI HPD signal is always lowHDMI PIN无引脚复用驱动信息HDP = HDMI + DisplayPort/home/zengjf/imx8src/imx8qm_android/p9.0...
2019-08-12 14:08:07
4367
3
原创 imx8qm Linux L4.9.51 BETA2源码下载及编译环境搭建
1.编译配置$ DISTRO=<distro name> MACHINE=<machine name> source fsl-setup-release.sh -b <build dir> DISTRO如下: MACHINE=imx8qmmek -b imx8-build编译生成文件路径 $ DISTRO=fs...
2018-12-18 14:37:00
3450
原创 imx8修改manifest仓库分支避开google下载源码
今天工作时遇到的问题,要在安卓8.1上开始适配imx8补丁。目前已经将android-8.1.0_r1从科大源下载下来,准备直接将NXP的原生patch repo下来,所以直接更换了repo下的manifest.xml文件,并注释掉 <!--include name="aosp-O8.1.0-1.1.0.xml"/--> 这是再回到代码主目录,重新repo sync,还是会提示...
2018-12-18 14:36:23
2607
原创 基于imx8qm yocto新建recipes
1)创建 adan-clusterwugn@ubuntu:/fsl-release-bsp/sources$ yocto-layer create adan-clusterPlease enter the layer priority you'd like to use for the layer: [default: 6]Would you like to have an examp...
2018-09-13 10:38:00
3089
原创 imx6平台设备树详解
设备树详解在Linux3.x版本后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板级细节的代码(比如platform_device、i2c_board_info等)被大量取消,取而代之的是设备树,其目录位于arch/arm/boot/dts1.设备树的组成1个dts文件+n个dtsi文件,它们编译而成的dtb文件就是真正的设备树soc厂商会把soc...
2018-08-28 15:24:48
6234
原创 imx8qm平台android 8.1.0 添加系统service
8.1中添加系统service与之前有差异,涉及到te文件。网上找了些例子没有实现。特记录总结!1.frameworks/base 目录下添加对应的文件清单如下frameworks/base/core/java/android/app/HelloWorldManager.javaframeworks/base/core/java/android/app/IHelloWorldManager....
2018-08-07 14:37:45
2438
原创 编译Android8.1.0. AOSP遇到的问题(Communication error with Jack server)(Out of memory error)
编译AOSP遇到的问题权限遭拒 由于博客使用了外部硬盘作为out编译输出,make时提示Permission is denied。这时换成sudo make即可。使用外部磁盘做out输出:export OUT_DIR_COMMON_BASE=/media/username/外部磁盘路径/out内存不足 由于笔者的内存只有4G,并且最开始没有分出swap分区,导致多次内存不足编译失败,有多种日志形式...
2018-07-10 19:32:46
5646
转载 ARM内核和架构的关系(超形象)
好比你盖房子 刚开始因为水平低 流行盖平房 这就是一种架构(V5T);然后这种平房架构你可以设计出一款独立卫生间的款式 这叫ARM7内核;然后其他人(芯片设计公司)想盖房子的就买你这个图纸去盖;然后过一段时间,有人觉得光独立卫生间还不够啊 我还想有个小院子,好吧,那ARM就满足你们,就出个带小院子的款式(ARM9); 又过了很久,这种平房的架构就随着大伙的需求一直改啊改啊。 后来经...
2018-05-29 16:08:20
6395
5
转载 linux下的高效代码搜索工具grep-ack
安装ubuntu下要安装ack-grep,因为在debian系中,ack这个名字被其他的软件占用了。 sudo apt-get install ack-grep特点大家都说自己的东西好,因此ack官网列出了这工具的5大卖点:速度非常快,因为它只搜索有意义的东西。更友好的搜索,忽略那些不是你源码的东西。为源代码搜索而设计,用更少的击键完成任务。非常轻便,移植性好。免费且开源better than g...
2018-04-27 09:43:57
1416
imx8MQ资料
2018-05-31
android app自动刷新wifi列表并检测指定设备(可手动添加或者长按列表项添加检测设备)
2017-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人