sigma 的 86XX 播放器画质最好的播放器到底好在哪里

后使用快捷导航没有帐号?
只需一步,快速开始
请完成以下验证码
广告位限时优惠促销联系QQ:166163
交易诚信度0
主题帖子威望
新手上路, 积分 0, 距离下一级还需 1 积分
交易诚信度0
马上注册 家电论坛,众多有奖活动等你来参与!
才可以下载或查看,没有帐号?
家里有个老的5.1功放,想当年也是6、7000大米买来的,音效还是不错的。舍不得扔了。
海美迪HD600B用的是1185芯片,尽管很属意他(1、可把次世代等7.1,降解输出ac3,5.1音频。2、免开电视,按键放音乐)看了许多资料,都说是不如8655等芯片的,所以还想在Sigma芯片中找找,不知可有此个功能啊?
交易诚信度0
主题帖子威望
新手上路, 积分 0, 距离下一级还需 1 积分
交易诚信度0
8655好像就忆捷的H5了,也在考虑中,画质应该是8655芯片好。
交易诚信度0
主题帖子威望
新手上路, 积分 0, 距离下一级还需 1 积分
交易诚信度0
在解码上,忆捷H5支持MKV/VC-1/ISO/MOV/TS/WMV等主流高清封装格式,APE+CUE及FLAC等无损音乐格式。在音频上,支持目前最高级的DTS-HD、Dolby TRUE-HD及7.1次世代音频输出功能,可通过HDMI、光线、同轴输出LPCM、Dolby Digtal Plus、Dolby TrueHD、DTS-HD HR、DTS-HD MA格式的次世代源码高清音轨,拥有Dobly、DTS的双解码功能,配合外接功放还原现场音效,轻松畅享天籁之音。
-------- 牛皮吹了不少,核心一句:支持次世代。但没说能否降解输出
交易诚信度0
主题帖子威望
交易诚信度0
提示: 作者被禁止或删除 内容自动屏蔽
交易诚信度0
主题帖子威望
交易诚信度0
提示: 作者被禁止或删除 内容自动屏蔽
交易诚信度0
主题帖子威望
新手上路, 积分 0, 距离下一级还需 1 积分
交易诚信度0
唉,我这老功放只支持dd,ac3,连dts也不支持
交易诚信度0
主题帖子威望
新手上路, 积分 0, 距离下一级还需 1 积分
交易诚信度0
盼有高手来解答
今日推荐 /1
“影音联盟2018年中国4K超高清、全景声、智能巡展”启动!第二站 --- 杭州 4K、全景声、智能豪华影院阵容 !
Powered bySigmaDesigns_甜梦文库
SigmaDesigns
SigmaDesigns’ SMP863X WinCE BSP And Development Help
SigmaDesigns(ShenZhen) Corporation. All rights reserved. V2.0.0.10 New 1 CATALOG 1)Basic platform ………………………………………………………………………………… A) Hardware platform B) Software platform 2) How to build up the SMP8634 wince platform builder …………………… 3) How to run the CE system on SMP8634 board …………………………… A) Make the CE bootloader B) Make the SMP8634 specific CE Nk.bin C) Download the NK.BIN to SMP8634 board D) Make the SHIP mode SMP8634 CE Nk.bin and boot it up without platform builder 4) How to make application for SMP8634 wince system …………………… …………………………………… 5) How to test the SMP8634 wince feature A) SMP8634 ETH B) SMP8634 USB C) SMP8634 ATAPI D) SMP8634 Pflash Storage(disabled) E) SMP8634 IR remote control F) SMP8634 I2C G) SMP8634 Smart Card reader H) SMP8634 COM serial I) SMP8634 DDI J) SMP8634 HW cursor K) SMP8634 WAVE device L) SMP8634 DDR RAM M) SMP8634 RTC(RealTime Clock) N) SMP8634 GPIO O) SMP8634 PWM P) SMP8634 Hardware Demux Q) SMP8634 Hardware Jpeg decode R) SMP8634 LVDS output S) SMP8634 Multi-Decoder T) SMP8634 VGA output U) SMP8634 Audio and Video Captures filter 6) How to upgrade/modify the CE boot loader …………………………………… A) Update boot.bin B) Update XENV C) Set the default value for boot loader 7) How to modify wince feature on SMP8634 …………………………………… A) Web server B) FTP server C) Telnet server D) SMB server E) Hive-based Registry F) IE 6.0 for Windows CE G) Media Player H) Microsoft Network Media Device I) Standard Shell J) DirectDVD k) Wire less Ethernet 8) How to upgrade XOS of SMP8634 chip …………………………………………… 9) How to get XOS information …………………………………………………………………… 10) How to make the boot Screen …………………………………………………… 11) How to show a bitmap logo in boot screen …………………………………… 12) How to show a progress in boot screen …………………………………… 13) How to dynamic change video output …………………………………………… 14) Current Driver escape codes …………………………………………………… …………………………………………………… 15) Extended Project 16) About Windows CE Test kits(CETK) …………………………………………………… 17) BUG list ………………………………………………………………………………………… .2. .8. .9.Onl y.46. .48.See Yoo-1-.73..75.For.80. .80 .80. .81. .81. .81. .83. .87. .89. .89. 1)Basic platform A) Hardware platform 1. SMP8634 envision board(ES6 late version) or production board Pflash:recommend 64M bytes(NOR flash) If loading NK.bin from a IDE device, it needs a 1M bytes NOR flash only If your boot screen is a big 24bit mode bitmap, it needs a 4M bytes NOR flash DDR RAM: recommend two 128M bytes Ethernet card port: RTL8100CL(RTL8139 compatibility) Enable (This device is for debug only) SMP8634 MAC Enable SMP8634 vantage board(ES6 late version) Pflash:recommend 64M bytes(NOR flash) If loading NK.bin from a IDE device, it needs a 1M bytes NOR flash only If your boot screen is a big 24bit mode bitmap, it needs a 4M bytes NOR flash DDR RAM: recommend two 128M bytes Ethernet card port: SMP8634 MAC Enable RTL8100CL(RTL8139 compatibility) MINI PCI card(This device is for debug only) 2. SMP8634 peripheral: USB Mouse USB keyboard Serial debug card Serial port link cable IR remote control CRT or LCD TV monitor Two Ethernet link cables One MINI PCI RTL8100(RTL8139 compatibility) Ethernet card(For Vantage board only) 3. X86 PC 2.4G CPU 512M bytes Memory 60G bytes Hard disk 4. Ethernet switcher 4 ports 10/100M bps B) Software platform 1. Microsoft Windows XP SP2 system 2. Microsoft windows CE platform builder 5.0 with MIPSII BSP Recommend install follow updates. a. “Windows CE 5.0 Platform Builder Yearly Update (2007)” for MIPSII File name: WinCEPB50-071231-Product-Update-Rollup-MIPSII.msi Link: http://www.microsoft.com/downloads/details.aspx?FamilyId=AA 5-49F0-9E36-979D461F536C&displaylang=enc: “Windows CE 5.0 Platform Builder Monthly Update (February 2008)” for MIPSII File name: WinCEPB50-8M02-MIPSII.msi Link: http://www.microsoft.com/downloads/details.aspx?FamilyId=9AC7441F-3AD C-4E35-ABD1-FA4FBB90A132&displaylang=en d: ”Windows CE 5.0 Platform Builder Monthly Update (March 2008)” for MIPSII File name: WinCEPB50-8M03-MIPSII.msi Link: http://www.microsoft.com/downloads/details.aspx?FamilyId=AACEA4AE-E8C E-40C3-941C-D2A549A55DEB&displaylang=en e: “Windows CE 5.0 Platform Builder Monthly Update (April 2008)” for MIPSII File name: WinCEPB50-8M04-MIPSII.msi -2-Forb: “Windows CE 5.0 Platform Builder Monthly Update (January 2008)” for MIPSII File name: WinCEPB50-8M01-MIPSII.msi Link: http://www.microsoft.com/downloads/details.aspx?FamilyId=98F-4792-91FE-47A0E073A998&displaylang=enSee YooOnl y Link: http://www.microsoft.com/downloads/details.aspx?FamilyId=4A3D4537-AB1 B-4E8F-B735-348A64A9D8D6&displaylang=en f. “Windows CE 5.0 Networked Media Device Feature Pack” for MIPSII File name: WinCEPB50-Product-Update-Rollup-MIPSII.msi Link: http://www.microsoft.com/downloads/details.aspx?familyid=BF17D6B0-471 6-494B-9018-7DEEE9B91832&displaylang=en g. “WinCE 5.0 Networked Media Device Feature Pack - Cumulative Product Update Rollup Package (through 12/31/2007)” for MIPSII File name: WinCEPB50_NMDFP-071231-Product-Update-Rollup-MIPSII.msi Link: http://www.microsoft.com/downloads/details.aspx?FamilyId=81C5D9F3-A1D 1-4D0E-BF6A-D579D1C41077&displaylang=en h. “Windows CE 5.0 Networked Media Device Feature Pack Monthly Update (January 2008)” for MIPSII File name: WinCEPB50_NMDFP-8M01-MIPSII.msi Link: http://www.microsoft.com/downloads/details.aspx?FamilyId=D64F66D4-9A4 B-443F-CCA95FF68&displaylang=en 3. SMP8634 BSP a. Current version:2.0.0.0 b. Name: WindowsCE.5.0.BSP.2.0.0.0.zip c. Directory Structure: +2.0.0.0.bsp +CEC -smp863x.cec -smp863x_atapi.cec -smp863x_ehci.cec -smp863x_eth.cec -smp863x_i2c.cec -smp863x_ohci.cec -smp863x_pflash.cec -smp863x_serial.CEC -smp863x_smartcard.cec +pflash_tools -BOOT_STB.nb0 -dram_64.cmd -dram_128.cmd -genxenv.config -genxenv.exe -pflash_combo.config -pflash_combo.exe -pflash_CS2_64.mem -readme.txt -xenv_64.mem -xenv_128_64.mem -xreset.cmd -xrpc_xload_bootstrap_cs2_b1000000_ES4_dev.bin -xrpc_xload_bootstrap_cs2_b1000000_ES4_prod.bin +Setxenv +Setxenv -main.cpp -Makefile -rmbasic.h -sources +xrpc -xrpc.exe -changes.txt -readme.txt -smp8634-envision.2.0.0.0.msi d. BSP update 1) I2C update: This update is about setting speed for I2C deviceForSee Yoo-3-Onl y Name: Bsp_i2c.zip Directory Structure: +Bsp_i2c +bsp_i2c_lib -bsp_i2c_lib.c -makefile -sources +dll -i2c_iisr.c -i2c_iisr.def -i2c_iisr.h -makefile -sources +sys -bsp_i2c.c -bsp_i2c.def -makefile -sources +test -main.cpp -makefile -sources -dirs 2) USB update: This update is about USB2.0 and it is for SMP8634 RevC/ES9 version chip only Name: SMP8634_USB_RevC_Optimization.zip Directory Structure: +SMP8634_USB_RevC_Optimization +ehci86xx -ehci86xx.def -ehci86xx.reg -makefile -resource.h -rmver.rc -sources -system.c +ohci86xx -makefile -ohcd86xx.def -ohci86xx.reg -resource.h -rmver.rc -sources -system.c +usb11 +common -cdevice.cpp -cdevice.hpp -cphysmem.cpp -cphysmem.hpp -globals.hpp -hcd.cpp -hcd.hpp -hcddrv.cpp -makefile -pipeabs.hpp -sources -sync.cpp -sync.hpp +ohcd2 -chw.cpp -chw.hpp -cohcd.cpp -cohcd.hpp -cpipe.cpp -cpipe.hpp -makefileForSee Yoo-4-Onl y -dirs +usb20 +EHCI -cehcd.cpp -cehcd.h -chw.cpp -chw.h -cpipe.cpp -cpipe.h -ctd.cpp -ctd.h -makefile -sources -td.h -trans.cpp -trans.h -usb2lib.cpp -usb2lib.h +USB2COM -cdevice.cpp -cdevice.hpp -cphysmem.cpp -cphysmem.hpp -globals.hpp -hcd.cpp -hcd.hpp -hcddrv.cpp -makefile -pipeabs.hpp -sources -sync.cpp -sync.hpp -dirs +version -rmver -readme.txt 3) RTC update Your board MUST have the RTC(RealTime Clock) hardware support for this update to work. Name: bsp_rtc-10-16-07.zip Directory Structure: + bsp_rtc-10-16-07 + WINCE500 + PLATFORM + SMP863X +Src +Libs + bsp_rtc - makefile - readme.txt - rmbasic.h - rtc.c - sources - xos_xrpc.h - xpurtc_xtask_load_bin_dev.h - xpurtc_xtask_load_bin_prod.h - xpurtc_xtask_unload_bin_dev.h - xpurtc_xtask_unload_bin_prod.h 4. SMP8634 multimedia package a. Current version: 2.0.0.10 b. Name: Multimedia.2.0.0.10.zip c. Directory Structure: +Multimedia.2.0.0.10 +include - bitblt.h-sources -transfer.cpp -transfer.hppForSee Yoo-5-Onl y - ddi86xxesc.h - icapturesrc863x.h - ids863x.h - ihwdemux863x.h - itsdemux.h - jpeg_api.h - smp863x_formats.h - smp863x_ioctl.h - SMP863x_RestoreFB.h +restorefb + dev - SMP863x_RestoreFB.lib + prod - SMP863x_RestoreFB.lib +retail - capsrc863x.map - ddi_86xx.map - ds863x.map - dswmapro.map - hdmi863x.map - hwdemux863x.map - smp863x.map - swjpeglib.map - tsdemux.map - wave863x.map - jpeg_api.lib - capsrc863x.pdb - ddi_86xx.pdb - ds863x.pdb - dswmapro.pdb - hdmi863x.pdb - hwdemux863x.pdb - jpeg_api.pdb - smp863x.pdb - swjpeglib.pdb - tsdemux.pdb - wave863x.pdb - capsrc863x.rel - ddi_86xx.rel - ds863x.rel - dswmapro.rel - hdmi863x.rel - hwdemux863x.rel - smp863x.rel - swjpeglib.rel - tsdemux.rel - wave863x.rel - capsrc863x.dll - ddi_86xx.dll - ds863x.dll - dswmapro.dll - hdmi863x.dll - hwdemux863x.dll - smp863x.dll - swjpeglib.dll - tsdemux.dll - wave863x.dll +samples +BootFB - main.cpp - Makefile - rmbasic.h - sources +HwPlayJpeg - HwPlayJpeg.cpp - sources - HwPlayJpeg.h - HwPlayJpeg.rcForSee Yoo-6-Onl y 5. SMP8634 XOS version Version: E0 FileName: xrpc_xload_xosu-xosMe0-8634_ES4_dev.binFor-7-See Yoo6. The different files for development chip(Es6/Es7/Es9) and production chip(Rev A/B/C) in BSP For follow files , there are two version in the BSP, one for development chip, one for production chip, if you use wrong version for your system, it can make the board fault, so please take careful when you use this mode file in your system. a. Signed file xrpc_xload_bootstrap_cs2_b1000000_ES4_dev.bin xrpc_xload_bootstrap_cs2_b1000000_ES4_prod.bin b. Framebuffer library SMP863x_RestoreFB.libOnl y- makefile - resource.h - readme_capturesrc863x.txt - readme_ddi_86xx.txt - readme_ds863x.txt - readme_dswmapro.txt - readme_hdmi863x.txt - readme_hwdemux863x.txt - readme_hwjpeg.txt - readme_smp863x.txt - readme_tsdemux.txt - readme_wave863x.txt - Windows CE Boot Screen.txt -whatsnew.2.0.0.10.txt d. MultiMedia update 2) How to build up the SMP8634 wince platform builder A) Build up a Microsoft windows XP SP2 system on a X86 PC B) Install Microsoft windows CE platform builder 5.0 with MIPSII BSP to the system as pic1 shows.For&pic2& F) Open Microsoft windows CE 5.0 platform builder, use “File----Manage Catalog Items…” menu to open “Manage Catalog Items” dialog, use “Import” button to import all eight CEC files to platform builder, and make sure all SMP8634 driver features are in Catalog windows as pic3 showsSee Yoo&pic3& -8-&pic1& C) Install all Update packages for Microsoft windows CE 5.0 platform builder D) Install SMP8634 wince BSP(smp8634-envision.2.0.0.0.msi), upgrade BSP E) Copy all nine CEC files (smp863x.cec,smp863x_atapi.cec,smp863x_eth.cec,smp863x_i2c.cec,smp863x_ohci.cec,s mp863x_serial.CEC, smp863x_pflash.cec,smp863x_smartcard.cec, smp863x_ehci.cec) to “\WINCE500\PUBLIC\COMMON\OAK\CATALOG\CEC” directoryOnl y 3) How to run the CE system on SMP8634 board A) Make the CE bootloader There is not a default combo CE bootloader in BSP, but all of the making bootloader tools are in pflash_tools directory. You can use them to make a CE bootloader. All EXE files are DOS mode command. 1. Make the XENV file(xenv_128_128.mem) Set genxenv.config as follow sample, and use this new genxenv.config to make a new xenv_128_128.mem file. The command line is &genxenv e xenv_128_128.mem genxenv.config&. # # Hardware config file for SMP863x platform (xenv) # Default for SMP8634 STB board (a.k.a Envision) # # ----------# xos section # ----------# boot xrpc/xload offset: x.boot = 0x8000 # dram stuffing # [29:20] - size of DRAM2, in MB, if present # [19:10] - size of DRAM1, in MB, if present # [ 9: 0] - size of DRAM0, in MB. #x.ds = 0x10040 # DRAM0 64M + DRAM1 64M x.ds = 0x20080 # DRAM0 128M + DRAM1 128M # dram timings/delays x.d0.cfg = 0xf34111ba # DRAM0 128M #x.d0.cfg = 0xe34111ba # DRAM0 64M #x.d0.dl0 = 0x000a4444 x.d1.cfg = 0xf34111ba # DRAM1 128M #x.d1.cfg = 0xe34111ba # DRAM1 64M #x.d1.dl0 = 0x000a4444 # dram test x.dt = 1 # pll setting #x.pll3 = 0x #x.mux = 0x201 # frequency setting x.csf = 0x2 2.Make the pflash combo file(SMPM.mem) Set pflash_combo.config as follow sample,use this new config file to make the CE loader file(SMPM.mem). The command is &pflash_combo SMPM.mem pflash_combo.config&. # parallel flash memory configuration for XOS versions & a0 # encripted boot stub located at offset 0x800 and pointed by x.boot=0x800 in xenv.mem # 0x xenv_128_128.mem 0x xrpc_xload_bootstrap_cs2_b1000000_ES4_dev.bin 0x boot.nb0 The SMPM.mem must be 576K bytes big size. The boot.nb0 file of each version BSP is different, so if BSP is upgraded, we must update the boot.nb0 too Build a new CE project with new version BSP, get the boot.nb0 file, use it to replace the default boot.nb0 file or download boot.bin to SMP8634 board with CE platform builder. If the CE bootloader is made for a production SMP8634 board(Rev A, Rev B or Rev C version), we must use xrpc_xload_bootstrap_cs2_b1000000_ES4_prod.bin file to replace the xrpc_xload_bootstrap_cs2_b1000000_ES4_dev.bin file. 3. Write the CE bootloader(SMPM.mem) to Pflash0(BOOT FLASH) of SMP8634 board from begining address with Yamon command or other tools. There are three ways to do that. a. Use a external flash programmer to program the flash image directly to the flash. Of course you have to remove the flash chip from the board first. b. Use a jtag probe to do that, but it involves a US$2500 jtag hardware to do that. If you don't have it, you can ignore this option.ForSee Yoo-9-Onl y c. Use Yamon prompt to program WindowsCE boot loader. I'll show you the step below. Please be VERY careful when you do this. If the process fail in the middle, it will crash Yamon and make your board not bootable, and you have to go back to option 1. Here is how you program the file to on-board flash by Yamon. Assume I want to program file &file0.bin& to address 0 of flash. 1. UUENCODE the file by uuencode command in x86 linux. &uuencode file0.bin x & file0.bin.uuencode 2. In Yamon promopt, run YAMON& load uu 0xb. Now the Yamon is waiting for the file from serial port. Send the file0.bin.uuencode file to SMP8634 board through serial terminal. If you are using TeraTerm, you can do it by select &File-&Send File&.(Must with text mode) 4. When downloading is done, the file size of the received file is given in YAMON. 5. Compare the reported size to the filesize of file0.bin (NOT file0.bin.uuencode) and make sure they are exactly the same. No more, no less. 6. In Yamon prompt, run YAMON& pflash write 0x0 0xb0100000 &reported file size& This command tell yamon to program the &reported file size& of data in 0xb0100000 to flash address 0x0. 4. Reboot the board, the Serial Output window of PC will shows the CE loader's bootup information , press any key will get a Main Menu list as pic4 sample.&pic4& B) Make the SMP8634 specific CE Nk.bin The SMP8634 CE system will support follow features, ? GDI output from HDMI, S-Video, AV, YCbCr, YPbPr ? DirectDraw DDI support, Alpha blending support ? HD GDI and Video output(480P,720P,P), LVDS output(24bit RGB) ? USB Mouse/Keyboard input(USB1.1/2.0), IR remote control, COM serial port input, I2C control, mini-PCI ? Hard Disk, USB storage device(USB2.0), FAT/FAT32 partition, Pflash Memory storage device, Smart card reader ? Ethernet Network, RTL8139 and SMP8634 MAC ETH two devices, TCP/IP ? Media Decode for MPEG1, Program Stream(MPEG2), Transport Stream(h.264, mpeg-1, vc-1, and mpeg-2 codec video, ac3, mpeg audio, and wma-ts codec audio), HD Transport Stream(720P,1080I/P), WMV(WMV9 video, WMA/WMA Pro audio), HDWMV(720P,1080I/P), AVI(VCM/WMV9/DIVX/XVID/H264 + MPA/MP3/AC3), HD AVI(720P,1080I/P), WMA, Mp3, Hardware TS demux (From SPI/SSI port or local file) ? System WAV audio output ? Image decode for JPEG, PNG, BMP, GIF(static), Hardware JPEG decodeForSee Yoo- 10 -Onl y ? ?Network multimedia support, IP Media(WMT) Via MMS protocol(From Windows Media Server), IP Media(WMT, Mpeg) Via Http protocol, Media On SMB server Web server, FTP server, Telnet Server, SMB sever1. Run “New platform..” menu command to wizard build CE project a. Enter the name you would like to name the platform.&pic5& b. Select &SMP863X: MIPSII& BSP.For&pic6& c. Select the &Networked Media Device& design. (To enable this design, it needs copy the Networked_Media_Device.xml file to “X:\WINCE500\public\common\OAK\CATALOG\Newplatformwizards” directory, the xml file is downloaded from MSDN, it’s a NMD template design wizard from Microsoft. )See Yoo&pic7& - 11 -Onl y d. Add/Remove the networked drivers, finish the new platform wizard.&pic8& 2. Add/Remove all specific driver from Catalog window a. Add follow SMP8634 drivers to current CE project Ethernet Controller I2C Bus Controller Ethernet Bootloader (eboot) Smart Card Reader ATAPI Controller COM_smp863x OHCI Host Controller EHCI Host ControllerFor&pic9& - 12 -See YooOnl y ?c. Edit all device module as sample shows Delete “NMD UI” feature, add “Standard Shell” feature to CE project?Applications-End User, if you don’t like Microsoft application, You can delete them.For&pic11& - 13 -See Yoo&pic10&Onl y ?Applications and Services DevelopmentFor&pic13& - 14 -See Yoo?&pic12& Communication Services and NetworkingOnl y ?Core OS Services?File Systems and Data StoreFor?FontsSee Yoo&pic14& &pic15& &pic16& - 15 -Onl y ?Graphics and Multimedia TechnologiesFor?InternationalSee Yoo&pic17& &pic18& - 16 -Onl y Set the locale language support, Use “Platform----Settings….” Menu command to open “Platform Settings” dialog, turn the “Locale” page,?For&pic20& - 17 -See Yoo&pic19& Use first “Clear All” button to clear system default Locales settings, select the languages that you want to support, set the Default language that you want to show with CE GUI. Click the “OK” button to close the dialog and enable the Locale Specific setting. Note: Adding “Agfa AC3 Font Compression” to CE project can make the Chinese Fonts library to be small, and in fact, the catalog is included in “Chinese(Simplified)” item group, not included in “Korean” group. Internet Client ServicesOnl y ?Security&pic22& 3. Set the build options and Environment a. Build options Use “Platform----Settings….” Menu command to open the “Platform Settings” dialog, turn to “Build Options” page, set it as pic24 sample&pic23& b. Build Environment On “Platform Settings” dialog, turn to “Environment” page,For- 18 -See YooOnl y?Shell and User Interface&pic21& 4. Run “Build OS----Build and Sysgen” menu command to build the CE project. Wait for the building is successful complete, it needs more time, maybe 1-3 hours. Then we can have a cup of tee or coffee. If the SMP8634 BSP2.0.0.0 is updated, please run “Build OS----Build and Sysgen Current BSP” and “Build OS---- Sysgen” again. This step needs about 1 hour. 5. Copy all files in retail directory of multimedia package(pic26) to &\WINCE500\PBWorkspace\(your CE project name)\RelDir\SMP863X_MIPSII_Release&(pic27) CE project directoryFor&pic25& - 19 -See Yoo&pic24& Add follow Environment Variable Value to project. Variable Value Comment KERNELNOSHAREETH 1 Disable VIMINI1 (ignore for Vantage) BSP_NOSHAREETH 1 Disable VIMINI1 (ignore for Vantage) BSP_KEYBD_NOP 1 Enable USB keyboard BSP_SMP863X_IR 1 Enable SMP8634 IR remote control PRJ_ENABLE_FSMOUNTASROOT 1 Enable HIVE-Based Registry(HDD) PRJ_ENABLE_REGFLUSH_THREAD 1 Enable HIVE-Based Registry(HDD) PRJ_BOOTDEVICE_ATAPI 1 Enable HIVE-Based Registry(HDD) If you use Vantage Platform, you don’t need add KERNELNOSHAREETH and BSP_NOSHAREETH. c. Click “OK” button to close dialog and enable all settingsOnl y 7. Open the config.bib file in &\WINCE500\PBWorkspace\(your CE project name)\RelDir\SMP863X_MIPSII_Release& directory, add follow settings to the end of file. ;system memory setting 25%::75% FSRAMPERCENT=0x Find follow four line settings. GLOBAL_MEM 00800 RESERVED ;1MB for EMHWLIB REQUIRED CONTIGUOUS MEMORY EXTENSION_DRAM0 E1D000 RESERVED ;15MB extension dram NK 00000 RAMIMAGE ;32MB for NK.BIN image RAM 00000 RAM ;48MB for CE applications Modify them as follow sample SMP863X B00800 RESERVED ;27MB for SMP863X driver NK 91D00 RAMIMAGE ;42MB for NK.BIN image RAM F0000 RAM ;50MB for CE applications Note: the detail information about the config.bib settingFor&pic26& 6. Open the platform.bib file in &\WINCE500\PBWorkspace\(your CE project name)\RelDir\SMP863X_MIPSII_Release& directory, add follow settings to it under &;@CESYSGEN IF CE_MODUELS_DEVICE& line. ;USB keyboard KbdNopUS.dll $(_FLATRELEASEDIR)\KbdNopUS.dll NK SH ;SMP8634 capsrc863x.dll $(_FLATRELEASEDIR)\capsrc863x.dll NK SH ddi_86xx.dll $(_FLATRELEASEDIR)\ddi_86xx.dll NK SH ds863x.dll $(_FLATRELEASEDIR)\ds863x.dll NK SH dswmapro.dll $(_FLATRELEASEDIR)\dswmapro.dll NK SH hdmi863x.dll $(_FLATRELEASEDIR)\hdmi863x.dll NK SH hwdemux863x.dll $(_FLATRELEASEDIR)\hwdemux863x.dll NK SH smp863x.dll $(_FLATRELEASEDIR)\smp863x.dll NK SH swjpeglib.dll $(_FLATRELEASEDIR)\swjpeglib.dll NK SH tsdemux.dll $(_FLATRELEASEDIR)\tsdemux.dll NK SH wave863x.dll $(_FLATRELEASEDIR)\wave863x.dll NK SH Find the pflash device dll file line. pflash.dll $(_FLATRELEASEDIR)\pflash.dll NK SH pflash2.dll $(_FLATRELEASEDIR)\pflash2.dll NK SH Disable it as follow sample. ; pflash.dll $(_FLATRELEASEDIR)\pflash.dll NK SH ; pflash2.dll $(_FLATRELEASEDIR)\pflash2.dll NK SH Close and save the platform.bib file.See Yoo- 20 -Onl y The sample config.bib file is: MEMORY IRQHANDLER ARGS IDE_DMA SMP863X NK RAM XOS_PRIVATE00 D00 97A0000000 01B00 032F0RESERVED ;2MB for IRQ handler RESERVED ;2KB info from bootloader to system RESERVED ;8KB IDE DMA side buffer RESERVED ;27MB for SMP863X driver RAMIMAGE ;42MB for NK.BIN image RAM ;50MB for CE applications RESERVED ;6MB for xos &= a6ARGS This is a 2Kb region used by the bootloader to send arguments to the kernel. This is a hard coded location coded in the bootloader and the kernel. This should NOT be changed. IDE_DMA This is a reserved 8Kb memory location to be used by the SMP8634 atapi driver. This location is hard coded in the driver, and should not be changed unless the driver is changed accordingly. SMP863x This is a reserved portion of memory to be used by the SMP863X.DLL driver. The location and size of this memory can changed. See the SMP863x.DLL documentation for more details. In this sample, it is set as 9 + 8 + 9 + 1 model, it’s all 27M bytes 9M ---- For DDI setting, +2048, less if your desk size is small 8M ---- For DirectDraw setting, less if you disable Directdraw 9M ---- For Second decoder, less if you disable second decoder 1M ---- For Basic setting, it is must reserved EXTENSION_DRAM0 This part is disable in sample config.bib, if you don’t want use memory as this mode, please ignore this part EXTENSION_DRAM0 E1D000 RESERVED ; 15MB extension dramThis is a portion of memory that is used as an &extension& to the &RAM& area. This area is seen by the kernel as available for use. The location and size of this memory can be changed, but it is hard coded in the /SMP863X/Src/Kernel/Oal/init.c file: #define EXTENSION_DRAM_START_ADDRESS (0x) #define EXTENSION_DRAM_LENGTH (0x00E1D000) If you change the location/size of this memory area, you must change init.c accrodingly and re-compile the kernel. NK This is where the kernel gets loaded. The location is hard coded in the files:SMP863X\Src\Inc\image_cfg.h(32): #define IMAGE_WINCE_CODE_PA_START 0x1D10000 SMP863X\Src\Kernel\Kern\sources(14): EXEBASE=0x91D10000 SMP863X\Src\Kernel\Kernkitl\sources(14): EXEBASE=0x91D10000 SMP863X\Src\Kernel\Kernkitlprof\sources(13): EXEBASE=0x91D10000 Changing this location requires you to change the appropriate files, and rebuilding the bootloader and kernel.ForSee Yoo- 21 -Onl yIRQHANDLER The first 2MB of DRAM0 is reserved for usage by Sigma Designs. This is a requirement and must be respected. RAM This is the normal RAM area the kernel sees. XOS_PRIVATE This is a special area reserved for use by XOS. The size and location can only be changed via xenv variables. It is advised to leave this default. The default location is the last 6MB of DRAM0. So, if DRAM0 had 128MB, the physical address start would be 0x17A00000. If DRAM0 had 64MB, the physical address start would be 0x13A00000. 8. Open the platform.reg file in &\WINCE500\PBWorkspace\(your CE project name)\RelDir\SMP863X_MIPSII_Release& directory, add follow registry settings to the end of file. ;GDI 2.0.0.10 verion [HKEY_LOCAL_MACHINE\System\GDI\Drivers] &Display&=&ddi_86xx.dll& ; ; See smp863x_formats.h for the proper hex values
&DigitalOutput&=dword:21 &DigitalColorSpace&=dword:3 &MainAnalogOutput&=dword:6f &MainAnalogColorSpace&=dword:4 &ComponentAnalogOutput&=dword:65 &ComponentMode&=dword:6 &ComponentOrder&=dword:0 &ComponentColorSpace&=dword:4 &VGAOutput&=dword:0 ; 0 = disable VGA output, 1 = enable VGA output. ; Also, when it's 1, need to set ComponentAnalogOutput to CVT_xxx or VESA_xxx, ; ComponentMode to RGB_SCART, ComponentColorSpace to RGB_0_255 &ScreenWidth&=dword:80 &ScreenHeight&=dword: ;720 &OutputPosX&=dword:100 ; output window position x &OutputPosY&=dword:100 ; output window position y &OutputPosWidth&=dword:e00 ; output window position width &OutputPosHeight&=dword:e00 ; output window position height &MemorySize&=dword: ; extra memory size for h/w acceleration, see note in the smp863x. regarding the PRIMARY_DISPLAY_SURFACE_DRAMBANK &EnableHwCursor&=dword:1 ; 0 = disable, 1 = enable &LiveDetectHdmiConnection&=dword:1 ; 0 = driver won't do live hdmi detection, 1 = check live hdmi connection &EnableHDCP&=dword:0 ; 0 = disable the HDCP, 1 = enable the HDCP &DefaultKeyColor&=dword: ; In RGB format: R = 3rd byte, G = 2nd byte, B = 1st byte &EnableEDIDDetection&=dword:0 ; 0 = disable, 1 = enable. Disable/enable the HDMI preferred mode. &HDMII2CModule&=dword:2 ; 0 = software, 1 = hardware, 2 = built-in hdmi &InvertClock&=dword:1 ; 0 = do not invert digital video clock, 1 = invert (default is inverted) &LVDS_Enable&=dword:0 &LVDS_GPIOFieldIDOutput&=dword:B ; board dependent &LVDS_GPIOPanelOn&=dword:E ; Default custom digital output video mode - 720p59 [HKEY_LOCAL_MACHINE\System\GDI\Drivers\CustomDigitalVideoMode] &PixelClock&=dword:46BD550 &HActive&=dword:500 &HFrontPorch&=dword:6E &HSyncWidth&=dword:28 &HBackPorch&=dword:DC &HSyncPolarity&=dword:1 ; TRUE: positive, FALSE: negative &VActive&=dword:2D0 &VFrontPorch&=dword:5 &VSyncWidth&=dword:5 &VBackPorch&=dword:14 &VSyncPolarity&=dword:1 ; TRUE: positive, FALSE: negative &Interlaced&=dword:0 - 22 -ForSee YooOnl y ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Sigma Designs built-in driver for low-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMP86xx] &Dll&=&smp863x.dll& &Prefix&=&SDH& &Index&=dword:1 &Order&=dword:1 &SMP863X_RESERVED_START_DRAM0&=dword: ; starting address of reserved memory in dram0 &SMP863X_RESERVED_DRAM0_SIZE& =dword:01B00000 ; dram0 needs at 1MB (more if primary surface is allocated in dram0) &SMP863X_RESERVED_START_DRAM1&=dword:0C000000 ; starting address of reserved memory in dram1 &SMP863X_RESERVED_DRAM1_SIZE& =dword: ; dram1 needs at 40MB (less if primary surface is allocated in dram0) &PRIMARY_DISPLAY_SURFACE_DRAMBANK&=dword:0 ; dram bank to allocate primary display surface (0 or 1) &DEFAULT_ASPECT_RATIO_X&=dword:10 ; default aspect ratio for the output, horizontal direction &DEFAULT_ASPECT_RATIO_Y&=dword:9 ; default aspect ratio for the output,;;;;;;;;; ds863x.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; @CESYSGEN IF QUARTZ_IMAGE ; Sigma Designs Renderer F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [HKEY_CLASSES_ROOT\Filter\{caa414f0-c7c3-11d4-a914-}] IF INITDSHOWFILTERNAMES @=&Sigma Designs Filter& ENDIF ;&DelaySettingCodecTypes&=dword:1 ; delay setting of the codec types - ONLY enable this if you are using the .asx playlist &FlushDisplayOnStop&=dword:0 &FlushDisplayOnBeginFlush&=dword:0 &FlushDisplayOnDiscontinuity&=dword:0 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}] IF INITNODSHOWFILTERCLASSNAMES ! @=&Sigma Designs Filter& ENDIF &Merit&=dword: [HKEY_CLASSES_ROOT\Clsid\{caa414f0-c7c3-11d4-a914-}\InprocServ er32] @=&ds863x.dll& [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu t Video] ;&Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: ;&AllowedMany&=dword: [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu t Audio] ;&Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: ;&AllowedMany&=dword: ;MEDIATYPE_Video\MEDIASUBTYPE_MPEG1Payload [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Video\Types\{0-AA00389B71}\{e436eb81-524f-11ce-9f53-0 020af0ba770}] - 23 -ForSee YooOnl y t Video\Types\{0-AA00389B71}\{e06d8026-db46-11cf-b4d1-0 0805f6cbbea}] ;MEDIATYPE_Video\MEDIASUBTYPE_SDMPEG4_Video [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu;MEDIATYPE_Video\MEDIASUBTYPE_MPEG2_VIDEO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Video\Types\{0-AA00389B71}\{8AB4D3D1-C812-11d5-BE17 -00A0C90AA8A1}]t Video\Types\{0-AA00389B71}\{0-aa00389b71}]t Video\Types\{0-AA00389B71}\{0-aa00389b71}];MEDIATYPE_Video\MEDIASUBTYPE_DivX_50_VIDEO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Video\Types\{0-AA00389B71}\{0-aa00389b71}];MEDIATYPE_Video\MEDIASUBTYPE_DivX_DIV3_VIDEO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Video\Types\{0-AA00389B71}\{00-aa00389b71}] ;MEDIATYPE_Video\MEDIASUBTYPE_DivX_H264_VIDEO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu;MEDIATYPE_Video\MEDIASUBTYPE_DivX_MP43_VIDEO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Video\Types\{0-AA00389B71}\{ce-4b79-a2a9-f 787e8266760}] ; Windows Media Video 9 ; FOURCC: 'WMV3' Subtype: 0-AA00389B71 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu;MEDIATYPE_Video\MEDIASUBTYPE_SMP863x_Capture_Video [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Video\Types\{0-AA00389B71}\{0-AA00389B71}] ; Windows Media Video 9 Advanced P FOURCC: 'WMVA' Subtype: 0-AA00389B71 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Video\Types\{0-AA00389B71}\{0-AA00389B71}] - 24 -Fort Video\Types\{0-AA00389B71}\{0-aa00389b71}]See Yoot Video\Types\{0-AA00389B71}\{0-aa00389b71}];MEDIATYPE_Video\MEDIASUBTYPE_DivX_XVID_VIDEO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\InpuOnl y;MEDIATYPE_Video\MEDIASUBTYPE_DivX_U_VIDEO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu t Video\Types\{0-AA00389B71}\{0-AA00389B71}]; Windows Media Video Advanced Profile with no Start Codes [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Audio\Types\{0-AA00389B71}\{e436eb81-524f-11ce-9f53-0 020af0ba770}];MEDIATYPE_Audio\MEDIASUBTYPE_MPEG1Payload [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Audio\Types\{0-AA00389B71}\{e06d802c-db46-11cf-b4d1-0 0805f6cbbea}]t Audio\Types\{0-AA00389B71}\{0-AA00389B71}] ;MEDIATYPE_Audio\MEDIASUBTYPE_MPEG2_AUDIO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu;MEDIATYPE_Audio\MEDIASUBTYPE_AudioAC3 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Audio\Types\{0-AA00389B71}\{0-AA00389B71}] ;MEDIATYPE_Audio\MEDIASUBTYPE_SDMPEG4_PCMAudio [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu;MEDIATYPE_Audio\MEDIASUBTYPE_MPEG1AudioPayload [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Audio\Types\{0-AA00389B71}\{8AB4D3D2-C812-11d5-BE17 -00A0C90AA8A1}] ;MEDIATYPE_Audio\MEDIASUBTYPE_PCM [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Audio\Types\{0-AA00389B71}\{0-AA00389B71}] ;MEDIATYPE_Audio\MEDIASUBTYPE_ADTS_AACAUDIO [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu;MEDIATYPE_Audio\MEDIASUBTYPE_DivX_MP3 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Audio\Types\{0-AA00389B71}\{341F3A28--ADFFADEADE3D1716}] ; Windows Media Audio 9 and previous
Format tag: 0x161 Subtype: 0-AA00389B71 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Audio\Types\{0-AA00389B71}\{0-AA00389B71}]Fort Audio\Types\{0-AA00389B71}\{0-AA00389B71}]See Yoo- 25 -t Audio\Types\{0-AA00389B71}\{e06d802b-db46-11cf-b4d1-0 0805f6cbbea}]Onl y;MEDIATYPE_Audio\MEDIASUBTYPE_DOLBY_AC3 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu t Audio\Types\{0-AA00389B71}\{0-AA00389B71}] ; Windows Media Audio 9 L Format tag: 0x163 Subtype: 0-AA00389B71 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu; Windows Media Audio 9 P Format tag: 0x162 Subtype: 0-AA00389B71 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Input Audio\Types\{0-AA00389B71}\{0-AA00389B71}]t Audio\Types\{0-AA00389B71}\{00-AA00389B71}] ;; WMA Pro [HKEY_CLASSES_ROOT\Filter\{04a-474c-db89850}] IF INITDSHOWFILTERNAMES @=&Sigma Designs WMAPro Decoder& ENDIF[HKEY_CLASSES_ROOT\CLSID\{04a-474c-db89850}\InprocSe rver32] @=&dswmapro.dll& ; Sigma Designs 8634 wave built- ; Supports only wave out [HKEY_LOCAL_MACHINE\Drivers\Builtin\Audio] &Prefix&=&WAV& &Dll&=&wave863x.dll& &Index&=dword:1 &Order&=dword:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; @CESYSGEN IF QUARTZ_IMAGE ; SMP863x Capture Source F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [HKEY_CLASSES_ROOT\Filter\{9afa-45c5-9d9d-a7d07c2fc670}] IF INITDSHOWFILTERNAMES @=&SMP86xx Capture Source Filter ENDIF [HKEY_CLASSES_ROOT\CLSID\{9afa-45c5-9d9d-a7d07c2fc670}] IF INITNODSHOWFILTERCLASSNAMES ! @=&SMP86xx Capture Source Filter& ENDIF &Merit&=dword: [HKEY_CLASSES_ROOT\CLSID\{9afa-45c5-9d9d-a7d07c2fc670}\InprocSer ver32] @=&capsrc863x.dll& [HKEY_CLASSES_ROOT\CLSID\{9afa-45c5-9d9d-a7d07c2fc670}\Pins\Video Output] &Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: - 26 -ForSee Yoo[HKEY_CLASSES_ROOT\CLSID\{04a-474c-db89850}] IF INITNODSHOWFILTERCLASSNAMES ! @=&Sigma Designs WMAPro Decoder& ENDIF &Merit&=dword:Onl y; Windows Media Audio 9 V Format tag: 0x00A Subtype: 00-AA00389B71 [HKEY_CLASSES_ROOT\CLSID\{caa414f0-c7c3-11d4-a914-}\Pins\Inpu ;&AllowedMany&=dword:0000000 [HKEY_CLASSES_ROOT\CLSID\{9afa-45c5-9d9d-a7d07c2fc670}\Pins\Audio Output] &Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: ;&AllowedMany&=dword:0000000 ;MEDIATYPE_Video\MEDIASUBTYPE_SMP863x_Capture_Video [HKEY_CLASSES_ROOT\CLSID\{9afa-45c5-9d9d-a7d07c2fc670}\Pins\Video Output\Types\{0-AA00389B71}\{ce-4b79-a2a9 -f787e8266760}];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; sigma designs transport stream spli; ;; enter these lines into platform.reg (or any other .reg file) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [HKEY_CLASSES_ROOT\Filter\{674A6F9F-E8D4-436f-CBC7F0DDD}] IF INITDSHOWFILTERNAMES @=&Sigma Designs TS Splitter& ENDIF [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}] IF INITNODSHOWFILTERCLASSNAMES ! @=&Sigma Designs TS Splitter& ENDIF &Merit&=dword: [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\InprocS erver32] @=&tsdemux.dll& [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\In put] &Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: ;&AllowedMany&=dword:0000000 [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\In put\Types\{e436eb83-524f-11ce-9f53-0}\{0-00 }] [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\In put\Types\{e436eb83-524f-11ce-9f53-0}\{e436eb84-524f-11ce-9f53-0020af 0ba770}] [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\In put\Types\{e436eb83-524f-11ce-9f53-0}\{e06d8022-db46-11cf-b4d1-00805 f6cbbea}] [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\In put\Types\{e436eb83-524f-11ce-9f53-0}\{e06d8023-db46-11cf-b4d1-00805 f6cbbea}] [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\Vid eo Output] &Direction&=dword: ;&IsRendered&=dword: - 27 -ForSee YooOnl y;MEDIATYPE_Audio\MEDIASUBTYPE_PCM [HKEY_CLASSES_ROOT\CLSID\{9afa-45c5-9d9d-a7d07c2fc670}\Pins\Audio Output\Types\{0-AA00389B71}\{0- -00AA00389B71}] &AllowedZero&=dword: ;&AllowedMany&=dword:0000000 [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\Vid eo Output\Types\{0-AA00389B71}\{e06d8026-db46-11cf-b4dcbbea}] [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\Au dio Output] &Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: ;&AllowedMany&=dword:0000000 [HKEY_CLASSES_ROOT\CLSID\{674A6F9F-E8D4-436f-CBC7F0DDD}\Pins\Au dio Output\Types\{0-AA00389B71}\{0- -00AA00389B71}] ;;;;;;;;;; hwdemux863x.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; @CESYSGEN IF QUARTZ_IMAGE ; Sigma Designs HW Demux F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [HKEY_CLASSES_ROOT\Filter\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}] IF INITDSHOWFILTERNAMES @=&Sigma Designs HW TS Demux& ENDIF [HKEY_CLASSES_ROOT\CLSID\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}] IF INITNODSHOWFILTERCLASSNAMES ! @=&Sigma Designs HW TS Demux& ENDIF &Merit&=dword: ; Merit is set to DO_NOT_USE - your application must manually insert this filter [HKEY_CLASSES_ROOT\CLSID\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\InprocSer ver32] @=&hwdemux863x.dll& ] [HKEY_CLASSES_ROOT\CLSID\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\Pins\Input &Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: ;&AllowedMany&=dword:0000000[HKEY_CLASSES_ROOT\CLSID\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\Pins\Outp utVPayload] &Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: ;&AllowedMany&=dword:0000000 [HKEY_CLASSES_ROOT\CLSID\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\Pins\Outp utAPayload] &Direction&=dword: ;&IsRendered&=dword: &AllowedZero&=dword: ;&AllowedMany&=dword:0000000 [HKEY_CLASSES_ROOT\CLSID\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\Pins\Input \Types\{e436eb83-524f-11ce-9f53-0}\{0-}] ;MEDIATYPE_Audio\MEDIASUBTYPE_DOLBY_AC3ForSee Yoo- 28 -Onl y [HKEY_CLASSES_ROOT\CLSID\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\Pins\Outp utAPayload\Types\{0-AA00389B71}\{e06d802c-db46-11cf-b 4d1-00805f6cbbea}] ;MEDIATYPE_Video\MEDIASUBTYPE_MPEG2_VIDEO [HKEY_CLASSES_ROOT\CLSID\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\Pins\Outp utVPayload\Types\{0-AA00389B71}\{e06d8026-db46-11cf-b 4d1-00805f6cbbea}] Find the pflash device registry line. #include &$(_TARGETPLATROOT)\src\drivers\pflash\pflash\pflash.reg& #include &$(_TARGETPLATROOT)\src\drivers\pflash\pflash2\pflash2.reg& Disable it as follow sample. ; #include &$(_TARGETPLATROOT)\src\drivers\pflash\pflash\pflash.reg& ; #include &$(_TARGETPLATROOT)\src\drivers\pflash\pflash2\pflash2.reg& Close and save the platform.reg file. file. 9. Run “Build OS----Make Run-Time Image” menu command to make a new NK.BINFor- 29 -See YooOnl y C) Download the NK.BIN to SMP8634 board Link all SMP8634 Ethernet ports and platform builder PC to a network with Ethernet cable, link the SMP8634 Serial debug card to PC serial COM1 port with a serial cable, set the COM1 port parameter as follow sample(pic28).&pic27& boot up the SMP8634 board. 1. Set the CE bootloader When the Serial Output window(terminal application) of PC will shows the CE loader's bootup information , press any key and get the Main Menu list.&pic28& a. Use “[5] Network Settings” to set the bootloader IP address&pic29& The IP address must be same network IP mask with your PC IP. Example, PC IP setting, IP: 192.168.1.51 MASK: 255.255.255.0 Bootload IP setting, IP: 192.168.1.54 MASK: 255.255.255.0 - 30 -ForSee YooOnl y b. Use &[3] Select Boot Device” to set “RTL RTL8139 …” to be boot device.&pic30& c. Use “[4] Select Debug Device” to set “RTL RTL8139 …” to be debug device.&pic31& d. Use “[6] Save Settings” to save all settings, Use “[0] Exit and Continue” to continue boot up SMP8634 board 2. Set the platform builder Use &Target---Connectivity Options...& menu command open the &Target Device Connectivity Options& dialog,For&pic32& - 31 -See YooOnl y Select &Download& and &Transport& combobox to be&Ethernet& Select &Debugger& combobox to &KdStub& Click first &Setting& button to open &Ethernet Download Settings& dialog,&pic33& Select the active device(You can see a name as &EM8630*****& and the IP address that you set for SMP8634) to be boot device. Apply and close all setting dialog, 3. Use &Target----Attach Device& menu command to download you NK.bin to the SMP8634 board. D) Make the SHIP mode SMP8634 CE Nk.bin and boot it up without platform builder If you want to run the CE system specialty, please use the ship mode to build the NK.bin. 1. Make s SHIP mode building a. Use “Build OS----Configurations…” Menu command to open the “Configurations” dialog&pic34& b. Click “Add…” button to open “Add platform Configuration” dialog, select “Copy settings from:” combobox to “SMP863X:MIPSII_Release”, type “Ship” in “Configuration:” edit box, click “OK” button to close “Add platform Configuration” dialog, click “Close” button to close “Configurations” dialog.&pic35& c. Use “Build OS---- Set Active Configuration…” menu command to open “Set Active Configuration” dialog, select “Ship” in “Configurations:” list, click “OK” button to close dialog and set current configuration to “Ship” modeForSee Yoo&pic36& - 32 -Onl y d. Use “Platform----Settings….” Menu command to open the “Platform Settings” dialog, turn to “Build Options” page,set as pic38 sample shows.only.&pic38& CE boot loader can loader NK.bin from the first FAT32 partition of HardDisk3. Boot up Nk.bin from Pflash a. If you have copy the nk.bin file to pflash2 storage device In Main Menu of CE boot loader, use &[3] Select Boot Device” to set “[5]PFLASH 1” to be boot device. b. If you have write the nk.bin file to the address of pflash, for example, I write the nk.bin to boot flash(PFLASH 0) from 0x400000 address - 33 -ForSee Yoo&pic37& e. Copy all multimedia dll files to &\WINCE500\PBWorkspace\(your CE project name)\RelDir\Ship& CE project directory g. Modify config.bib, platform.bib, platform.reg file and make the nk.bin file h. Copy the nk.bin to the first FAT32 partition of HDD device or pflash2 storage device 2. Boot up Nk.bin from primary master HDD In Main Menu of CE boot loader in Serial Output window(terminal application) of PC, Use &[3] Select Boot Device” to set “[5]IDE BM 0” to be boot device.Onl y In Main Menu of CE boot loader, Select “[7] SMP863X Setting” get the SMP8634 Settings menu&pic39& Select “[2]Flash memory”, get the Flash memory menu&pic40& Select “[5]Select NK.Bin Flash”, set flash index to 0x00x400000&pic41& Select “[4]Edit NK.Bin Flash Start”, set NK.bin start flash address toFor- 34 -See YooOnl y &pic42& In Main Menu of CE boot loader, use &[3] Select Boot Device” to set “[2]Flash Memory” to be boot device. c. Use “[6] Save Settings” to save all settings, Use “[0] Exit and Continue” to continue boot up SMP8634 board 4. Write the NK.bin file to Boot flash(PFLASH 0) Follow sample code shows how to write a file to PFLASH, it’s so dangerous for your boot flash, so please use it carefully. The sample function is based on Setxenv demo, all cfi command is defined in Setxenv demo. #define BOOTADDRESS #define LOGOADDRESS #define CENKADDRESS static static static staticint g_bWriteOK=1; RMuint8 p_data[128*1024]; RMuint8 cfi_data[0x100]; int Flash8bit = 0;///////////////////////////////////////////////////////////////////////////////////////////////////// /// RMint32 cfi_query_first_sector_length (void) { RMuint32 n1, l1; n1 = cfi_data[0x5a]+1; l1 = ((RMuint16)cfi_data[0x5c] && 0) | ((RMuint16)cfi_data[0x5e] && 8) | ((RMuint16)cfi_data[0x60] && 16); l1 &= ~1; } return (RMint32)l1;RMint32 cfi_query_parameters (RMuint32 FlashBaseAddress) { RETAILMSG (1, (TEXT(&cfi_query_parameters Begin !\n&))); memset (cfi_data, 0, sizeof (cfi_data)); // wait a small bit Sleep (100); // query command *((volatile RMuint8 *)(0xaa + FlashBaseAddress)) = 0x98; cfi_data[0x20] = *((volatile RMuint8 *)(0x20 + FlashBaseAddress)); cfi_data[0x22] = *((volatile RMuint8 *)(0x22 + FlashBaseAddress)); cfi_data[0x24] = *((volatile RMuint8 *)(0x24 + FlashBaseAddress)); if (cfi_data[0x20] == 'Q' && cfi_data[0x22] == 'R' && cfi_data[0x24] == 'Y') - 35 -ForSee Yoo0x0 0xx400000Onl y { } else {RETAILMSG (1, (TEXT(&It is a 8 bit flash\n&))); Flash8bit = 1;cfi_data[0x4e] = *((volatile RMuint8 *)(0x4e + FlashBaseAddress)); RETAILMSG(1, (TEXT(&device size: %d\n&),1 && cfi_data[0x4e])); cfi_data[0x58] = *((volatile RMuint8 *)(0x58 + FlashBaseAddress)); RETAILMSG(1, (TEXT(&number of regions: %d\n&),cfi_data[0x58])); cfi_data[0x5a] = *((volatile RMuint8 *)(0x5a + FlashBaseAddress)); cfi_data[0x5c] = *((volatile RMuint8 *)(0x5c + FlashBaseAddress)); cfi_data[0x5e] = *((volatile RMuint8 *)(0x5e + FlashBaseAddress)); cfi_data[0x60] = *((volatile RMuint8 *)(0x60 + FlashBaseAddress)); if((RMuint16)cfi_data[0x5c] == 0x1) { RETAILMSG(1, (TEXT(&region 1: %d * 0x%04x\n&),(cfi_data[0x5a]+1) * ((RMuint16)cfi_data[0x5c] + 1), ((RMuint16)cfi_data[0x5e] && 8) | ((RMuint16)cfi_data[0x60] && 16))); } else { RETAILMSG(1, (TEXT(&region 1: %d * 0x%04x\n&),cfi_data[0x5a]+1,((RMuint16)cfi_data[0x5c] && 0) | ((RMuint16)cfi_data[0x5e] && 8) | ((RMuint16)cfi_data[0x60] && 16))); } cfi_data[0x62] = *((volatile RMuint8 *)(0x62 + FlashBaseAddress)); cfi_data[0x64] = *((volatile RMuint8 *)(0x64 + FlashBaseAddress)); cfi_data[0x66] = *((volatile RMuint8 *)(0x66 + FlashBaseAddress)); cfi_data[0x68] = *((volatile RMuint8 *)(0x68 + FlashBaseAddress)); RETAILMSG(1, (TEXT(&region 2: %d * 0x%04x\n&),cfi_data[0x62]+1,((RMuint16)cfi_data[0x64] && 0) | ((RMuint16)cfi_data[0x66] && 8) | ((RMuint16)cfi_data[0x68] && 16))); cfi_data[0x6a] = *((volatile RMuint8 *)(0x6a + FlashBaseAddress)); cfi_data[0x6c] = *((volatile RMuint8 *)(0x6c + FlashBaseAddress)); cfi_data[0x6e] = *((volatile RMuint8 *)(0x6e + FlashBaseAddress)); cfi_data[0x70] = *((volatile RMuint8 *)(0x70 + FlashBaseAddress)); RETAILMSG(1, (TEXT(&region 3: %d * 0x%04x\n&),cfi_data[0x6a]+1,((RMuint16)cfi_data[0x6c] && 16) | ((RMuint16)cfi_data[0x6e] && 8) | ((RMuint16)cfi_data[0x70] && 0))); cfi_data[0x72] = *((volatile RMuint8 *)(0x72 + FlashBaseAddress)); cfi_data[0x74] = *((volatile RMuint8 *)(0x74 + FlashBaseAddress)); cfi_data[0x76] = *((volatile RMuint8 *)(0x76 + FlashBaseAddress)); cfi_data[0x78] = *((volatile RMuint8 *)(0x78 + FlashBaseAddress)); RETAILMSG(1, (TEXT(&region 4: %d * 0x%04x\n&), cfi_data[0x72]+1,((RMuint16)cfi_data[0x74] && 0) | ((RMuint16)cfi_data[0x76] && 8) | ((RMuint16)cfi_data[0x78] && 16))); // reset command - 36 -ForSee YooOnl y} if ((cfi_data[0x20] != 'Q') || (cfi_data[0x22] != 'R') || (cfi_data[0x24] != 'Y')) { // no flash found? return 0; }// try 16 bit access // query command *((volatile RMuint16 *)(0xaa + FlashBaseAddress)) = 0x98; cfi_data[0x20] = *((volatile RMuint8 *)(0x20 + FlashBaseAddress)); cfi_data[0x22] = *((volatile RMuint8 *)(0x22 + FlashBaseAddress)); cfi_data[0x24] = *((volatile RMuint8 *)(0x24 + FlashBaseAddress)); Flash8bit = 0; RETAILMSG (1, (TEXT(&It is a 16 bit flash\n&))); if (Flash8bit) { *((volatile RMuint8 *)(FlashBaseAddress)) = 0xf0; } else { *((volatile RMuint16 *)(FlashBaseAddress)) = 0xf0; } Sleep (1000); RETAILMSG (1, (TEXT(&cfi_query_parameters End !\n&))); return ((RMint32)1 && cfi_data[0x4e]);}g_bWriteOK=0;n3 = cfi_data[0x6a]+1; l3 = ((RMuint16)cfi_data[0x6c] && 16) | ((RMuint16)cfi_data[0x6e] && 8) | ((RMuint16)cfi_data[0x70] && 0); l3 &= ~1; start3 = start2 + n2 * l2; n4 = cfi_data[0x72]+1; l4 = ((RMuint16)cfi_data[0x74] && 0) | ((RMuint16)cfi_data[0x76] && 8) | ((RMuint16)cfi_data[0x78] && 16); l4 &= ~1; start4 = start3 + n3 * l3; if ((addr &= start1) && (addr & start2) && l1) { s = start1; if(addr & s) - 37 -Forn2 = cfi_data[0x62]+1; l2 = ((RMuint16)cfi_data[0x64] && 0) | ((RMuint16)cfi_data[0x66] && 8) | ((RMuint16)cfi_data[0x68] && 16); l2 &= ~1; start2 = start1 + n1 * l1;See Yooif((RMuint16)cfi_data[0x5c] == 0x1) { n1 = (cfi_data[0x5a]+1) * ((RMuint16)cfi_data[0x5c] + 1); } else { n1 = cfi_data[0x5a]+1; } l1 = ((RMuint16)cfi_data[0x5c] && 0) | ((RMuint16)cfi_data[0x5e] && 8) | ((RMuint16)cfi_data[0x60] && 16); l1 &= ~1; start1 = 0;Onl yvoid cfi_erase (RMuint32 FlashBaseAddress, RMuint32 addr, RMint32 len) { RETAILMSG(1, (TEXT(&cfi_erase Begin !\n&))); RMuint8 tmp0, tmp1; RMuint32 i, RMuint32 n1, n2, n3, n4; RMuint32 l1, l2, l3, l4; RMuint32 start1, start2, start3, start4; {}RETAILMSG(1, (TEXT(&region1 done.\n&))); if (len &= 0)if ((addr &= start2) && (addr & start3) && l2) { s = start2; // region 2 for (i=0; i&n2; i++) { if (Flash8bit) { *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0x80; *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; *((volatile RMuint8 *)(s + FlashBaseAddress)) = 0x30; } else { *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0x80; *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 - 38 -ForSee Yoos= } // region 1 for (i=0; i&n1; i++) { if (Flash8bit) { *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0x80; *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; *((volatile RMuint8 *)(s + FlashBaseAddress)) = 0x30; } else { *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0x80; *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; *((volatile RMuint16 *)(s + FlashBaseAddress)) = 0x30; } // wait for the erase to complete while (1) { tmp0 = *((volatile RMuint8 *)(s + FlashBaseAddress)); tmp1 = *((volatile RMuint8 *)(s + FlashBaseAddress)); if ((tmp0 & 0x40) == (tmp1 & 0x40)) { if (tmp0 & 0x80) } } s += l1; addr = len -= l1; if (len &= 0) }Onl y }}RETAILMSG(1, (TEXT(&region2 done.\n&))); if (len &= 0)if ((addr &= start3) && (addr & start4) && l3) { s = start3; // region 3 for (i=0; i&n3; i++) { if (Flash8bit) { *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0x80; *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; *((volatile RMuint8 *)(s + FlashBaseAddress)) = 0x30; } else { *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0x80; *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; *((volatile RMuint16 *)(s + FlashBaseAddress)) = 0x30; } // wait for the erase to complete while (1) { tmp0 = *((volatile RMuint8 *)(s + FlashBaseAddress)); tmp1 = *((volatile RMuint8 *)(s + FlashBaseAddress)); if ((tmp0 & 0x40) == (tmp1 & 0x40)) { if (tmp0 & 0x80) } } s += l3; addr = len -= l3; if (len &= 0) } }ForSee Yoo- 39 -Onl y} // wait for the erase to complete while (1) { tmp0 = *((volatile RMuint8 *)(s + FlashBaseAddress)); tmp1 = *((volatile RMuint8 *)(s + FlashBaseAddress)); if ((tmp0 & 0x40) == (tmp1 & 0x40)) { if (tmp0 & 0x80) } } s += l2; addr = len -= l2; if (len &= 0)*((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; *((volatile RMuint16 *)(s + FlashBaseAddress)) = 0x30; RETAILMSG(1, (TEXT(&region3 done.\n&))); if (len &= 0) if ((addr &= start4) && (l4)) { s = start4; // region 4 for (i=0; i&n4; i++) { if (Flash8bit) { *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0x80; *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; *((volatile RMuint8 *)(s + FlashBaseAddress)) = 0x30; } else { *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0x80; *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; *((volatile RMuint16 *)(s + FlashBaseAddress)) = 0x30; } // wait for the erase to complete while (1) { tmp0 = *((volatile RMuint8 *)(s + FlashBaseAddress)); tmp1 = *((volatile RMuint8 *)(s + FlashBaseAddress)); if ((tmp0 & 0x40) == (tmp1 & 0x40)) { if (tmp0 & 0x80) } } s += l4; len -= l4; if (len &= 0) } } RETAILMSG(1, (TEXT(&region4 done.\n&))); // reset command if (Flash8bit) { *((volatile RMuint8 *)(FlashBaseAddress)) = 0xf0; } else { *((volatile RMuint16 *)(FlashBaseAddress)) = 0xf0; } RETAILMSG(1, (TEXT(&cfi_erase End !\n&)));}void cfi_write (RMuint32 FlashBaseAddress, RMuint32 addr, RMuint32 length, RMuint8 *flashbuf) { RETAILMSG(1, (TEXT(&cfi_write Begin !\n&))); RMuint32 RMuint8 *p = if (Flash8bit) { - 40 -ForSee YooOnl y // unlock bypass *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 Sleep (100); *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; Sleep (100); *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0x20; Sleep (100); // unlock bypass *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0 Sleep (100); *((volatile RMuint8 *)(0x555 + FlashBaseAddress)) = 0x55; Sleep (100); *((volatile RMuint8 *)(0xaaa + FlashBaseAddress)) = 0x20; Sleep (100);} else {// unlock bypass *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 Sleep (100); *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; Sleep (100); *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0x20; Sleep (100); // unlock bypass *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0 Sleep (100); *((volatile RMuint16 *)(0x554 + FlashBaseAddress)) = 0x55; Sleep (100); *((volatile RMuint16 *)(0xaaa + FlashBaseAddress)) = 0x20; Sleep (100);}for (i= i&(addr + length); i++) { if ((i % 0x10000) == 0) { RETAILMSG (1, (TEXT(&writing address 0x%08lx\r\n&), i)); fflush (stdout); } // unlock bypass program if (Flash8bit) { *((volatile RMuint8 *)(FlashBaseAddress)) = 0xa0; *((volatile RMuint8 *)(i + FlashBaseAddress)) = *p; while (*((volatile RMuint8 *)(i + FlashBaseAddress)) != *p); p++; } else { RMuint16 data = ((RMuint16)p[0]) | (((RMuint16)p[1]) && 8); *((volatile RMuint16 *)(FlashBaseAddress)) = 0xa0; *((volatile RMuint16 *)(i + FlashBaseAddress)) = while (*((volatile RMuint16 *)(i + FlashBaseAddress)) != data); p++; p++; i++; } } // reset command if (Flash8bit) { *((volatile RMuint8 *)(FlashBaseAddress)) = 0xf0; } else - 41 -ForSee YooOnl y { }*((volatile RMuint16 *)(FlashBaseAddress)) = 0xf0;}Sleep (1000); g_bWriteOK=1; RETAILMSG(1, (TEXT(&cfi_write End !\n&)));/////////////////////////////////////////////////////////////////////// #define HOST_INTERFACE_BASE_ADDRESS ((RMuint32)OALPAtoUA(0x20000)) #define PBI_BASE_ADDRESS (HOST_INTERFACE_BASE_ADDRESS + 0x800) #define PBI_TIMING0 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x00)) #define PBI_TIMING1 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x04)) #define PBI_TIMING2 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x08)) #define PBI_TIMING3 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x0C)) #define PBI_TIMING4 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x10)) #define PBI_TIMING5 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x14)) #define PBI_DEFAULT_TIMING ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x18)) #define PBI_USE_TIMING0 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x1C)) #define PBI_USE_TIMING1 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x20)) #define PBI_USE_TIMING2 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x24)) #define PBI_USE_TIMING3 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x28)) #define PBI_USE_TIMING4 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x2C)) #define PBI_USE_TIMING5 ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x30)) #define PBI_CS_CONFIG ((volatile RMuint32 *)(PBI_BASE_ADDRESS + 0x34))RMuint32 pbi_default_timing = *PBI_DEFAULT_TIMING; RMuint32 pbi_cs_config = *PBI_CS_CONFIG; // configure CS2, CS3 to be 16bit, packed, non-ide, Address/Data lines not muxed, use IOrdy pbi_cs_config &= ~0xCCCCC; pbi_cs_config |= 0x000C0; *PBI_CS_CONFIG = pbi_cs_ // what is the proper value for flash memory? RMuint32 Ta, Tb, Tc, Td, timing, sysclk = 3003; // XXX hard coded to 300MHz Ta = sysclk * 0 / 10000 + 1; Tb = sysclk * 0 / 10000 + 1; Tc = sysclk * 50 / 10000 + 1; Td = sysclk * 70 / 10000 + 1; // on the safe side? Ta = sysclk * 200 / 10000 + 1; Tb = sysclk * 200 / 10000 + 1; Tc = sysclk * 200 / 10000 + 1; Td = sysclk * 200 / 10000 + 1; timing = (Ta && 0) | (Tb && 8) | (Tc && 16) | (Td && 24); *PBI_DEFAULT_TIMING = - 42 -ForSee Yoovoid setup_pbi (void) { RMuint32 pbi_timing0 = *PBI_TIMING0; RMuint32 pbi_timing1 = *PBI_TIMING1; RMuint32 pbi_timing2 = *PBI_TIMING2; RMuint32 pbi_timing3 = *PBI_TIMING3; RMuint32 pbi_timing4 = *PBI_TIMING4; RMuint32 pbi_timing5 = *PBI_TIMING5; RMuint32 pbi_use_timing0 = *PBI_USE_TIMING0; RMuint32 pbi_use_timing1 = *PBI_USE_TIMING1; RMuint32 pbi_use_timing2 = *PBI_USE_TIMING2; RMuint32 pbi_use_timing3 = *PBI_USE_TIMING3; RMuint32 pbi_use_timing4 = *PBI_USE_TIMING4; RMuint32 pbi_use_timing5 = *PBI_USE_TIMING5;Onl y } void g_WritePFlashInfo2(DWORD nAddress,LPTSTR sFileName,HWND hWnd) { RMuint32 FlashBaseA RMuint32 FlashA RMuint32 RMuint32 dFilesize=0; char chTemp[4],chFileName[256]; DWORD nT BOOL b=FALSE; for(nTemp=0;nTemp & (DWORD)lstrlen(sFileName);nTemp++) { sprintf(chTemp,&%c&,sFileName[nTemp]); if(nTemp == 0) { strcpy(chFileName,chTemp); } else { strcat(chFileName,chTemp); } } setup_pbi (); //allocate 64MB of virtual space to map the flash into volatile RMuint8 *pVirtualAddress = (volatile RMuint8 *)VirtualAlloc (0, , MEM_RESERVE, PAGE_NOACCESS); if (pVirtualAddress != NULL) { // CS2 @ 0x // use the MMU to map 0x to this memory // VirtualCopy (in WinCE 5.0?) has a limit of 32MB b = VirtualCopy ((PVOID)pVirtualAddress, (PVOID)(0x && 8), , PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE); ASSERT (b == TRUE); if (b == FALSE) { VirtualFree ((PVOID)pVirtualAddress, 0, MEM_RELEASE); } // copy the next 32MB b = VirtualCopy ((PVOID)(pVirtualAddress + ), (PVOID)(0x4A000000 && 8), , PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE); ASSERT (b == TRUE); if (b == FALSE) { VirtualFree ((PVOID)pVirtualAddress, 0, MEM_RELEASE); } } else { ASSERT (0); RETAILMSG(1, (TEXT(&Can’t allocate 64M virtual space!\n&))); } FlashBaseAddress = (RMuint32)pVirtualA RETAILMSG(1, (TEXT(&Flash base address is %08lx:\n&),FlashBaseAddress)); RETAILMSG(1, (TEXT(&cfi_query_parameters @ %08lx:\n&),0x)); flashsize = cfi_query_parameters (FlashBaseAddress); RETAILMSG(1, (TEXT(&Flash size is %08lx:\n&),flashsize));ForSee Yoo- 43 -Onl y switch(nAddress) { case 0: FlashAddress=(RMuint32)pVirtualAddress + CENKADDRESS; case 1: FlashAddress=(RMuint32)pVirtualAddress + BOOTADDRESS; case 2: default: RETAILMSG(1, (TEXT(&Can't write this address In this version!&))); VirtualFree ((PVOID)pVirtualAddress, 0, MEM_RELEASE); } RETAILMSG(1, (TEXT(&Write Flash Address from @ %08lx:\n&),FlashAddress)); if (flashsize) { FILE *f = fopen(chFileName, &rb&); //Open the bin file if(f == NULL) { RETAILMSG(1, (TEXT(&Can't Open the file!\n&))); VirtualFree ((PVOID)pVirtualAddress, 0, MEM_RELEASE); } fseek( f, 0, SEEK_END); //Seek to end and get the file size dFilesize=ftell(f); RETAILMSG(1, (TEXT(&File size is %d bytes!\n&),dFilesize)); fseek( f, 0, SEEK_SET); //Seek to the begin RMint32 sectorlength = cfi_query_first_sector_length (); RETAILMSG(1, (TEXT(&Fist regions' sector length is %08lx:\n&),sectorlength)); //128K for each sector dProgess_old=0; dProgess=0; numread=0; readCounts=0;dProgess=(readCounts / (dFilesize / 100)); RETAILMSG(1, (TEXT(&Read fiile %d %%\n&),dProgess)); memcpy (p_data + numread, (RMuint8 *)FlashAddress + numread, sectorlength - numread); RETAILMSG(1, (TEXT(&memcpy ok!\n&))); switch(nAddress) { case 0://NK.bin 0x400000 RETAILMSG(1, (TEXT(&Write NK.bin!\n&))); //FlashAddress - (RMuint32)pVirtualAddress cfi_erase (FlashBaseAddress, (FlashAddress (RMuint32)pVirtualAddress), sectorlength); RETAILMSG(1, (TEXT(&Erase OK!\n&))); - 44 -Forwhile( !feof( f)) { if(g_bWriteOK == 1) { RETAILMSG(1, (TEXT(&Begin read file...!\n&))); numread = fread( p_data, 1, sectorlength, f ); if(numread) { RETAILMSG(1, (TEXT(&Read one sector file... OK!\n&))); //Check the update progress readCounts=readCounts +See YooOnl y FlashAddress=FlashAddress + RETAILMSG(1, (TEXT(&Next Flash Address: @ %08lx\n&),FlashAddress)); sectorlength = cfi_query_first_sector_length (); RETAILMSG(1, (TEXT(&Fist regions' sector length is %08lx:\n&),sectorlength)); //128K for each sector if(dProgess_old != dProgess) { dProgess_old=dP } } }}}} VirtualFree ((PVOID)pVirtualAddress, 0, MEM_RELEASE);RETAILMSG(1, (TEXT(&Read all file End!\n&))); fclose (f);5.Run ship mode NK.bin on a Vantage SMP8634 board(This information is about Vantage SMP8634 board only, if you use Envision SMP8634 board, you can ignore it.) a. If you use a Vantage SMP8634 board to be developed platform, please make sure you have a MINI PCI RTL8100 Ethernet card to be debug and boot device. b. SMP8634 ETH device can’t work with VMINI mode, so it can’t be a boot device or a debug device. c. With the default setting for Vantage board, the Debug device is NULL, if you set SMP8634 ETH to be the Debug Device, wince system will not load it as a Ethernet device, so you must set it back to NULL. d. In default CE boot loader Menu, you can’t set the Debug device to NULL, you must do as follow steps, 1) Add a RTL8100 MINI PCI Ethernet card to Vantage board, set it to be Debug Device in CE boot loader Main Menu, save the setting 2) Remove the MINI PCI Ethernet card from vantage board, reboot the board, you will found the Debug device is set to NULL e. The MINI PCI RTL8100 Ethernet is very important for Vantage SMP8634 development platform.ForSee Yoo- 45 -Onl ycfi_write (FlashBaseAddress, (FlashAddress (RMuint32)pVirtualAddress), sectorlength, p_data); case 1://Bootloader 0x0 RETAILMSG(1, (TEXT(&Write Bootloader!\n&))); cfi_erase (FlashBaseAddress, (FlashAddress (RMuint32)pVirtualAddress), sectorlength); RETAILMSG(1, (TEXT(&Erase OK!\n&))); cfi_erase (FlashBaseAddress, (FlashAddress (RMuint32)pVirtualAddress), sectorlength); case 2: case 3: case 4: } 4) How to make application for SMP8634 wince system A) Made the SDK of current CE project 1. Use “Platform----SDK----New SDK…” Menu command to open the “SDK Wizard” dialog, use the wizard make a SDK for current CE project step by step&pic43&For&pic45& - 46 -See Yoo&pic44&Onl y 2. Use “Platform----SDK----Build SDK…” Menu command to open the “SDK Wizard” dialog, use the wizard to build the SDK&pic46& B) Install the SDK to PC You can get the SDK in &\WINCE500\PBWorkspace\(your CE project name)\SDK& directory, install it to your PC system.&pic47& C) Use EVC++4.0 with SP4 to make application FYI Microsoft MSDNForSee Yoo- 47 -Onl y 5) How to test the SMP8634 wince feature A) SMP8634 ETH 1. Set the IP address for SMP8634 ETH device Open the platform.reg file of CE project, add follow settings before “ENDIF BSP_SMP863X_MAC86XX” line [HKEY_LOCAL_MACHINE\Comm\MAC86XX1\Parms\TcpIp] &EnableDHCP&=dword:0 ;For 060920_KB924785 &AutoTimeout&=dword:3E8 &DefaultGateway&=&192.168.1.93&

我要回帖

更多关于 画质最好的播放器 的文章

 

随机推荐