DevKit8500 FAQ

所谓前人栽树，后人乘凉，这都是过去的智慧与汗水所搭建，可以细作参考！ 同时，也希望我们可以携手完善这个FAQ，让我们畅通无阻地建立合作的平台吧！

= 入门 = 此处介绍当用户购买了Devkit8500评估套件，刚开始用的时候可能会出现的问题.

接入键盘输入后，为什么LCD无响应？


情况： 刚收到开发板，心情异常激动，立马拿出配套电源连接开发板上电，发现LCD出现一企鹅跟一串文字，后面写着“xxxx login: ”，接上USB键盘，竟然没有反应！ 解答： 首先这个是一个正常的现象，对于预装的系统，我们采用的是一个简易版的文件系统，此文件系统不包括将USB、串口等设备的字符传输到LCD的功能. 用户可以接上调试串口，打开电脑端的超级终端实现串口通信交互.

购买了7寸显示屏，为什么上电花屏/没有显示？
情况： 刚收到开发板，二话不说连接好LCD、电源，上电系统，开始Cortex-A8的世界，竟然发现LCD花屏/没有显示！ 解答： 首先这是一个正常的现象，因我们发货所配套的软体映像是4.3寸显示的，用户使用7寸显示，需要参考一下快速操作手册更新映像，方可使用. 其中有造成不方便的地方，请您见谅！

进入WinCE后，为什么不能使用触摸屏？
情况： 进入WinCE后，LCD屏显示下面的画面，并使用手指去点击中心十字的位置，发现没有响应，这是怎么回事？ 解答： 1 我们所提供的是电阻式的触摸屏，请使用手指甲（或者触摸笔）去点击 2 校准时，手指甲与触摸屏的接触时间需要大概1秒左右再松开，接触时间太短程序视为失误操作

NAND flash被擦除，如何启动系统？
假若NAND flash系统被擦除了，用户可以使用SD卡启动系统，因为DM37x芯片是支持在TF卡上启动x-loader，可以按照用户手册的TF卡系统映像更新一节.

DevKit8500如何调试DSP和ARM？
1.与仿真器相连接: 我们有用于TI 公司C2000、C5000、C6000芯片及OMAP、DaVinci、ARM7、ARM9 的仿真器，具体型号为TDS560，可以参考： http://www.timll.com/chinese/product/TDS560.asp 2.在软件系统上调试： 用户可以参考原光盘上所提供的DEMO-DVSDK，DVSDK上提供了完整的视频格式编码，解码的驱动，用户只需要调试DSP上的算法即可以使用，并且有完整的用户手册，具体可以参考： http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/4_00_00_22/index_FDS.html

DevKit8500中的RTC电池型号是多少？
DevKit8500出货时不带RTC电池，需用户自行配备，电池型号用 CR1220即可

= 进阶 = 此处介绍Linux，WinCE，Android，DEMO（DVSDK）操作系统在使用/研发的过程中常见问题.

如何使用HDMI(DVI-D)显示
Please set the u-boot prompts as below: setenv defaultdisplay dvi setenv dvimode 1280x1024MR-16@75

开发驱动时如何打开低层调试信息?
基于linux的原因，当linux的内核启动之后它会在内部操作完所有设备的初始化，对于用户使用最小系统来开发扩展板，需要打开实时的调试信息，查出哪里出现bug，具体的打开方式如下: 在内核根目录下， 1. make omap3_devkit8500_defconfig 2. make menucofig 在内核定制目录下选上“Kernel low-level debugging functions” Symbol: DEBUG_LL [=y] Prompt: Kernel low-level debugging functions Defined at arch/arm/Kconfig.debug:54 Depends on: DEBUG_KERNEL Location: -> Kernel hacking 3. make uImage 编译后生成的uImage文件直接使用即可.

如何调试上层部分音频程式
我们使用的是ALSA音频库，对于它的相关资料，请您到它的官方主页进行下载， 不过在下载前，您需要确认目标板所使用的ALSA软体版本，浏览方法： 进入文件系统，输入cat /proc/asound/version 确认版本后，请到 http://www.alsa-project.org/main/index.php/Main_Page 下载 alsa-utils-xxx，里面有aplay，arecord等源代码提供参考.

如何进行NFS调试
在U-BOOT命令行下设置如下参数：

OMAP3 devkit8500 # setenv bootargs 'console=ttyS2,115200n81 root=/dev/nfs nfsroot=192.192.192.115:/nfsroot/rootfs_devkit8500/rootfs ip=192.192.192.205:192.192.192.115:192.192.192.101:255.255.255.0::eth0:off'

OMAP3 devkit8500 # nand read ${loadaddr} 280000 400000; bootm ${loadaddr}

分析： 192.192.192.205 是开发板IP 192.192.192.115 是PC的IP 192.192.192.115:/home/lijr/work/nfsroot/rootfs 是被挂载的目录 192.192.192.101 是网关IP 255.255.255.0 是子网掩码

