- 博客(36)
- 收藏
- 关注
原创 Linux 设备树详解
设备树( Device Tree)是一种描述硬件的数据结构,在操作系统( OS)引导阶段进行设备初始化的时候,数据结构中的硬件信息被检测并传递给操作系统最早诞生于 Open Firmware, Flattened Device Tree (FDT)格式标准。dts 文件( Device Tree Source, dts)是以 ASCII 文本形式描述设备树内容。dtb 文件是二进制格式,编译工具为: Device Tree Compiler( DTC)。
2024-01-16 15:01:20
1685
1
原创 获取文件MD5值
在开发过程中,会遇到需要OTA升级,文件拷贝等操作。需要判断下载或者拷贝的文件是否成功,需要通过比对文件前后的md5值。使用OpenSSL库获取文件的md5值。
2023-03-29 20:34:00
497
1
原创 Mstar 848 修改背光频率
Mstar 848修改背光频率一:背光相关的属性主要有两个,一个是背光频率,一个是占空比。 背光频率:针对 PWM 调光的频,每个型号的屏有一个背光的频率范围。如果背光不在 要求的范围内,就会出现一个滚动的黑条(水波纹)。 占空比:针对 PWM 背光的屏,用来调节背光的亮度,当正占空比越大时,背光越亮, 越小时,背光就暗。当占空比不在 100%时,使用手机拍照,可以明显看到滚动的黑条。当 占空比为 100%比,这个时候的调光是一条直线,可以看到滚动的黑条消失。二:通...
2020-12-31 13:29:24
1156
原创 Android硬件访问服务框架
一:JNI接口访问硬件Android应用程序通过加载C库,来访问硬件驱动程序来操作硬件设备。技术要点是:1:Android应用程序通过loadLibrary来加载C Library2:在C Library里面实现JNI_Onload,目的的一旦C库被加载这个JNI_Onload方法就会被调用。3:在JNI_Onload方法里面注册相关的本地方法,注册本地方法即:使得C语
2017-03-18 16:05:21
566
原创 Android系统APP访问硬件之JNI方式0002
一:神马是JNI,JNI是Java Native Interface的缩写,中文名字为Java本地接口语言。也正是它的存在使得Java程序可以去访问Linux内核当中的驱动程序,也由于它的存在使得Android程序具有跨平台的特点。这里是以前编写的JNI文档,记录了下来http://url.cn/45e3wjL。二:平台介绍1:开发板 tiny4412 2:实现的目标,使用
2017-03-05 18:11:47
437
原创 Android系统之APP访问硬件--------JNI与硬件访问服务0001
对于Android驱动,批开复杂的Android系统框架,这里先提出一个简单的问题:一:Android应用程序的编写使用的是Java,并且能够访问C库,而驱动程序的实现恰好是使用C语言来实现的,那么驱动程序就变得简单化了。 由此,引出了编写Android驱动的第一种方法: 通过JNI
2017-03-05 17:43:04
751
原创 从零写u-boot,用于启动内核
开篇:提高启动速度:1.增大时钟频率,将FCLK由200Mhz提高到400Mhz,但是效果不明显2.启动icahe(指令高速缓存)/* 启动ICACHE 可以大大加快启动速度 仿照u-boot*/mrc p15, 0, r0, c1, c0, 0@ read control regorr r0, r0, #(1mcr p15, 0, r0, c1, c0, 0
2016-10-02 17:22:04
447
原创 如何使用u-boot(7)
一 如何使用u-boot:(version:u-boot-1.1.6)1 打补丁:tar xjf /mnt/hgfs/neo/tools_linux/u-boot-1.1.6.tar.bz2 -C ./cd u-boot-1.1.6/patch -p1 2 配置:make 100ask24x0_config3 编译:make4 下载:tftp 30
2016-10-02 17:12:25
333
原创 u-boot之命令分析(6)
u-boot之命令分析:分析run_commandrun_commandprocess_macros (token, finaltoken); /*处理宏*//*解析传进来的命令和参数,并将他们提取出来*/if ((argc = parse_line (finaltoken, argv)) == 0) {rc = -1; /* no command at all */
2016-10-02 17:10:34
281
原创 C家家
第一课C到C++的升级 1:c++强调类型C++强调类型,C不是很强调类型;例如:在C++编译器中struct student{const char* name;Int age;};这里相当于定义了一种新的student类型。可以直接用student去定义一些变量。例如:student student1,student2;但是在C编译器中
2016-09-30 22:24:37
582
原创 u-boot启动内核过程(5)
u-boot启动内核过程分析:u-boot启动内核s = getenv ("bootdelay"); //读取环境变量run_command (s, 0); //执行命令bootdelay: nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0nand read.jffs2 0x30007FC0 kernel:说明:
2016-09-23 14:07:50
334
原创 u-boot第二阶段代码(4)
开篇:1.第二阶段代码一开始进行各种设置和初始化,包括串口,nand,nor,网卡等,为u-boot后面提供基础2.初始化完之后,u-boot会从环境变量中读取bootdelay的参数,然后倒数计时,假如在这期间没有空格按下,那么u-boot就会运行启动内核的命令,从而一去不复返3.假如有空格按下,u-boot将进入死循环即串口控制台,等待用户输入命令来解析运行该命令。
2016-09-23 13:52:52
287
原创 uboot第一阶段代码(3)
开篇:u-boot 第一阶段干了啥事:1.set the cpu to SVC32 mode 设为管理模式2.turn off the watchdog 关看门狗 3.mask all IRQs by setting all bits in the INTMR - default 屏蔽所有中断4.Init 各种设置4-1.flush v4 I/
2016-09-23 13:46:54
379
原创 uboot-Makefile分析(2)
Makefile分析截取Makefile中主要代码分析:Makefile:# load ARCH, BOARD, and CPU configurationinclude $(OBJTREE)/include/config.mk //包含配置生成的config.mkexport ARCH CPU BOARD VENDOR SOCifeq ($(ARCH),arm) /
2016-09-23 12:42:21
287
原创 u-boot配置过程(1)
分析配置过程:Makefile:make 100ask24x0_config MKCONFIG := $(SRCTREE)/mkconfig 100ask24x0_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0//mkconfig 100ask24x0 arm ar
2016-09-23 12:31:35
274
原创 ELAN-XD7-TP移植总结
一:添加A13专用操作函数二:修改配置文件,修改触摸屏的名字,IIC设备地址。三:修改模块加载函数为A13的模式四:在i2c_driver结构中填充address_list和class成员五:修改probe函数修改注册中断的函数elan_ktf2k_ts_register_interrupt修改如下1)设置中断模型err = ctp_set_irq_mode("ctp_
2016-09-19 22:15:30
566
原创 GT9xx触摸屏驱动总结
GT9xx触摸屏驱动总结一:GT9xx触摸屏驱动移植过程出现的问题1:GT9xx触摸屏驱动的模块加载函数没有执行到。具体情况:现象:.ko文件已经是最新的,烧进去之后,或者使用adb工具push进去之后,打印出来的log信息中发现没有执行GT9xx触摸屏驱动的加载模块函数。原因:修改后期加载模块文件错误错误的做法:修改了A13\android\out\tar
2016-09-19 22:00:17
10663
原创 Mstar-TP在线升级总结
对于驱动的学习,个人习惯总是从此驱动的相关核心结构和API接口函数开始;然后再去看代码。对于这款机器TP在线升级驱动也是如此,先来看看它有什么样的结构和接口函数。1:平台 ---------全志A13 cortex-A82:触摸屏 ---------mstar22383:Linux内核 ---------3.0.15一:A13的 ctp_platf
2016-09-19 21:30:35
1799
原创 智能电视recoveryUI设计
recovery多国语言 平台:xxxxxxxx Android系统版本:5.1.1 一:阅读recovery代码,理清流程 recovery的多国语言ui的设计代码位于s905\bootable\recovery目录下,其中r
2016-09-18 11:23:42
2258
原创 第一章 UVC驱动之虚拟视频驱动
第一章 UVC驱动之虚拟视频驱动1.1视频驱动的整体框架内核的V4L2 摄像头驱动的设计采用分离分层的思想,整个框架分为四大部分:应用空间、内核核心层、硬件驱动相关层;具体硬件设备。视频驱动的整体框架见下图: 图1.1 V4L2驱动框架Figure 1.1 V4L2 driver framework1.2视频驱动代码流程分析1.2.1 虚拟视
2016-05-16 11:45:44
846
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人