6410的eboot阶段av输出
修改在main.c中显示的函数。
1、要注意打开tv的电源。6410中tv输出的电源是独立的。
2、在init.c函数中有可能有设置tv的电源(一般是在oeminit函数中),如果有设置可以要做相应修改。由于在eboot阶段已经对电源有设置,可以去掉避免重复初始化。
3、这样修改需要添加一些lib依赖,可以在source中添加。
static void InitializeDisplay(void)
{
tDevInfo RGBDevInfo;
DWORD type;
volatile S3C6410_GPIO_REG *pGPIOReg = (S3C6410_GPIO_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_GPIO, FALSE);
volatile S3C6410_DISPLAY_REG *pDispReg = (S3C6410_DISPLAY_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_DISPLAY, FALSE);
volatile S3C6410_SPI_REG *pSPIReg = (S3C6410_SPI_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_SPI0, FALSE);
volatile S3C6410_MSMIF_REG *pMSMIFReg = (S3C6410_MSMIF_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_MSMIF_SFR, FALSE);
volatile S3C6410_SYSCON_REG *pSysConReg = (S3C6410_SYSCON_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_SYSCON, FALSE);
//tv
volatile S3C6410_POST_REG *pPostReg = (S3C6410_POST_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_POST, FALSE);
volatile S3C6410_ROTATOR_REG *pRotatorReg = (S3C6410_ROTATOR_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_ROTATOR, FALSE);
volatile S3C6410_TVSC_REG *pTVSCReg = (S3C6410_TVSC_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_TVSC, FALSE);
volatile S3C6410_TVENC_REG *pTVEncReg = (S3C6410_TVENC_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_TVENC, FALSE);
EdbgOutputDebugString("[Eboot] ++InitializeDisplay()\r\n");
// Initialize Display Power Gating
// if(!(pSysConReg->BLK_PWR_STAT & (1<<4))) {
// pSysConReg->NORMAL_CFG |= (1<<14);
// while(!(pSysConReg->BLK_PWR_STAT & (1<<4)));
// }
// Initialize tv Power Gating打开tv输出电源
if(!(pSysConReg->BLK_PWR_STAT & (1<<3))) {
pSysConReg->NORMAL_CFG |= (1<<13);
while(!(pSysConReg->BLK_PWR_STAT & (1<<3)));
}
// Initialize Virtual Address
LDI_initialize_register_address((void *)pSPIReg, (void *)pDispReg, (void *)pGPIOReg);
Disp_initialize_register_address((void *)pDispReg, (void *)pMSMIFReg, (void *)pGPIOReg);
//tv
Post_initialize_register_address((void *)pPostReg);
Rotator_initialize_register_address((void *)pRotatorReg);
TVSC_initialize_register_address((void *)pTVSCReg);
TVEnc_initialize_register_address((void *)pTVEncReg, (void *)pGPIOReg);
//add by kreal
//end kreal
// Get RGB Interface Information from LDI Library
LDI_fill_output_device_information(&RGBDevInfo);
// Setup Output Device Information
Disp_set_output_device_information(&RGBDevInfo);
// Initialize Display Controller
//Disp_initialize_output_interface(DISP_VIDOUT_RGBIF);
Disp_set_output_TV_information(720, 480);//初始化diaplay control要用到的一些变量(参数是将tv输出设置成720*480)
Disp_initialize_output_interface(1);//display control的初始化
TVSC_initialize(1, 1, 7, 720, 480, 720, 480, 0, 0, 7, 1440, 480, 1440, 480, 0, 0);//tv scaler的寄存器(参数是见tv输出设置成720*480的)
TVEnc_initialize(0, 0, 720, 480);//初始化tv encode的一些寄存器
TVEnc_output_onoff(1);
TVSC_enable_interrupt();
TVSC_processing_start();
Disp_set_window_mode(3, 5, 720, 480, 0, 0);//设置display的一些信息
//Disp_set_framebuffer(1, 0x56800000);
//Disp_window_onfoff(1, 1);
//Disp_set_frame_interrupt(3);
//Disp_enable_frame_interrupt();
lcd_high = 480;
lcd_width = 720;
#if (LCD_BPP == 16)
Disp_set_window_mode(DISP_WIN1_DMA, DISP_16BPP_565, lcd_width, lcd_high, 0, 0);
#elif (LCD_BPP == 32) // XRGB format (RGB888)
Disp_set_window_mode(DISP_WIN1_DMA, DISP_24BPP_888, lcd_width, lcd_high, 0, 0);
#else
EdbgOutputDebugString("[Eboot:ERR] InitializeDisplay() : Unknown Color Depth %d bpp\r\n", LCD_BPP);
#endif
Disp_set_framebuffer(DISP_WIN1, EBOOT_FRAMEBUFFER_PA_START);
Disp_window_onfoff(DISP_WIN1, DISP_WINDOW_ON);
// Initialize LCD Module
//LDI_initialize_LCD_module();
// LCD Clock Source as MPLL_Dout
pSysConReg->CLK_SRC = (pSysConReg->CLK_SRC & ~(0xFFFFFFF0))
|(0<<31) // TV27_SEL -> 27MHz
|(0<<30) // DAC27 -> 27MHz
|(0<<28) // SCALER_SEL -> MOUT_EPLL
|(1<<26) // LCD_SEL -> Dout_MPLL
|(0<<24) // IRDA_SEL -> MOUT_EPLL
|(0<<22) // MMC2_SEL -> MOUT_EPLL
|(0<<20) // MMC1_SEL -> MOUT_EPLL
|(0<<18) // MMC0_SEL -> MOUT_EPLL
|(0<<16) // SPI1_SEL -> MOUT_EPLL
|(0<<14) // SPI0_SEL -> MOUT_EPLL
|(0<<13) // UART_SEL -> MOUT_EPLL
|(0<<10) // AUDIO1_SEL -> MOUT_EPLL
|(0<<7) // AUDIO0_SEL -> MOUT_EPLL
|(0<<5) // UHOST_SEL -> 48MHz
|(0<<4); // MFCCLK_SEL -> HCLKx2 (0:HCLKx2, 1:MoutEPLL)
// Video Output Enable
Disp_envid_onoff(DISP_ENVID_ON);
// Fill Framebuffer
#if (LCD_BPP == 16)
{
// //去掉图片显示
// unsigned int i;
// unsigned short *pFB,*plogo;
// pFB = (unsigned short *)EBOOT_FRAMEBUFFER_UA_START;
// plogo = (unsigned short *)Logo;
// for (i=0; i<lcd_width*lcd_high; i++)
// *pFB++ = 0x0000; //0x001F; // Blue
//int i;
//unsigned int *pFB;
// pFB = (unsigned int *)EBOOT_FRAMEBUFFER_UA_START;
//
// for (i=0; i<lcd_width*lcd_high; i++)
// *pFB++ = 0x00000055; // Blue
}
#elif (LCD_BPP == 32)
{
int i;
unsigned int *pFB;
pFB = (unsigned int *)EBOOT_FRAMEBUFFER_UA_START;
for (i=0; i<lcd_width*lcd_high; i++)
*pFB++ = 0x000000FF; // Blue
}
#endif
EdbgOutputDebugString("[Eboot] --InitializeDisplay()\r\n");
}
6410的eboot阶段av输出相关推荐
- java演练 循环嵌套 菱形图案的打印 四个阶段完成输出
java演练 循环嵌套 菱形图案的打印 阶段一,视频 https://www.ixigua.com/6870331861256634894/ 阶段一,数据分析 阶段二,视频 http://mp.tou ...
- 《拉勾Java高薪课程》阶段一输出 之 通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式)--菜鸟小回
通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式) 文章目录 通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式) @[toc] 一.单例模式 1. 相关概念 2. 演示思路 3. ...
- 测试每个阶段需要输出的文档
测试是软件研发过程中占有重要的地位,软件质量的好坏和测试把关严不严有很大关系,那在整个研发流程中,测试需要提交哪些交付件呢? 我们按照测试流程来走,看看每一步测试需要提交哪些交付件? 1.需求澄清, ...
- 输入端口 HDMI接口,S端子,AV接口,VGA接口, 分量视频接口,TV输入,USB接口的对比
VGA输入接口:VGA 接口采用非对称分布的15pin 连接方式,其工作原理:是将显存内以数字格式存储的图像( 帧) 信号在RAMDAC 里经过模拟调制成模拟高频信号,然后再输出到等离子成像,这样VG ...
- 产品经理的四个重要阶段
本文由作者 John西瓜 于社区发布 "产品经理的成长路径和产品生命周期是一样的." 和一些小伙伴沟通,在职(真)场(是)不(闲)得(的)意(慌)的时候,总会蹦出一句话:" ...
- n个骰子的点数 java_n个骰子的点数和为s的概率集合输出(Java)
问题描述: 把n个骰子仍在地上,所有骰子朝上一面的点数之和为s,输入n,打印出s的所有可能出现的概率 问题分析: 这是一道应用动态规划思想的题目,而动态规划最难的就是要找最优子结构.并采取一种称为备忘 ...
- 大数据阶段划分及案例单词统计
大数据阶段的重要课程划分 离线分析 : hadoop生态圈 HDFS, MapReduce(概念偏多), hive(底层是MapReduce), 离线业务分析80%都是使用hive实时分析 : spa ...
- tee:结果输出到文件同时也作为往后的输入信息
tee:重定向到多个目标 命令1 | tee [-a ] 文件名 | 命令2 把命令1的STDOUT保存在文件中,做为命令2的输入 -a 追加 使用: 保存不同阶段的输出 复杂管道的故障排 ...
- linux sed 不输出,linux-使用awk和sed消除不必要的输出
从以下命令中,我如何消除之前出现的所有行 Owner RepoName CreatedDate 编辑命令: find /opt/site/ -name '.log.txt' | xargs cat | ...
最新文章
- 中国百万美元富翁财富
- HALC: High throughput algorithm for long read error correction
- kafka 学习总结
- ubuntu下部署eclipse集成hadoop\android\web\GCC开发环境小记
- 《他其实没那么喜欢你》经典台词(4)
- 清空Form表单所有内容
- 大专计算机系毕业课题6000字,计算机理论论文6000字:高校科研.doc
- 牛客题霸 [在转动过的有序数组中寻找目标值] C++题解/答案
- 第一百三十期:14种常见编程语言的优缺点及应用范围
- 【BZOJ4516】生成魔咒,后缀数组+Splay
- 【英语学习】【English L06】U03 House L1 What type of apartment do you want to rent?
- android8 通知呼吸灯_手机呼吸灯那么好用!为什么要取消它?没有呼吸灯真的好吗?...
- 联想高校AI精英挑战赛中大收官,“人工智能眼科机器人”获全国总决赛最后入场券
- LoadRunner11 压力测试
- 小程序思维导图(基础图)
- 红帽认证系统管理员 ― RHCSA
- 数据分析第二章课后习题解答
- 计算机专业就业方向与前景以及你所要具备的技能(本科生)
- 经验分享:利用树莓派开发板制作无线路由器
- Chrome插件安装失败,此扩展程序可能已损坏。