基于TI DM6467的多视频通道采集程序例程,4路D1输入,合成1路高清视频HDMI输出。
文件列表
mcvip_tvp5158\bin\cmemk.ko
.............\...\dma_test.out
.............\...\i2crw.out
.............\...\loadmodules.sh
.............\...\mcvip_test.out
.............\.uild\COMMON_FOOTER.MK
.............\.....\COMMON_HEADER.MK
.............\.....\INCLUDES.MK
.............\.....\Makefile
.............\.....\RULES.MK
.............\drv\inc\drv_dma.h
.............\...\...\drv_i2c.h
.............\...\...\drv_tvp5158.h
.............\...\kermod\build\.drv.ko.cmd
.............\...\......\.....\.drv.mod.o.cmd
.............\...\......\.....\.drv.o.cmd
.............\...\......\.....\.tmp_versions\drv.mod
.............\...\......\.....\drv.ko
.............\...\......\.....\drv.mod.c
.............\...\......\.....\drv.mod.o
.............\...\......\.....\drv.o
.............\...\......\.....\Makefile
.............\...\......\inc\dev_dma.h
.............\...\......\...\dev_i2c.h
.............\...\......\...\dev_tvp5158.h
.............\...\......\priv\dev_debug.h
.............\...\......\....\dev_dma_priv.h
.............\...\......\src\.dev_dma.o.cmd
.............\...\......\...\.dev_dmaCopyFill.o.cmd
.............\...\......\...\.dev_dmaDemux.o.cmd
.............\...\......\...\.dev_drv.o.cmd
.............\...\......\...\.dev_i2c.o.cmd
.............\...\......\...\.dev_tvp5158.o.cmd
.............\...\......\...\dev_dma.c
.............\...\......\...\dev_dma.o
.............\...\......\...\dev_dmaCopyFill.c
.............\...\......\...\dev_dmaCopyFill.o
.............\...\......\...\dev_dmaDemux.c
.............\...\......\...\dev_dmaDemux.o
.............\...\......\...\dev_drv.c
.............\...\......\...\dev_drv.o
.............\...\......\...\dev_i2c.c
.............\...\......\...\dev_i2c.o
.............\...\......\...\dev_tvp5158.c
.............\...\......\...\dev_tvp5158.o
.............\...\usermod\src\drv_dma.c
.............\...\.......\...\drv_i2c.c
.............\...\.......\...\MAKEFILE.DEPEND
.............\...\.......\...\MAKEFILE.MK
.............\lib\dma_test.a
.............\...\drv.a
.............\...\i2crw.a
.............\...\mcvip.a
.............\...\mcvip_test.a
.............\...\obj\dma_test\main.o
.............\...\...\.rv\drv_dma.o
.............\...\...\...\drv_i2c.o
.............\...\...\i2crw\main.o
.............\...\...\mcvip\mcvip_api.o
.............\...\...\.....\mcvip_demux.o
.............\...\...\.....\mcvip_tsk.o
.............\...\...\.....\mcvip_tvp5158.o
.............\...\...\.....\mcvip_tvp5158_i2c.o
.............\...\...\.....\mcvip_v4l2.o
.............\...\...\....._test\audio_mcasp.o
.............\...\...\..........\audio_tsk.o
.............\...\...\..........\capture_tsk.o
.............\...\...\..........\display_layout.o
.............\...\...\..........\display_tsk.o
.............\...\...\..........\display_v4l2.o
.............\...\...\..........\main.o
.............\...\...\..........\system.o
.............\...\...\osa\osa.o
.............\...\...\...\osa_buf.o
.............\...\...\...\osa_cmem.o
.............\...\...\...\osa_file.o
.............\...\...\...\osa_flg.o
.............\...\...\...\osa_ipc.o
.............\...\...\...\osa_mbx.o
.............\...\...\...\osa_msgq.o
.............\...\...\...\osa_mutex.o
.............\...\...\...\osa_prf.o
.............\...\...\...\osa_que.o
.............\...\...\...\osa_sem.o
.............\...\...\...\osa_test.o
.............\...\...\...\osa_test_ipc.o
.............\...\...\...\osa_thr.o
.............\...\...\...\osa_tsk.o
.............\...\osa.a
.............\mcvip\inc\mcvip.h
.............\.....\priv\mcvip_priv.h
.............\.....\....\tvp5158_patch_v02_00_03.h
.............\.....\....\tvp5158_patch_v02_00_07.h
.............\.....\....\tvp5158_patch_v02_01_08.h
.............\.....\....\tvp5158_patch_v02_01_14.h
.............\.....\....\tvp5158_patch_v1_00_13.h
.............\.....\....\tvp5158_patch_v1_00_15.h
.............\.....\....\tvp5158_patch_v1_00_16.h
.............\.....\....\tvp5158_patch_v1_00_17.h
.............\.....\....\tvp5158_patch_v1_00_18.h
Multi-Channel Video Input Port (MCVIP) driver for TVP5158 PG1.1
*********************************************************
Date: 07/01/2009
Version: v010006_061609
Updated:
1) Fixed Macrovision detection in patch v02.01.08.
2) Fixed static noise on audio output.
*********************************************************
Date: 06/16/2009
Version: v010005_061609
- Add all missing cropped modes.
- Update main menu with all modes.
- All modes are now working.
- Audio work but has some static noise.
*********************************************************
Date: 05/06/2009
Version: v010003_050609
- Fix active video scroll to the beginning of next line by using Tvp5158 patch v02.00.07.
- Add audio to option (off is default).
*********************************************************
- Introduction
- Directory Structure
- Build Instructions
- Running Instructions
- Performance
Introduction
============
This is the README for McVIP TVP5158 driver and test application.
The test application is not yet fully ready so some options may not work.
Directory Structure
===================
mcvip_tvp5158 - root folder
|
+ -- bin - executable, load script's
+ -- build - top level Makefile's, common compile/link options
+ -- drv - driver library for generic DMA APIs, generic I2C APIs, TVP5158 kernel module
+ -- lib - generated libraries
+ -- mcvip - MCVIP driver library
| |
| + -- inc - MCVIP driver interface file that should be used by user
| + -- src - MCVIP driver library source
|
+ -- osa - OS abstraction library
+ -- test - MCVIP demo application and other test utilities
Build Instructions
==================
Requirements,
- Monta vista compile tools for Davinci v4.0.1
- DM6467 LSP
- tested with v01_03_00_082 but any version should be fine
- make sure to replace the following files with the files modified for TVP5158 driver
- drivers/media/video/davinci/vpif.c
- drivers/media/video/davinci/davincihd_capture.c
- ti-davinci/linux-2.6.10_mvl401_LSP_01_30_00_082/sound/oss/dm646x/audio_controller.c
- ti-davinci/linux-2.6.10_mvl401_LSP_01_30_00_082/sound/oss/dm646x/audio_controller.h
- ti-davinci/linux-2.6.10_mvl401_LSP_01_30_00_082/sound/oss/dm646x/davinci-aic32.h
- ti-davinci/linux-2.6.10_mvl401_LSP_01_30_00_082/sound/oss/dm646x/davinci-audio-aic32.c
- ti-davinci/linux-2.6.10_mvl401_LSP_01_30_00_082/arch/arm/mach-davinci/mcasp.c
- ti-davinci/linux-2.6.10_mvl401_LSP_01_30_00_082/include/asm-arm/arch-davinci/mcasp.h
- ti-davinci/linux-2.6.10_mvl401_LSP_01_30_00_082/include/asm/arch-davinci/davinci-audio-config.h
- ti-davinci/linux-2.6.10_mvl401_LSP_01_30_00_082/arch/arm/mach-davinci/video_hdevm.c
- the modified files are placed at mcvip_tvp5158/lsp_files
- DM6467 DVSDK
- tested with v1_40_00_11 but any version should be fine, CMEM library from DVSDK is used by the test application
- Refer to DVSDK installation guide for detailed LSP/DVSDK install instructions
Instructions,
- Open file Rules.make in DVSDK folder
- Edit it according to user environement
- Specifically modify DVSDK_INSTALL_DIR, MVTOOL_DIR, LINUXKERNEL_INSTALL_DIR, EXEC_DIR
- Open file RULES.MK in "mcvip_tvp5158/build"
- Edit it according to user environement
- Specifically modify TARGET_FS, DVSDK_BASE_DIR
- Open command line terminal window and goto folder "mcvip_tvp5158/build"
- Type
> make -s sysall
This will clean and build LSP, DVSDK, MCVIP driver. Do this atleast once.
- Later to incrementally build
> make -s // to build MCVIP driver, test code
> make -s lsp // to build LSP
> make -s dvsdk // to build DVSDK
- The linux bootable uImage would be at
$(TARGET_FS)/uImage
- The MCVIP test code and related kernel modules would be at
$(TARGET_FS)/opt/mcvip
Running Instructions
====================
Requirements,
- DM6467 EVM
- TVP5158 EVM
- 1080i HDTV
Hardware Setup,
- Refer TVP5158 EVM user guide/schematics for details
- Connect the provide cable between TVP5158 EVM and DM6467 EVM.
- IMPORTANT: Make sure jumper settings on the TVP5158 are done to enable I2C programming from DM6467.
- On the TVP5158 EVM, following jumper settings need to be done for I2C access from DM6467
- W3, LEFT - CLOSE
- W4, LEFT - CLOSE
For audio:
- Remove resistors : R42, R98, and R99 in TVP5158 EVM
- Remove resistors : R13, R17, and R31 in DM6467 EVM
Instructions,
- Boot uImage generated above and come up to linux command prompt.
- Refer to DVSDK installation guide for booting the uImage
- Goto folder /opt/mcvip
- Load the required MCVIP test modules
> ./mcvip_load.sh
This will load the required kernel modules and drivers for the TVP5158 demo
- Reset the TVP5158 DVB
- Run the test application
> ./mcvip_test.out
- Select displayed option to start the required mode
- Now the MCVIP demo will start capturing, demuxing and displaying channels on the display
- To exit select option "0".
Performance
===========
- Preliminary performance numbers are given below
- DM6467
- ARM = 297Mhz, DDR = 297Mhz
- EDMA Param Entries = 24
Mode ARM Total Mhz ISR Mhz Task Mhz
(ISR+Task Mhz)
-------------------------------------------------------------------------------------
2Ch D1 (BT656) 17Mhz 8Mhz 9Mhz
4Ch D1 (BT656) 34Mhz 16Mhz 18Mhz
4Ch Half-D1 (BT656) 34Mhz 16Mhz 18Mhz
4ch Half-D1 + D1 (BT656) 51Mhz 24Mhz 27Mhz
Tested
===========
- DM6467
- ARM = 364.5Mhz, DDR = 405Mhz
Mode Status Comment
-------------------------------------------------------------------------------------
00: Start - 2Ch D1 - Port A (BT656 ) Ok
01: Start - 2Ch D1 - Port B (BT656 ) Ok
02: Start - 4Ch D1 (BT656 ) Ok
03: Start - 4Ch Half-D1 (BT656 ) Ok
04: Start - 4Ch CIF (BT656 ) Ok
05: Start - 4Ch D1 (BT1120) Ok
06: Start - 4Ch Half-D1 (BT1120) Ok
08: Start - 8Ch CIF (BT656 ) Ok Need Cascade argument C1..C4
09: Start - 4Ch Half-D1 + D1 (BT656 ) Ok
0a: Start - 4Ch CIF + D1 (BT656 ) Ok
0b: Start - 8Ch CIF + D1 (BT656 ) Ok Need Cascade argument C1..C4
10: Start - 2Ch D1 - Port A (BT656 ) CROP Ok
11: Start - 2Ch D1 - Port B (BT656 ) CROP Ok
12: Start - 4Ch D1 (BT656 ) CROP Ok
13: Start - 4Ch Half-D1 (BT656 ) CROP Ok
14: Start - 4Ch CIF (BT656 ) CROP Ok
15: Start - 4Ch D1 (BT1120) CROP Ok
16: Start - 4Ch Half-D1 (BT1120) CROP Ok
18: Start - 8Ch CIF (BT656 ) CROP Ok Need Cascade argument C1..C4
19: Start - 4Ch Half-D1 + D1 (BT656 ) CROP Ok
1a: Start - 4Ch CIF + D1 (BT656 ) CROP Ok
1b: Start - 8Ch CIF + D1 (BT656 ) CROP Ok Need Cascade argument C1..C4
PAL display system work only with D1 modes (1, 2, 3, 5, 6, 9).