在u-boot下输入“run updatesys”无效
在u-boot下输入“run updatesys”无效 Texas Instruments X-Loader 1.47 (Mar 25 2011 - 10:15:15) Devkit8500 xM Rev A  Booting from nand. . .  Starting OS Bootloader...   U-Boot 2010.06-rc1-svn ( 6鏈?08 2011 - 09:26:34) OMAP34xx/35xx-GP ES2.1, CPU-OPP2 L3-165MHz OMAP3 Devkit8500 board + LPDDR/NAND I2C:  ready DRAM: 512 MiB NAND: 512 MiB In:   serial Out:  serial Err:  serial Devkit8500 xM Rev A  Die ID #155000029e3800000168263d0300c027 Net:  dm9000 Hit any key to stop autoboot: 0 OMAP3 devkit8500 # run updatesys ## Error: "updatesys" not defined OMAP3 devkit8500 # 这是因为您使用android启动，而android的u-boot是没有run updatesys这个功能，解决方法如下： 首先确认您是从TF卡启动（若有“Booting from nand. . .”则代表没有从TF卡启动） 最好的确认方法就是在u-boot下输入 “nand erase” 指令擦除后，再接入放好映像的TF卡， 若还是不能启动，请使用用户手册上所要求的HP格式化工具格式TF卡后再尝试.

如何使用CDMA/WCDMA模块
1 进入“设置”“无线网络”“3G网络设置”，找到和3G模块对应的3G网络设置，点右边圆形按钮进行选择，系统会提示需要重启，选择“立即重启”

2 再次启动后，3G网络将自动连接，如果没有自动连接，可以进入“设置”“无线网络”，选择开启“3G网络”，当通知栏出现3G图标表示3G已经连接成功.



编译Android文件系统源码不通过
新装的虚拟机后，由于环境没有完全安装好，所以可能会有编译不通过的情况. 需要安装下面编译环境安装包： 下面以Ubuntu 10.04系统为例： 1、更新源操作 a) 在文件/etc/apt/sources.list中加入如下源： deb http://cz.archive.Ubuntu.com/ubuntu hardy-updates main multiverse  （源镜像需要根据实际所在的地区进行切换，否则会影响下载速度）  b) 执行“$ sudo apt-get update”更新源列表. c) 执行“sudo apt-get upgrade”确保使用的软件包列表是最新的. 2、在终端上输入下面指令进行安装： $ sudo apt-get install git-core gnupg   $ sudo apt-get install sun-java5-jdk  $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev  $ sudo apt-get install build-essential zip curl libncurses5-dev zlib1g-dev  $ sudo apt-get install valgrind  $ sudo apt-get install flex  $ sudo apt-get install gperf 3、添加环境变量  在其 /etc/environment 中添加如下：  CLASSPATH=/usr/lib/jvm/java-1.5.0-sun/bin  JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun 或  在文件/etc/profile中加入  JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun                                       export  CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH                               export  PATH=$JAVA_HOME/bin:$PATH 如果其中已经设置了CLASSPATH和JAVA_HOME，则将其修改为上面的形式，保存退出. 4、	编译源码走到target Dex:framework卡住 这是因为虚拟机内存过小所致. 需要内存为2GB左右.

Angstrom
请参考 http://www.elinux.org/DevKit8500_Angstrom

将Program Files作为NAND FLASH的设备节点
1 Added the following sentence on file DevKit8500.bat: set PRJ_ENABLE_FSREGHIVE=1 set PRJ_ENABLE_REGFLUSH_THREAD=1 set PRJ_ENABLE_FSMOUNTASROOT=1 set PRJ_BOOTDEVICE_MSFLASH=1 2 Selected the following configurations:



3 Selected the "Hive-based Registry"



4 Re-built the BSP and create the image.

USB KITL调试电脑端驱动下载
http://devkit8000.googlecode.com/files/RNDIS%20dirver.rar

DEBUG模式编译不通过
情况：release模式编译通过，而发现debug模式则不能通过. 解答：我们针对了这个问题对BSP作了修整，若需要更新后的BSP，请直接发邮件至support@timll.com

