海思ldci原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了海思ldci原理相关的知识,希望对你有一定的参考价值。

参考技术A HIFB层的简介(我们主要处理的是图形层数据)

1:Hisilicon Framebuffer是海思平台用于管理叠加图形层的模块,增加层间colorkey,层间colorkey mask,层间alpha,原点偏移等功能。HIFB一个子设备号对应一个叠加层,HIFB可以管理多个图形叠加层(意思就是说。HIFB可以支持多个子设备,支持多路输出)。

2:HIFB支持的标准功能:

a:将物理显存映射到虚拟内存中。

b:像操作普通文件一样操作物理显存。

c:设置像素分辨率,和像素格式,,每个叠加图形层的支持的最大分辨率和像素格式可以通过支持能力接口获取。

d:从物理显存的任何位置进行读写,显示等操作

e:在叠加图形层支持索引格式的情况下,支持设置和获取256色的调色板

增加的功能:

f:设置获取ALPHa和colorkey值

g:设置当前叠加图形层的其实位置(相对于屏幕原点的偏移)。以及叠加图形层的显示,隐藏状态。

5:

h:通过模块参数配置Hifb的物理显存大小和管理叠加图形层的数目。

I:添加抗闪烁功能,获取预乘模式的状态,压缩模式,获取内存检测状态,图形层刷新类型(2buffer类型)。

:::2buffer图形刷新类型是分配两个buffer,一个用来显示,一个用来绘制。

3:模块加载:默写linux framebuffer不支持运行期间更改分辨率,颜色深度,时序等显示属性,,因此linux在内核启动或者模块加载时,通过参数将相应选项传递给linux framebuffer,可以在内核加载器中配置内核启动参数,

HIFB驱动在加载时只能设置物理显存大小。(物理显存大小一经设置就不能改变)video=“hifb:vram0_size:xxx, vram1_size:xxx,…”其中,vramn_size:xxx 表示对叠加图形层n配置xxx K 字节的物理显存。

先加载fb.ko,然后加载hifb.ko参数。

对于标准Fb模式来说:

Vramn_size * 1024 >= xres_virtual * yres_virtual * bpp;

其中:xres_virtual * yres_virtual是虚拟分辨率,bpp是每个像素所占字节数。

******vramn_size 必须是PAGE_SIZE(4K byte)的倍数,否则HiFB 驱动强制将其设为PAGE_SIZE的
倍数,向上取整

默认参数值配置Hi3536
video="hifb:vram0_size:32400,

vram1_size:8100,vram2_size:1620,vram3_size:32,vram4_size:32" softcursor="off"

4:HIFB开发步奏:

a:调用open打开指定设备Hifb设备。

b:调用ioctl,函数设置hifb的像素格式以及屏幕高宽等参数。

c:调用ioctl函数获取Hifb所分配的物理显存大小,跨度等固定信息。可以使用层间colorkey(把一副图片的颜色扣掉叠加到另一张图片上),层间Alpha点(透明度参数),原点便宜等

d:物理显存映射到虚拟内存

e:完成具体的绘制任务。

用HiTool烧写uboot到spi flash的原理

芯片平台

本文是以海思的HI3518E芯片讲解的,HI3518E芯片内部集成了64M的DDR,开发板上在HI3518E芯片外部连接了16M的spi flash芯片。uboot、kernel、rootfs最终都烧写到spi flash中。

硬件连接的原理图

解析:
1.PC端上运行HiTool软件,通过串口和海思芯片相连;
2.海思芯片内置了64M的DDR,在烧写到spi flash中充当中转的作用;
3.spi flash连接在海思的spi flash的相关引脚上;

烧写的原理:

1.硬件上 bootrom_sel 需要设置为 1,从 bootrom 启动。芯片上电后,当启动模式为从 BOOTROM 启动时,海思的BOOTROM的程序会去初始化串口,然后尝试与海思的HiTool工具建立通信。
2.HiTool工具在开始烧写后,会与海思芯片建立连接,首选与 bootrom 进行交互,工具 DDR 参数传送到传到 bootrom。
3.先下载uboot的一部分代码到内部的RAM中,用这部分代码去初始化64M的DDR;
4.将剩下的uboot程序下载到DDR中,然后通过DDR中启动uboot,然后将DDR中的uboot程序烧写到外部的spi flash中。
5.至于烧写的更具体的细节,在HiTool软件、海思的内置代码、uboot中做了隐藏,一般不需要知道这些细节。我们只需要保证硬件连接正确,在HiTool软件中指明要烧写的文件、flash类型、起始地址、烧写长度,就可以一键完成烧写。

HiTool工具的使用

参考博客《海思烧录工具HiTool的使用方法以及烧录uboot》

以上是关于海思ldci原理的主要内容,如果未能解决你的问题,请参考以下文章

ARM海思行人检测/行人识别/人体检测/人体识别解决方案

Hi3516AV200 专业型HD IP Camera SoC简介

海思工具速率报错

有谁比较过海思Hi3519a与海思Hi3559a的实际isp效果差别?

华为6110和海思3798哪个好?

海思Hi3518A 海思Hi3518C 海思Hi3518E 这几个芯片都有什么区别么