DevKit8000 FAQ

主要描述基于DevKit8000开发时所遇到的一些问题及解决方法.

=硬件问题=

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

怎么让USB OTG口工作于主、从方式?
A:在内核启动前，如果要让USB OTG工作于主方式，则板载USB OTG接套件提供的USB A型线；如果要让USB OTG工作于从方式，则板载USB OTG接套件提供的USB B型线.

如何切换到MMC/SD启动开发板？
A:按住BOOT按键，上电启动，系统改为先从MMC/SD启动，再从NAND启动，详细请参考“3.18按键”介绍.

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

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

=linux问题=

若开发板的nand flash被擦除，该如何恢复出厂的状态？/ If the NandFlash had erased,how to restore it?
Chinese: 若遇到这种情况，请将先下载 linux_WriteToNandflash.rar，解压该压缩包，将里面的所有文件拷贝到SD卡里，然后从SD卡启动.

'''注意：请确认你之前在u-boot命令行下是否有使用过saveenv指令，若有使用过，请在u-boot命令行下输入 nand erase，再重新启动即可. '''

English: Please download the linux_WriteToNandflash.rar,and decompression the linux_WriteToNandflash.rar,copy the all file to the SD card in the linux_WriteToNandflash.rar,boot the image for the SD card.

Warnning:If your NandFlash has OS before, please erase it,enter to the u-boot command mode and input the commands of "nand erase" to erase the NandFlash.

开发驱动时如何打开低层调试信息?
基于linux的原因，当linux的内核启动之后它会在内部操作完所有设备的初始化，对于用户使用最小系统来开发扩展板，需要打开实时的调试信息，查出哪里出现bug，具体的打开方式如下: 在内核根目录下， 1. make omap3_devkit8000_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文件直接使用即可.

如何让显示输出在lcd屏与DVI输出之间切换?
A:只需修改内核启动参数即可. 4.3” LCD屏： OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode: 4.3inch_LCD 5.6” LCD屏： OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode: 5.6inch_LCD 7” LCD屏： OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:7inch_LCD DVI显示器： OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:720p60 VGA显示器： OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:VGA

tftp更新方式
板上配置有10/100M自适应网卡dm9000，用户可通过tftp下载的方式更新nand启动映像 1）x-loader启动映像的更新 OMAP3 DevKit8000 # tftp 80000000 x-load.bin.ift_for_NAND dm9000 i/o: 0x2c000000, id: 0x90000a46 MAC: aa:bb:cc:dd:ee:ff operating at 100M full duplex mode TFTP from server 192.192.192.90; our IP address is 192.192.192.200 Filename 'x-load.bin.ift_for_NAND'. Load address: 0x80000000 Loading: T # done Bytes transferred = 9664 (25c0 hex) OMAP3 DevKit8000 # nand unlock device 0 whole chip nand_unlock: start: 00000000, length: 134217728! NAND flash successfully unlocked OMAP3 DevKit8000 # nand ecc hw OMAP3 DevKit8000 #  nand erase 0 80000

NAND erase: device 0 offset 0x0, size 0x80000 Erasing at 0x60000 -- 100% complete. OK OMAP3 DevKit8000 # nand write.i 80000000 0 80000

NAND write: device 0 offset 0x0, size 0x80000

Writing data at 0x7f800 -- 100% complete. 524288 bytes written: OK

2）u-boot启动映像的更新 OMAP3 DevKit8000 # tftp 80000000 flash-uboot.bin dm9000 i/o: 0x2c000000, id: 0x90000a46 MAC: aa:bb:cc:dd:ee:ff operating at 100M full duplex mode TFTP from server 192.192.192.90; our IP address is 192.192.192.200 Filename 'flash-uboot.bin'. Load address: 0x80000000 Loading: T ################################################################# done Bytes transferred = 1085536 (109060 hex) OMAP3 DevKit8000 # nand unlock device 0 whole chip nand_unlock: start: 00000000, length: 134217728! NAND flash successfully unlocked OMAP3 DevKit8000 # nand ecc sw OMAP3 DevKit8000 #  nand erase 80000 160000

