修改在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输出相关推荐

  1. java演练 循环嵌套 菱形图案的打印 四个阶段完成输出

    java演练 循环嵌套 菱形图案的打印 阶段一,视频 https://www.ixigua.com/6870331861256634894/ 阶段一,数据分析 阶段二,视频 http://mp.tou ...

  2. 《拉勾Java高薪课程》阶段一输出 之 通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式)--菜鸟小回

    通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式) 文章目录 通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式) @[toc] 一.单例模式 1. 相关概念 2. 演示思路 3. ...

  3. 测试每个阶段需要输出的文档

    测试是软件研发过程中占有重要的地位,软件质量的好坏和测试把关严不严有很大关系,那在整个研发流程中,测试需要提交哪些交付件呢? 我们按照测试流程来走,看看每一步测试需要提交哪些交付件? 1.需求澄清, ...

  4. 输入端口 HDMI接口,S端子,AV接口,VGA接口, 分量视频接口,TV输入,USB接口的对比

    VGA输入接口:VGA 接口采用非对称分布的15pin 连接方式,其工作原理:是将显存内以数字格式存储的图像( 帧) 信号在RAMDAC 里经过模拟调制成模拟高频信号,然后再输出到等离子成像,这样VG ...

  5. 产品经理的四个重要阶段

    本文由作者 John西瓜 于社区发布 "产品经理的成长路径和产品生命周期是一样的." 和一些小伙伴沟通,在职(真)场(是)不(闲)得(的)意(慌)的时候,总会蹦出一句话:" ...

  6. n个骰子的点数 java_n个骰子的点数和为s的概率集合输出(Java)

    问题描述: 把n个骰子仍在地上,所有骰子朝上一面的点数之和为s,输入n,打印出s的所有可能出现的概率 问题分析: 这是一道应用动态规划思想的题目,而动态规划最难的就是要找最优子结构.并采取一种称为备忘 ...

  7. 大数据阶段划分及案例单词统计

    大数据阶段的重要课程划分 离线分析 : hadoop生态圈 HDFS, MapReduce(概念偏多), hive(底层是MapReduce), 离线业务分析80%都是使用hive实时分析 : spa ...

  8. tee:结果输出到文件同时也作为往后的输入信息

    tee:重定向到多个目标 命令1 | tee [-a ] 文件名 | 命令2 把命令1的STDOUT保存在文件中,做为命令2的输入 -a 追加  使用:  保存不同阶段的输出  复杂管道的故障排 ...

  9. linux sed 不输出,linux-使用awk和sed消除不必要的输出

    从以下命令中,我如何消除之前出现的所有行 Owner RepoName CreatedDate 编辑命令: find /opt/site/ -name '.log.txt' | xargs cat | ...

最新文章

  1. 中国百万美元富翁财富
  2. HALC: High throughput algorithm for long read error correction
  3. kafka 学习总结
  4. ubuntu下部署eclipse集成hadoop\android\web\GCC开发环境小记
  5. 《他其实没那么喜欢你》经典台词(4)
  6. 清空Form表单所有内容
  7. 大专计算机系毕业课题6000字,计算机理论论文6000字:高校科研.doc
  8. 牛客题霸 [在转动过的有序数组中寻找目标值] C++题解/答案
  9. 第一百三十期:14种常见编程语言的优缺点及应用范围
  10. 【BZOJ4516】生成魔咒,后缀数组+Splay
  11. 【英语学习】【English L06】U03 House L1 What type of apartment do you want to rent?
  12. android8 通知呼吸灯_手机呼吸灯那么好用!为什么要取消它?没有呼吸灯真的好吗?...
  13. 联想高校AI精英挑战赛中大收官,“人工智能眼科机器人”获全国总决赛最后入场券
  14. LoadRunner11 压力测试
  15. 小程序思维导图(基础图)
  16. 红帽认证系统管理员 ― RHCSA
  17. 数据分析第二章课后习题解答
  18. 计算机专业就业方向与前景以及你所要具备的技能(本科生)
  19. 经验分享:利用树莓派开发板制作无线路由器
  20. Chrome插件安装失败,此扩展程序可能已损坏。

热门文章

  1. matlab顶层,购房攻略:史上最完美的顶楼选房攻略,没有之一
  2. 【PTA】【数据结构与算法】贪心算法
  3. jpsite-v1环境搭建
  4. MT【137】多少个?
  5. matlab中ss函数_MATLAB中的S-Function的用法(C语言)
  6. Linux: sudo 和 su 命令异同
  7. C 养兔子 SDUT
  8. 上转换发光纳米材料用于小动物成像的简述
  9. Node.js调试指南
  10. Hi,运维,你懂Java吗--No.5:JVM--方法区元空间