没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
13页
mipi display框架,framebuffer架构,lk阶段常见深刻的logoBUG,堆与栈区别,makefile是干什么的 ,动态库是干嘛的,shell命令,platform总线是什么 它和I2C的区别,LCD物理协议, 数据类型、数组、链表、函数、结构体、进程线程、锁、文件读写,lcd bringup流程,kernel阶段,UART与I2C,dts设备树,拿到新板子如何抓LK阶段log,MTK启动流程分析,花屏、分屏等常见bug讲解,标准I/O与系统I/O区别,Android架构,内核层
资源推荐
资源详情
资源评论
LCD 面试问题整理
1:你对 lcd 的认识
lcd 是液晶显示器的简称,构造是在两片平行的玻璃基板当中放置液晶盒,下基板
玻璃上设置 TFT,也就是薄膜晶体管,上基板玻璃上设置彩色滤光片,通过 TFT 上的
信号与电压改变来控制液晶分子的转动方向。原理就是液晶在不同电压的作用下会呈
现不同的光特性。
2:lcd 过程的画面是怎么来的
处理器中自带 LCD 控制器,控制 LCD 的显示,把 LCD 图像数据从一个位于系统
内存的 video buffer 传送到一个外部的 LCD 驱动器接口。
3:logo 是怎么显示的
Android 开机画面由三部分组成,第一部分在 bootloader 启动时显示(uboot);
第二部分在启动 kernel 时显示(kernel);第三部分在系统启动时(bootanimation)
显示(动画)。uboot、kernel 的 LOGO(项目中一般这两张图片是一样的,即常说的开
机 LOGO)。一般 logo 目录下会有很多格式的图片,例如 hdplus、hvga、hd720,具
体使用哪种格式的图片,取决于项目中的配置文件 ProjectConfig.mk。
4:帧 帧率 画面怎么刷新的
数据在网络上是以很小的称为帧(Frame)的单位传输的,将物理内存分为固定
大小的块,称为帧。每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够
更新的次数。
5:mipi display 框架
https://cloud.tencent.com/developer/article/1943922
6:你自己在项目中挖过哪些东西(我回答了上电时序和背光延时,然后又追问了这两个
的设置)
7:framebuffer
Framebuffer,也叫帧缓冲,其内容对应于屏幕上的界面显示,可以将其简单理解
为屏幕上显示内容对应的缓存,修改 Framebuffer 中的内容,即表示修改屏幕上的内
容,所以,直接操作 Framebuffer 可以直接从显示器上观察到效果。
但 Framebuffer 并不是屏幕内容的直接的像素表示。Framebuffer 实际上包含了几
个不同作用的缓存,比如颜色缓存、深度缓存等,具体不详细说明。大家只需要知
道,这几个缓存的共同作用下,形成了最终在屏幕上显示的图像。
Framebuffer 本质上是一段内存,哦,不对,是一段显存,哦,好像还是不对。
其实,Framebuffer 就是一段存储空间,其可以位于显存,也可以位于内存。
Framebuffer 是一个逻辑上的概念,并非在显存或者是内存上有一块固定的物理区
域叫 Framebuffer。实际上,物理是显存或者内存,只要是在 GPU 能够访问的空间范
围内(GPU 的物理地址空间),任意分配一段内存(或显存),都可以作为 Framebuffer 使
用,只需要在分配后将该内存区域信息,设置到显卡相关的寄存器中即可。这个其实
跟 DMA 区域的概念是类似的。
8:自己解决的印象最深的 bug
在 lk 阶段的 logoBUG:每个驱动厂商的 logo 都是一一对应的,当我们的 logo 确
定时,驱动文件不存在,编译通过后开机在 lk 阶段的屏幕异常,当然也会有正常的情
况,这就说明了不同厂商的驱动与 logo 兼容性不同,但是当我们添加了驱动文件,在
修改 logo 后,编译会一直不通过,但是也没有报错,这是因为 logo 的像素大小不同,
我们在某个文件中开始时就定义了 logo 的像素大小,所以我们修改了 logo 文件后,修
改的 logo 文件与定义的不同,所以编译就不会通过。
自己解决的印象最深的 bug
当时在做二供的屏幕兼容的时候,驱动文件已经配置好了,相
关的修改也完成了,最后屏幕也点亮了,但是触摸是失效的,而且
有花屏分屏的现象,最后发现驱动匹配不是我想要的驱动,它是没
有找到正确驱动而默认使用了驱动数组中的第一个驱动,后来抓日
志发现是 id 识别管脚没有配置好,导致无法识别驱动,然后我更改
了管脚配置然后也烧进 odmotbo 分区了,但是屏幕还是坏的,驱动
也还是没有匹配成功,这一块当时自己检查了好久一直没发现问题,
后来就去翻看整编日志,猜想可能是设备树有问题,如果设备树都
没有被编译那么修改的管脚配置肯定是无效的,后来去项目配置文
件中查看,发现果然 debug 版的配置文件是正常的,但 user 版的配
置文件中设备树编译的宏开关没有打开,而且次设备树中的名字不
对,修改正常后重新编译烧写果然手机显示正常了,驱动也匹配上
了,原本配置文件这块不应该出问题,但当时公司也比较小,流动
性也比较大,当时的 scm 也是刚来的,可能是一时疏吧,导致了这
个算是比较大的 bug
花屏、分屏一般是驱动文件没有轮询正确或者是驱动里分辨率
没有设置正确,
9:栈和堆的区别 链表是什么(节点组成)
程序内存分区中的堆与栈:栈由操作系统自动分配释放 ,用于存放函数的参数值、局
部变量等,其操作方式类似于数据结构中的栈。堆由开发人员分配和释放, 若开发人
员不释放,程序结束时由 OS 回收,分配方式类似于链表。
1.3 堆与栈区别
堆与栈实际上是操作系统对进程占用的内存空间的两种管理方式,主要有如下几种区
别:
(1)管理方式不同。栈由操作系统自动分配释放,无需我们手动控制;堆的申请和释
放工作由程序员控制,容易产生内存泄漏;
(2)空间大小不同。每个进程拥有的栈大小要远远小于堆大小。理论上,进程可申请
的堆大小为虚拟内存大小,进程栈的大小 64bits 的 Windows 默认 1MB,64bits 的
Linux 默认 10MB;
(3)生长方向不同。堆的生长方向向上,内存地址由低到高;栈的生长方向向下,内
存地址由高到低。
(4)分配方式不同。堆都是动态分配的,没有静态分配的堆。栈有 2 种分配方式:静
态分配和动态分配。静态分配是由操作系统完成的,比如局部变量的分配。动态分配
由 alloca()函数分配,但是栈的动态分配和堆是不同的,它的动态分配是由操作系统进
行释放,无需我们手工实现。
(5)分配效率不同。栈由操作系统自动分配,会在硬件层级对栈提供支持:分配专门
的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较
高。堆则是由 C/C++提供的库函数或运算符来完成申请与管理,实现机制较为复杂,
频繁的内存申请容易产生内存碎片。显然,堆的效率比栈要低得多。
(6)存放内容不同。栈存放的内容,函数返回地址、相关参数、局部变量和寄存器内
容等。当主函数调用另外一个函数的时候,要对当前函数执行断点进行保存,需要使
用栈来实现,首先入栈的是主函数下一条语句的地址,即扩展指针寄存器的内容
(EIP),然后是当前栈帧的底部地址,即扩展基址指针寄存器内容(EBP),再然后是
被调函数的实参等,一般情况下是按照从右向左的顺序入栈,之后是被调函数的局部
变量,注意静态变量是存放在数据段或者 BSS 段,是不入栈的。出栈的顺序正好相
反,最终栈顶指向主函数下一条语句的地址,主程序又从该地址开始执行。堆,一般
情况堆顶使用一个字节的空间来存放堆的大小,而堆中具体存放内容是由程序员来填
充的。
从以上可以看到,堆和栈相比,由于大量 malloc()/free()或 new/delete 的使用,容
易造成大量的内存碎片,并且可能引发用户态和核心态的切换,效率较低。栈相比于
堆,在程序中应用较为广泛,最常见的是函数的调用过程由栈来实现,函数返回地
址、EBP、实参和局部变量都采用栈的方式存放。虽然栈有众多的好处,但是由于和
堆相比不是那么灵活,有时候分配大量的内存空间,主要还是用堆。
无论是堆还是栈,在内存使用时都要防止非法越界,越界导致的非法内存访问可
能会摧毁程序的堆、栈数据,轻则导致程序运行处于不确定状态,获取不到预期结
剩余12页未读,继续阅读
资源评论
嵌入式开发梦水
- 粉丝: 198
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于STM32F103C8T6单片机蓄电池在线监测系统主板硬件(原理图+PCB)工程文件.zip
- mysql大纲资料.txt
- c++大纲资料.txt
- 效率工具bat脚本实现日志提取
- MyBatis 中动态 SQL 的示例
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功