NAND erase: device 0 offset 0x80000, size 0x160000 Erasing at 0x1c0000 -- 100% complete. OK OMAP3 DevKit8000 # nand write.i 80000000 80000 160000

NAND write: device 0 offset 0x80000, size 0x160000

Writing data at 0x1df800 -- 100% complete. 1441792 bytes written: OK

3）内核映像更新 OMAP3 DevKit8000 # tftp 80000000 uImage dm9000 i/o: 0x2c000000, id: 0x90000a46 MAC: aa:bb:cc:dd:ee:ff operating at 100M full duplex mode TFTP from server 192.192.192.90; our IP address is 192.192.192.200 Filename 'uImage'. Load address: 0x80000000 Loading: T ################################################################# done Bytes transferred = 1991900 (1e64dc hex) OMAP3 DevKit8000 # nand unlock device 0 whole chip nand_unlock: start: 00000000, length: 268435456! NAND flash successfully unlocked OMAP3 DevKit8000 # nand ecc sw OMAP3 DevKit8000 #  nand erase 280000 200000

NAND erase: device 0 offset 0x280000, size 0x200000 Erasing at 0x460000 -- 100% complete. OK OMAP3 DevKit8000 # nand write.i 80000000 280000 200000

NAND write: device 0 offset 0x280000, size 0x200000

Writing data at 0x47f800 -- 100% complete. 2097152 bytes written: OK

4）文件系统映像更新 OMAP3 DevKit8000 # tftp 80000000 ubi.img dm9000 i/o: 0x2c000000, id: 0x90000a46 MAC: aa:bb:cc:dd:ee:ff operating at 100M full duplex mode TFTP from server 192.192.192.90; our IP address is 192.192.192.200 Filename 'ubi.img'. Load address: 0x80000000 Loading: T ################################################################# done Bytes transferred = 12845056 (c40000 hex) OMAP3 DevKit8000 # nand unlock device 0 whole chip nand_unlock: start: 00000000, length: 268435456! NAND flash successfully unlocked OMAP3 DevKit8000 # nand ecc sw OMAP3 DevKit8000 #  nand erase 680000 7980000

NAND erase: device 0 offset 0x680000, size 0x7980000 Erasing at 0x7fe0000 -- 100% complete. OK OMAP3 DevKit8000 # nand write.i 80000000 680000 $(filesize)

NAND write: device 0 offset 0x680000, size 0xc40000

Writing data at 0x12bf800 -- 100% complete. 12845056 bytes written: OK

linux交叉编译工具安装
1.网站下载交叉编译工具： http://www.codesourcery.com/sgpp/lite/arm/portal/package1787/public/arm-none-linux-gnueabi/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 2.解压缩软件 sudo tar xvf arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /home/

3. 工具安装 mkdir /home/embest/tools cp /media/cdrom/linux/tools/mkimage /home/embest/tools cp /media/cdrom/linux/tools/signGP /home/embest/tools cp /media/cdrom/linux/tools/mkfs.ubifs /home/embest/tools cp /media/cdrom/linux/tools/ubinize /home/embest/tools cp /media/cdrom/linux/tools/ ubinize.cfg /home/embest/tools

4. 设置环境变量 export PATH=/home/arm-2007q3/bin/:/home/embest/tools:$PATH

OTG主口使用问题
USB使用方法: 1. 连接USB hub电源到USB HUB 2. 连接USB OTG转接线到DevKit8000板上， 3. 上电待开发板进入linux系统 4. 插入usb hub线到USB OTG转接线上 5.可以插入usb 鼠标键盘到hub了

假若用户使用外购线材，请注意线序问题： MiniA头线序 1：电压正 2：数据正 3：数据负 4：ID 5：电压负 只要把4和5短接起来就行了 MiniA头线序只要把4至高就行

