📄 hisilicon_logo.c
字号:
#include <config.h>#if defined(CONFIG_HI3560_LOGO)#include <common.h>#include "hi_i2c.h"#include "hi_vda.h"#include "hi_video.h"#include "hi_vou.h"#ifdef CFG_VIDEO_DATA_ADDR#define VIDEO_DATA_BASE (CFG_VIDEO_DATA_ADDR) #else#define VIDEO_DATA_BASE (0x62000000) #endifextern unsigned int LoadJpegFile(void *pImg, void *logoaddr);extern unsigned int ImgWidth, ImgHeight;void initVOU(int out_format, int out_mode, int ctrl_mode){ VIDEO_RECT_t LayerRect; VOU_SetOutputMode(out_format, out_mode, ctrl_mode); VOU_SetTvClip(1,0x10,0xf0,0x10,0xeb); VOU_LayerDefaultSetting(VIDEO_VOU_LAYER_OVER2); VOU_LayerSetDataType( VIDEO_VOU_LAYER_OVER2, PIXEL_FORMAT_RGB555 ); VOU_LayerSetAlpha(VIDEO_VOU_LAYER_OVER2, 0x80, 0x80); LayerRect.x = 0; LayerRect.y = 0; LayerRect.w = ImgWidth; LayerRect.h = ImgHeight; VOU_LayerSetRect(VIDEO_VOU_LAYER_OVER2, LayerRect); VOU_LayerEnable(VIDEO_VOU_LAYER_OVER2); VOU_LayerSetAddrAndStride( VIDEO_VOU_LAYER_OVER2, VIDEO_DATA_BASE, 0, ImgWidth * 2, 0 );}int show_logo(void){ ulong logo_addr; char *s; int out_format = 0,out_mode = 0, res=0; if ((s = getenv ("logoaddr")) != NULL) { logo_addr = simple_strtoul (s, NULL, 16); }else { return 1; } if (*(volatile uchar *)logo_addr != 0xFF || *(volatile uchar *)(logo_addr+1) != 0xD8) { return 1; } init_mmu(PHYS_SDRAM_1, (PHYS_SDRAM_1 + 0x10000)); start_mmu(); if ((res = LoadJpegFile((void *)VIDEO_DATA_BASE, (void *)logo_addr)) != 0 ) { stop_mmu(); return 1; } stop_mmu();#ifdef CFG_VIDEO_DATA_FORAMT out_format = CFG_VIDEO_DATA_FORAMT;#endif#ifdef CFG_VIDEO_OUTPUT_MODE out_mode = CFG_VIDEO_OUTPUT_MODE;#endif if(out_format != 2) { I2C_Init(); VDA_Init(out_format, out_mode, VIDEO_MODE_SLAVER); } VOU_Init(); VOU_Disable(); initVOU(out_format, out_mode, VOU_CONTROL_MODE_MASTER); VOU_Enable(); return 0;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -