顺着你的思路,我找到了关键的DrvEscape函数
现在的理解是,应用层调用ExtEscape函数,对应驱动层的DrvEscape函数,很容易实现LCD显示到TV-OUT切换的显示,即只要对应DrvEscape中的DRVESC_OUTPUT_TV条件即可。这也应该是三星给的tvout_test_Switch.exe的源码,为什么这么说呢?仔细观察的话很容易发现tvout_test_Switch.exe的大小只有3K,3K能干什么呢?——只调用了DrvEscape这一个函数。
当然上面的都是猜的……本来想试试的,比较倒霉的是我的板子(UT-S3C6410)即使执行tvout_test_Switch.exe也没有TV-OUT信号输出,经示波器测试后,怀疑NJM2561F1这个片子烧了,更倒霉的是竟然在北京找不到这个片子的现货,东西周一才能到。
现在我的问题是,因为我是要实现LCD屏和TV输出同时显示不同的东西,LCD显示业务软件界面,TV输出广告视频。所以我应该是用TV Scaler的DMA模式。
经过看代码,发现是调用 DrvEscape函数对应DRVESC_TV_DMA_PRIMARY条件即可。但顺着代码看下午,一路都是对TV Scaler、TV Encoder的初始化设置,没有看到显示的内容往哪里放?也就是说TV Scaler通过DMA方式在Memery中什么地方取像素数据的,我应该把我要显示的内容以什么方式?放在什么地方?还请高人指点,Lisuwei——我们很期待你啊!
引用 9 楼 lisuwei 的回复:
之前做过,TV-OUT集成在ExtEscape函数里了,楼主看看display驱动便明
提示:用关键字在显示驱动搜DevChangeOutputInterface