7LCD触摸屏不准的解决方法
修改此文件arch/arm/mach-omap2/board-omap3devkit8000.c为如下数据即可 struct ads7846_platform_data ads7846_conf = { .x_max                 = 0x0fff, .y_max                 = 0x0fff, //.x_plate_ohms          = 180, //.pressure_max          = 255, .debounce_max          = 10, .debounce_tol          = 5, .debounce_rep          = 1, .get_pendown_state     = ads7846_get_pendown_state, .keep_vref_on          = 1, .settle_delay_usecs    = 150, };

对于NFS，Devkit8000 U-boot 下的配置参数
若您需要用NFS，首先需要在PC机上将NFS的服务打开，然后接上网线，打开Devkit8000板子电源，在U-boot命令行里输入： setenv bootargs console=ttyS2,115200n8 root=/dev/nfs nfsroot=192.192.192.117:/home/lijr/work/nfsroot/rootfs ip=192.192.192.200:192.192.192.101:192.192.192.101:255.255.255.0:devkit8000:eth0:off

Linux VGA屏过一会屏关闭
修改文件系统的/etc/init.d/rcS文件，添加如下内容： echo -n " Disabling Power mgmt      : " echo -n "1" > /sys/power/cpuidle_deepest_state status $? 1 echo -n " Turn off LCD after 1 hour : " echo -n "0" > /sys/power/fb_timeout_value status $? 1 则可以解决linux关屏问题.
 * 1)   Disable power management
 * 2)   (Requires sysfs support in the kernel)
 * 1)   (Requires sysfs support in the kernel)
 * 1)   Turn off LCD after 1 hour of inactivity
 * 2)   (Requires sysfs support in the kernel)
 * 1)   (Requires sysfs support in the kernel)

S-Video输出的使用方法
首先请重新编译内核，在内核配置的选项选上：

Multimedia devices ---> [*] Video capture adapters ---> VID1 Overlay manager (Use TV Managaer) ---> (X) Use TV Manager

选上后重新编译，并将生成的uImage放入sd卡，开始启动系统. 重新编译后，你需要下载测试工具video_test与范例视频foreman_vga_422.yuv，您可在http://code.google.com/p/devkit8000/downloads/list找到.

进入内核后输入： 拷贝video_test与foreman_vga_422.yuv文件到板子空间里，运行方法如下： video_test /foreman_vga_422.yuv

=wince问题=

烧写wince到NAND Flash系统映像更新
1.更新文件准备 （1）	用软件HP Disk Storage Format Tool格式化SD卡为FAT或FAT32文件系统. （2）	拷贝光盘目录image[\wince_6]下子目录dvi1280X720或lcd480X272下文件MLO、EBOOTNAND.nb0、NK.bin、XLDRNAND.nb0和ADevKit9000.exe到SD卡并重命名EBOOTNAND.nb0为EBOOTSD.nb0 2. 映像更新 （1）	按住BOOT键，后插入SD卡重新启动系统. 这时系统从SD卡启动. 超级终端输出启动打印信息，按[SPACE]进入EBOOT菜单. （2）	按[5]进入Flash管理菜单. （3）	分别按[a]、[b]和[c]，写XLDR、EBOOT和NK映像. （4）	然后按[0]键回到主菜单，并分别按下[2]、[4]、[7]和[y]更改启动设备. （5）	拔除SD卡，后重新启动系统. 这时系统将从NAND Flash启动. 英文显示 the method to Update the image for NAND Flash (1)Run the software of HP Disk Storage Format Tool and format the SD card for FAT or FAT32 filesystem. (2) Copy the image file(MLO, EBOOTNAND.nb0, NK.bin, ADevKit8000.exe) from CD:\wince_6\image\ lcd480X272 to SD card, then change the name from EBOOTNAND.nb0 to EBOOTSD.nb0 in the SD card. (3) Insert the SD card to the board, press the BOOT button and then power on the board again; HyperTerminal will start printing the output information, at the same time press [SPACE] to enter the EBOOT menu. (4) Press [5] to enter the Flash manage menu. (5) Press [a], [b], [c] separately to write the image(XLDR, EBOOT, NK) to flash. (6) Press [0] to return to the main menu, and press [2], [4], [7], [7] to change the boot device. (7) Power on the system again, and then the board will boot from the NAND flash.