进入WinCE后，为什么每次都要触控校准？
情况： 发现每一次进入WinCE操作系统，都需要触摸屏校准，如何解决这个问题？ 解答： 因我们所配套的LCD显示屏有4.3寸、7寸，不同的LCD显示屏所使用的触摸屏参数都不一样，所以触摸屏是每一次都需要做触摸屏校准. 解决方法： 1 打开超级终端，并启动WinCE操作系统，校准一次LCD触摸屏，查看超级终端里的信息，能看到一段类似“CalibrationData"="2016,1888 1056,864 992,2912 3040,2976 3072,896”，这属于触摸屏的参数. 2将触摸屏的参数加入BSP路径bsp/file/platform.reg ;-- Touch Screen driver ; @CESYSGEN IF CE_MODULES_POINTER ; @CESYSGEN IF GWES_TCHUI ; @XIPREGION IF PACKAGE_OEMDRIVERS IF BSP_NOTOUCH ! [HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\TOUCH] "DriverName"="touch.dll" IF IMGNOCALIBRATION                //将此行隐掉 "CalibrationData"="2016,1888 1056,864 992,2912 3040,2976 3072,896" //此为您触摸屏的参数，将其修改为4.3inch或7inch ENDIF IMGNOCALIBRATION            //将此行隐掉 "MaxCalError"="6" "SPIAddr"=dword:0          ; McSPI1 channel 0 "PenGPIO"=dword:1B          ; gpio27// gpio_175 "PenUpDebounceMS"=dword:28 ; PenUp debounce time in MS, 0 to disable debounce process "InitialSamplesDropped"=dword:2		; Number of samples to be dropped after pen down detection ; Default is 1 ;"SampleRate"=dword:64		; samples per second, default is 100 ENDIF BSP_NOTOUCH ! ; @XIPREGION ENDIF PACKAGE_OEMDRIVERS ; @CESYSGEN ENDIF GWES_TCHUI ; @CESYSGEN ENDIF CE_MODULES_POINTER

编译WinCE的BSP不通过
情况： 安装了WinCE的编译环境，想重新build系统，BSP全部解压到wince600的platform目录下后，并且使用附带软件内的sln文件，但仍不能成功. 解答： 1 请您翻开手册，查阅是否已经完整安装所有的编译工具， 假若没有安装完整，出错信息会提示缺一些头文件之类，因我们的BSP在出货之前都经过100%验证，大可不必考虑BSP有问题. 2 请您检查拷贝到C:\WINCE600的目录是否正确，比如： 正确：C:\WINCE600\OSDesigns\DevKit8500 错误：C:\WINCE600\OSDesigns\DevKit8500\Devkit8500 请不要重复文件夹. 3 请您检查在编译的时候是否按照手册“在vs2005窗口选择[Build-> Build Solution]”中的“Build Solution”去编译. 4 请您检查是否因为有自行添加过部分代码，而导致编译不通过，这个您自行找出问题根源. 5 上述步骤已经确认，还是不能编译通过，那请将您出错的信息发到support@timll.com，工程师们将会帮您分析.

分区后的TF卡，为什么只能看到一个分区？
情况： 在使用DVSDK的时候，需要制作一张带分区的卡，完全按照用户手册的步骤操作，但是发现接上电脑后卡只能看到一个分区！为何？ 解答： 有下面几种可能， 1 你是在Windows下看到分区后的卡只有一个分区，因为卡的第一个分区是FAT，第二个分区是EXT3，EXT3只能在Linux系统识别，故在Windows上只能看到FAT分区. 2 如你在Linux操作系统下看到卡的分区依然只有一个，那请： A 确认操作分区的时候是否使用“ROOT”权限分区 B 重新操作一遍 C 更换另外一张卡（因分区对卡的要求比较高，故请使用质量较好的卡）

DVSDK启动u-boot无反应
情况：在启动DVSDK的u-boot下，超级终端出现下述情况： ''60    Texas Instruments X-Loader 1.47 (Feb 17 2011 - 17:33:15) Devkit8500 xM Rev A    Starting X-loader on MMC Reading boot sector 1153660 Bytes Read from MMC Starting OS Bootloader from MMC...    Starting OS Bootloader...     U-Boot 2010.06-rc1-svn ( 5鏈?06 2011 - 10:05:25) OMAP34xx/35xx-GP ES2.1, CPU-OPP2 L3-165MHz OMAP3 Devkit8500 board + LPDDR/NAND I2C:  ready DRAM: 512 MiB NAND: 512 MiB In:   serial Out:  serial Err:  serial Devkit8500 xM Rev A    Die ID #2cf600229e3800000163810d19031024 Net:  dm9000 Hit any key to stop autoboot: 0  （此处在超级终端串口下按下任意按键） OMAP3 devkit8500 # setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait mpurate=1000 mem=99M@0x80000000 mem=128M@0x88000000 omapdss.def_disp=lcd omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=0:3M OMAP3 devkit8500 # setenv bootcmd 'mmc init;fatload mmc 0 80300000 uImage;bootm 80300000' OMAP3 devkit8500 # saveenv OMAP3 devkit8500 # boot'' OMAP3 devkit8500 # 对于正常的u-boot来说，假若您在u-boot下输入指令boot，它会直接执行 setenv bootcmd 'mmc init;fatload mmc 0 80300000 uImage;bootm 80300000', 若指令在语法上出现问题，有可能会停止后面的执行，问题可能出现在： 1 直接手动输入指令，忽略了一些空格 2 在输入之前，在指令行多输入了一些空格 此处我们建议：请直接从PDF文档上拷贝指令，然后粘贴. setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait mpurate=1000 mem=99M@0x80000000 mem=128M@0x88000000 omapdss.def_disp=lcd omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=0:3M setenv bootcmd 'mmc init;fatload mmc 0 80300000 uImage;bootm 80300000'