屏蔽WinCE启动后的触摸屏打印信息
修改函数DevKit8000\SRC\DRIVERS\TOUCH\touchscreen.cpp, 把564行		RETAILMSG(1, ( TEXT( "Point: (%d,%d)\r\n" ), *pUncalX, *pUncalY ) ); 屏蔽掉然后重新编译就行了. 如下所示： //RETAILMSG(1, ( TEXT( "Point: (%d,%d)\r\n" ), *pUncalX, *pUncalY ) );

关闭调试串口打印
setp: 1,commnent out the RETAILMSG call in TouchDriverCalibrationPointGet function of touchscreen.cpp 2,commnent out the RETAILMSG call in DdsiTouchPanelGetPoint function of touchscreen.cpp 3,commnent out the RETAILMSG call in TLED_Backlight::SetPowerState function of tled_backlight.cpp 4,commnent out the RETAILMSG call in SetDutyCycle function of tled.cpp 5,commnent out the RETAILMSG call in LcdPdd_LCD_Initialize function of lcd_vga.c 6,make sure that "set BSP_NOCOM=" is not set in DevKit8000.bat 7,make sure that "set BSP_NOCOM3=" is not set in DevKit8000.bat 8,delete the "IF BSP_COM3" of _FLATRELEASEDIR/platform.reg in line 1103 9,delete the "ENDIF BSP_COM3" of _FLATRELEASEDIR/platform.reg in line 1124 10,rebuilt the BSP

关闭触摸屏校准
setp: 在BSP包的一级目录下，有DevKit8000.bat文件，在其中任一行添加： set IMGNOCALIBRATION=1 然后重新build编译即可

关于触摸屏不能用的问题解决方法
是编译时使用 build and sysgen导致的，在wince下不能用bulid and sysgen编译，用它就出问题，而且必须把pb6.0重装才可以

WINCE无法存储
在SRC\DRIVERS\BLOCK\NAND\nand_MT29F2G16.h 把下面这句 改成
 * 1) define NUMBER_OF_BLOCKS       (2048)  // 2048 blocks
 * 1) define NUMBER_OF_BLOCKS       (1024)  // 1024 blocks

如何修正RTC时间不准确的问题/ How to correct the right RTC functions
Chinese: 1. 把新的rtc.c替换原来的src/oal/oalrtc/rtc.c(http://devkit8000.googlecode.com/files/rtc.c)

2. 在src/inc/bsp_cfg.h后面加上#define BSP_OAL_RTC_USES_TWL4030	TRUE

3. 重新编译.

English: 1. Please replace the src/oal/oalrtc/rtc.c as the new rtc.c (http://devkit8000.googlecode.com/files/rtc.c)

2. Add the #define BSP_OAL_RTC_USES_TWL4030 TRUE on the src/inc/bsp_cfg.h in BSP.

3. Recompile the image again.

如何修改WINCE的MAC地址
直接修改改注册表 [HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms] "BusNumber"=dword:0 "BusType"=dword:1 "XmitBuffer"=dword:20 "RecvBuffer"=dword:20 "IrqNumber"=dword:99 "IoAddress"=dword:15000000 "Mac"=hex:00,00,00,00,00,00

如何修改WINCE的注册表
在vs2005环境下 修改_REL_DIR目录的platform.reg 修改完成后->make runtime image

如何在WINCE下取消省电/休眠模式
控制面板-power-ACsuspend-never

通过SD卡启动不了Wince的解决方法
若你的串口信息有出现以下内容： HandleInsertion MMC Reset MMCIssueIdentify: SD card detected SD card relative address is 26803 MMCIssueIdentify: CSD reported block size = 512 Card size is = 972800 512 byte sectors max clock freq = 25000000 identification complete SDCardIdentify: Identify device ... BL_IMAGE_TYPE_BIN Download file information: --- [0]: Address=0x84001000 Length=0x02065488  Save=0x80001000 --- Download file type: 1 ERROR: Checksum failure (expected=0x1768BE9 computed=0x170C19B) '''****** Checksum failure on record 5, ABORT!!! ******''' 若遇到这种情况，请您将光盘里面的NK.bin文件重新放入SD卡里面，便可以解决.

如何建立KITL连接?
目前DevKit8000只支持DM9000网络下载nk.bin，不支持KITL传输，这是由于DM9000的bootloader和OAL公共部分代码在进wince系统后地址空间没进行地址映射直接访问DM9000的物理地址造成的，这个问题待修正. 使用USB RNDIS可进行nk.bin下载和KITL传输. 1.在PC安装微软RNDIS驱动. 2.设置虚拟网卡的IP地址和DevKit8000的IP地址，并确保它们在同一网段且不和PC机同一网段. 3.在Eboot设置启动设备了USB RNDIS，选择调试设备为USB RNDIS.

启动WinCE时出现BP_ReadData call failed的解决方法
(1) 用软件HP Disk Storage Format Tool格式化SD卡为FAT或FAT32文件系统. (2) 拷贝光盘目录image[\wince_6]下子目录dvi1280X720或lcd480X272下文件 MLO, EBOOTNAND.nb0, NK.bin, XLDRNAND.nb0, ADevKit8000.exe到SD卡，将EBOOTNAND.nb0改名为EBOOTSD.nb0. (3) 按着BOOT键，当串口显示： INFO: Boot configuration found OALFlashStoreOpen: 2048 blocks, 64 sectors/block OALFlashStoreOpen: 2048 bytes/sector, 14 reserved blocks ERROR: OALFlashStoreRead: Failed read sector 384 (0 sector in block 6) Hit space to enter configuration menu 1... 请在这里按空格键 按[5]进入Flash管理菜单. '''注意：若是按[8]才是Flash管理菜单的话，那是不正确的，说明您没有操作上一步的“将EBOOTNAND.nb0改名为EBOOTSD.nb0”. ''' (4) 按[3]进入Flash erase. 等待完成后再进行下一步. (5) 按[7]进入Flash format. 等待完成后再进行下一步. (6) 再执行用户手册的12.2.1 NAND Flash系统映象更新.

=其他问题=

可用资源参考
Qt：http://qt.nokia.com/ Oxroid-android2.1：http://code.google.com/p/0xdroid/wiki/UsingPreBuiltImages TI-android：http://code.google.com/p/rowboat/wiki/Main?tm=6

格式化工具下载
网址：http://www.embedinfo.com/english/download/SP27213.exe

SD卡不能启动
推荐使用HP USB Disk Storage Format Tool 2.0.6：下载下列网址工具 http://www.embedinfo.com/english/download/SP27213.exe 安装后执行如下操作. 1、把MMC/SD卡插入PC下读卡器中 2、打开HP USB Disk Storage Format Tool 3、选择”FAT32“系统格式 4、点击”Start” 5、等待格式化完成，点击”OK” 6、把映像文件拷贝到SD卡中.  you should downlod the tools http://www.embedinfo.com/english/download/SP27213.exe then format your SD card for the fat32,then copy the file to it, then it can be booted.

提供demo配套u-boot.bin无法修改参数
提供demo配套u-boot.bin无法修改参数，用户想要修改并保存u-boot下参数，可采用DevKit8000提供u-boot源码，修改传递给内核的MACH_ID，重新编译即可. 具体操作方法： 1、u-boot-1.3.3源码中 修改board/omap3devkit8000/omap3devkit8000.c文件 找到board_init函数 修改： gd->bd->bi_arch_number = MACH_TYPE_DEVKIT8000;为 gd->bd->bi_arch_number = XXX; 2、重新编译u-boot 注： 1、对于angstrom，XXX为MACH_TYPE_DEVKIT8000 2、对于android，XXX为MACH_TYPE_OMAP3_BEAGLE 3、对于dvsdk，XXX为MACH_TYPE_OMAP3EVM

DevKit8000跑QT程序鼠标不工作
内核目录下输入make menuconfig，添加如下配置：

Device Drivers ---> Input device support --->

<*>Mouse interface [*]Provide legacy /dev/psaux device (1024) Horizontal screen resolution (768)  Vertical screen resolution

[*]  Mice  --->

解决android demo系统下静态ip的分配问题
进入系统后，串口终端下输入：

ifconfig eth0 192.192.192.90

ifconfig eth0 up

route add default gw 192.192.192.101 dev eth0

setprop net.dns1 202.96.134.133

注： 客户可根据实际情况修改以上ip地址.