MiniBoardFAQ

=常见问题解答FAQ= 这里是关于以下话题的问答: MiniBoard,OMAP3530相关,ARM开发环境,OMAP开发软硬件使用

欢迎您使用“编辑”功能在网页上提问或解答问题,我们也会尽一切努力提供解答和帮助,您的提问会帮助我们完善技术支持,也会方便其他用户的使用,在此表示感谢!!(请您在问题前面加上一个英文分号,那样更醒目),如果在其他问题中提出则可以得到及时地回答并由我们将其移动归入适当分类问题中.

热门问题索引


 * 制作双分区SD卡
 * Ubuntu与windows进行文件目录共享
 * 编译路径
 * NandFlash启动系统
 * USB-以太网接口
 * 安装虚拟机开发环境
 * SDKV3

嵌入式Linux系统的开发环境(Ubuntu虚拟机的使用)

 * -瑞泰创新提供的嵌入式Linux系统开发环境是怎样的?:由于TI的达芬奇系列和OMAP系列芯片采用ARM,DSP或ARM+DSP结构形式,所以在开发具有ARM核的相关芯片嵌入式系统时需要一个好用的并且功能强劲的Linux开发环境.一般地,用户可采用的开发环境可以是a)Linux主机 b)Windows+Cygwin c)Windows+VM 这三种形式,第一种是比较专业的做法,要求开发者熟悉所使用的Linux系统的各种操作,使用Linux就象使用Windows一样熟练;第二种的使用习惯倾向于操作Windows;第三种是前两种的兼顾,适用于大多数开发者.这也就是RealtimeDSP在选择开发平台时所考虑的——它要能适用于绝大多数用户,兼顾Linux和Windows操作而且还能共享文件和工具.经过反复对比,我们最终决定选用方案c：Windows(XP/Vista)+VM(VirtualBox)+Ubuntu
 * -虚拟机(VM)有许多种,为何要选用VirtualBox?:首先它适用,各项所需要用到的功能我们均进行了测试,并认为比较好用;其次它免费,由于它是一款开源软件,下载和使用它均是免费的,这也是Linux系统的一贯精神;再次它强大,您可以试着访问一下它的网站,可以了解到VirtualBox在不断完善,更新中,这也说明它有一个强劲的支持团队做为后盾,富有生命力和活力,用户也越来越多;最后它轻便,轻量级的安装包和占用系统资源,安装简易,配置灵活,适用于各种硬件配置.我相信,VirtualBox将会越来越流行.
 * -可选用的Linux发行版有许多种,为何选用Ubuntu?:访问一下Ubuntu网站或在Google上查一下,您就会得知Ubuntu(读作“乌班图”)越来越火了,且不说它即将在嵌入式系统中有所做为,只是看一看许多笔记本电脑在销售时可选预装Ubuntu这种情况,就可以了解它足够稳定和流行了.在选择Ubuntu做为开发系统操作环境的时候,我们考虑了它的的特点：稳定,先进,功能强大完备,有强劲的支持团队,用户众多,免费,流行,最后是:适用. 由于上述特点,在互联网上有关Ubuntu使用和设置的信息非常丰富,也有众多的参考书籍可以查阅.让我们一起来Ubuntu一下吧!
 * -开发环境都提供什么功能?:我们通过提供一个虚拟机安装盘使用户能简易地安装和设置嵌入式Linux系统的开发环境.在虚拟机中运行的Ubuntu环境下,会预装嵌入式系统的编译环境(交叉编译器及相关工具),板卡软件开发包(SDK,包含Bootloader,Kernel和Demo程序的全部源码及说明文档),开发系统还提供ftp或tftp服务,NFS服务做为辅助开发手段,另外已配置好的系统还能与Windows进行便易的数据交互;在安装光盘上还有TI相关文档和数据手册,附加的测试和示例程序(源码),使用手册,系统板原理图等.另外通过技术支持,您还能得到更多的技术文档,测试程序等.


 * -如何制作fat32和ext3双分区SD卡?:我们从一块新的SD卡开始,将它插入到读卡器中并连接到开发主机的USB插座上
 * 准备: 考察一下所实验的SD卡,用Windows下的格式化工具将其格式化成Fat32格式,最好不要用快速格式化功能
 * 【Linux主机或虚拟机】这里假设读卡器连接后的设备为sdb,首先umount掉sdb相关分区,然后继续操作
 * 请参考card setup article直至完成fdisk操作
 * 再到Windows中将此卡上fat32分区格式化一次(不知为何非要有此步骤,否则SD卡启动不正常,也许是Ubuntu的问题?)
 * 这样SD卡就准备好了,如果复制正确的系统文件即可在MiniBoard上启动

 sudo mkdir /mnt/windows
 * -VirtualBox如何与windows进行文件目录共享:启动linux虚拟机,确认 /mnt/windows存在,如果不存在，建立目录
 * 执行如下指令实现文件目录共享

sudo mount -t vboxsf share /mnt/windows sudo mount -a
 * 此时,linux可以通过/mnt/windows目录与windows交换文件
 * 为了保证每次启动计算机都可以共享目录,执行如下操作,以后每次启动都可以直接使用文件交换功能了

su root echo "share /mnt/windows vboxsf rw 0 0" >> /etc/fstab


 * -为何我的虚拟机安装不正常?:请检查WindowsXP是否安装在NTFS格式的硬盘文件系统上,否则安装会出问题,这是VirtualBox要求的

软件开发及系统的安装与测试

 * -OMAP3中的ARM是通过JTAG口进行程序的烧写吗?如果我要调ARM的程序,如何调试?是通过串口调,还是通过ARM的20针的JTAG口调？有什么软件吗？:当然可以用JTAG烧写,同时支持串口下载烧写,USB下载烧写,或直接制作SD卡启动盘(需要一个SD读卡器).如果调试的程序在linux之下,最佳的调试办法是printk,如果调试程序是一个单独的测试程序,可以用ICETEK-XDS560U仿真器,目前的软件是CodeComposerStudio
 * -OMAP3的DSP那块如何进行调试,是和通常的DSP一样通过JTAG口调试吗?另外,听说C64X+的核只是一个协处理器,用来做图形加速的,那它的功能和我们通常的如DM642的区别有什么?那我们可以通过这个C64X+核做些什么工作呢?:DSP内核的调试可以通过JTAG仿真器,但不限于仿真器,因为没有很多的外设需要用到DSP来控制.问题中C64X+是图形加速器这个概念是不对的,图形加速的工作是由2D/3D加速模块完成的.C64x+作为协处理器,它可以完成的任务是多种多样的,不限于图像处理,只要是高密度计算程序都可以用.这就是他与dm642的最大区别,dm642是某一个行业特定用途的,而omap则是通用处理器.
 * -OMAP3的启动模式?能否用USB或网口直接加载启动?:OMAP3支持的启动模式:UART,NandFlash,OneNandFlash,USB,SD
 * -Mini板(V2.1)编写程序后,运行程序的RAM有多大?:目前的存储资源为128MB(yte)RAM/ROM,一般来说,linux OS会使用10MB左右的存储器,如果加上GUI会更多一些,其它是自由空间
 * -OMAP3系统开发需要具备哪些工具?:JTAG开发工具
 * OMAP3的ARM内核可以用任何一种支持Cortex-A8的调试器调试,例如XDS560,realview,bdi2000等,DSP内核可以用XDS560调试.但是,对于OMAP3的开发,JTAG仿真器不是必需的产品,因为这些工具都不能调试嵌入式操作系统.
 * 软件平台
 * Cortex-A8:支持两种嵌入式操作系统：
 * □ linux: 完全开源,不保留任何代码,包含u-boot,linux kernel和图形界面(GUI)和Gcc
 * □ WinCE: 向TI申请.应该到这个网址申请www.ti.com/requestfreesoftware国内用户无法直接上这个网站,请使用代理,如www.woksurf.info进入这个网站,在输入框中粘贴申请网址,然后点go即可.
 * □ 2D/3D加速器: 迄今知道的只有一种,ti的GameSDK,基于OpenGL ES库
 * □ DSP: 也是两种,一种是开源的linux kernel,一种是dsp/link,Ti提供的c6000 compiler


 * -以前的ARM开发平台是否可以用来调试现在的OMAP3里的ARM:ARM在linux下的开发软件简单区别如下：
 * ARM7--没有MMU,因此,只能使用uclinux来开发
 * ARM9--包含mmu,可以用标准的Linux来开发,另一个关键的组件是GCC(编译器),一般的ARM9使用GCC2.x或GCC3.x来开发，如三星的s3c2410系列用gcc 2.95;davinci用gcc 3.2
 * Cortex-A8(OMAP)--包含MMU,可以用标准的Linux来开发,要获得更高的性能,使用GCC 4.x以上版本


 * -2D/3D开发:OMAP3515和OMAP3530带3D硬件加速,采用的是imaganation的PowerVR IP核,支持OpenGL ES1.1和OpenGL ES2.0,可以从这个网址下载SDK：http://www.imgtec.com/powervr/insider/powervr-sdk.asp 开发模式一般是在SDK上进行仿真，然后基于OMAP3的库和驱动release以后，可以直接交叉编译运行图像编/解码. 按照 http://code.google.com/p/beagleboard/wiki/HowtoUseSGXunderAngstrom 的教程，能够做出可以运行 TI 的 SDK 中的 OpenGL ES1.1 和 OpenGL ES 2.0 的 demo 程序的系统. 因为 TI 的 SDK 是针对 BeagleBoard 和官方的 EVM 的，我发 email 跟 TI 的人要 SDK 的时候，对方比较担心不能在 ICETEK-OMAP3530-Mini 上正确运行，我会找他啰嗦，或者满世界宣传 TI 差劲什么的. 我跟他来回讲了好几次，赌咒发誓说我明白如果不能用是正常的，能用才是不正常的，他才给我开了账号 -- 对方态度倒是非常好. 所以你如果去要能够下载 SDK 的账号，建议 email 开头直接说明已经有人证实 SDK 可以在 ICETEK-OMAP3530-Mini 上跑了.
 * -怎么自己搭建开发系统:如果是基于beagleboard的,参考http://www.elinux.org/BeagleBoard
 * 如果是基于omap3530evm,参考http://www.mistralsolutions.com/products/omap_3evm.php

Mini板开发环境使用
 davinci@davinci-desktop:~$ export ...     declare -x PATH="/opt/codesourcery/arm-none-linux-gnueabi/arm-2007q3/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" ...     davinci@davinci-desktop:~$
 * -如何正确设置编译路径:请检查PATH变量,如果PATH项与下面不同则继续进行,否则您的编译路径已经设置好了


 * 在ICETEK-OMAP3530-Mini系统所配的Ubuntu开发环境中进行以下操作：

davinci@davinci-desktop:~$PATH="/opt/codesourcery/arm-none-linux-gnueabi/arm-2007q3/bin/:$PATH"
 * 编辑/home/davinci/.bashrc文件

davinci@davinci-desktop:~$gedit .bashrc
 * 在文件末尾添加如下行并保存退出

export PATH="/opt/codesourcery/arm-none-linux-gnueabi/arm-2007q3/bin/:$PATH"
 * -如何恢复ICETEK-OMAP3530-Mini系统配置的DemoSD卡:需要使用ICETEK-OMAP3530-Mini系统配的开发环境
 * 准备一块SD卡,按照上面介绍的将SD制成双分区并格式化好,将它插入读卡器并连接到开发主机上
 * 在【uBuntu】中如下操作:

davinci@davinci-desktop:~$ cd ICETEKWork/Demos davinci@davinci-desktop:~/ICETEKWork/Demos$ sudo cp DemoSD/fat32/MLO /media/FAT32 davinci@davinci-desktop:~/ICETEKWork/Demos$ sync davinci@davinci-desktop:~/ICETEKWork/Demos$ sudo cp DemoSD/fat32/* /media/FAT32 davinci@davinci-desktop:~/ICETEKWork/Demos$ sudo cp -a DemoSD/ext3/* /media/EXT3 davinci@davinci-desktop:~/ICETEKWork/Demos$ sync
 * 等待所有数据均写入SD卡后即可使用


 * -如何制作从NandFlash启动的系统:如果已经做过启动卡,可将此卡插入读卡器后在Ubuntu中用文件浏览器删除卡上FAT32分区中除MLO文件外所有文件,删除EXT3分区中所有文件及子目录,跳过下面制作新卡的这一步继续
 * 制作SD系统启动卡(请参照[ICETEK-OMAP3530-Mini使用手册 第三章 一]进行操作)
 * 重新编译XLoader,生成新的x-load.bin.ift
 * □ 按照[ICETEK-OMAP3530-Mini使用手册 第二章 二]进行操作.在进行到其中的步骤4的最后时,请将定义CONFIG_MMC句注释
 * 复制启动盘软件
 * □ 在Ubuntu中插入读卡器,使系统识别FAT32分区和EXT3分区并在桌面上显示相应图标(如果分区名称有不同,请在下面操作中根据相应的映射位置调整命令内容中相关部分)
 * □ 启动Ubuntu中终端,进行如下操作

...$ sync ...$ cd ~/ICETEKWork/Demos/WorkSD ...$ sudo cp fat32/* /media/FAT32 ...$ sudo cp -a ext3/* /media/EXT3 ...$ sudo mkdir /media/EXT3/work/fs ...$ sudo cp -a ext3/* /media/EXT3/work/fs ...$ sync
 * □ 将上面新生成的x-load.bin.ift复制到SD卡的FAT32分区
 * □ 卸载SD卡
 * 启动ICETEK-OMAP3530-Mini系统
 * □ 在断电情况下,将SD卡插入Mini板J14,连接串口,在Windows中打开超级终端程序
 * □ 接通电源,观察超级终端中的显示,在UBoot计数时按空格键停止.(如果超级终端中显示Xloader从SD卡启动并停止在Loading u-boot.bin from nand,请将SD卡FAT32分区用Windows格式化成FAT后重新复制系统软件到此分区)
 * □ 烧写XLoader到NandFlash

OMAP3 Miniboard # mw.b 80000000 ff 80000 OMAP3 Miniboard # mmcinit OMAP3 Miniboard # fatload mmc 0:1 80000000 x-load.bin.ift reading x-load.bin.ift 11412 bytes read OMAP3 Miniboard # nand unlock device 0 whole chip nand_unlock: start: 00000000, length: 134217728! NAND flash successfully unlocked OMAP3 Miniboard # nand ecc hw OMAP3 Miniboard # nand erase 0 80000
 * □ 烧写UBoot到NandFlash

OMAP3 Miniboard # mw.b 80000000 ff 200000 OMAP3 Miniboard # mmcinit OMAP3 Miniboard # fatload mmc 0:1 80000000 u-boot.bin reading u-boot.bin 212880 bytes read OMAP3 Miniboard # nand ecc sw OMAP3 Miniboard # nand erase 80000 1e0000 NAND erase: device 0 offset 0x80000, size 0x1e0000 Erasing at 0x240000 -- 100% complete. OK     OMAP3 Miniboard # nand write 80000000 80000 1e0000 NAND write: device 0 offset 0x80000, size 0x1e0000 1966080 bytes written: OK     NAND erase: device 0 offset 0x0, size 0x80000 Erasing at 0x60000 -- 100% complete. OK     OMAP3 Miniboard # nand write 80000000 0 80000 NAND write: device 0 offset 0x0, size 0x80000 524288 bytes written: OK
 * □ 烧写Kernel到NandFlash

OMAP3 Miniboard # mw.b 80000000 ff 400000 OMAP3 Miniboard # fatload mmc 0:1 80000000 uImage reading uImage 1856668 bytes read OMAP3 Miniboard # nand ecc sw OMAP3 Miniboard # nand erase 280000 400000 NAND erase: device 0 offset 0x280000, size 0x400000 Erasing at 0x660000 -- 100% complete. OK     OMAP3 Miniboard # nand write 80000000 280000 400000 NAND write: device 0 offset 0x280000, size 0x400000 4194304 bytes written: OK     OMAP3 Miniboard # nand erase 680000 7980000 NAND erase: device 0 offset 0x680000, size 0x7980000 Skipping bad block at xxxxxxxx Erasing at 0x7fe0000 -- 100% complete. OK     OMAP3 Miniboard # setenv bootcmd 'nand read 80200000 280000 400000;bootm 80200000' OMAP3 Miniboard # setenv bootargs console=ttyS2,115200n8 console=ttyS0 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 rw rootdelay=3 nohz=off OMAP3 Miniboard # save OMAP3 Miniboard # boot
 * □ 烧写文件系统到NandFlash(在系统启动后提示Please press Enter to activate this console.此时按一下回车键进入控制台)

[MiniBoard]# mkdir /mnt [MiniBoard]# mkdir /mnt/nand [MiniBoard]# mount -t jffs2 /dev/mtdblock4 /mnt/nand [MiniBoard]# cd /mnt/nand [MiniBoard]# cp -a /work/fs/* . [MiniBoard]# sync [MiniBoard]# cd / [MiniBoard]# umount /mnt/nand
 * 从NandFlash启动系统
 * □ 给ICETEK-OMAP3530-Mini系统重新加电,停止UBoot程序运行,进入UBoot的命令行状态

OMAP3 Miniboard # setenv bootargs 'console=ttyS2,115200N8 console=ttyS0 noinitrd root=/dev/mtdblock4 rw rootfstype=jffs2' OMAP3 Miniboard # save OMAP3 Miniboard # boot
 * -SDK里面Linux kernal的原代码在什么位置: ~/ICETEKWork/software/2.6_kernel
 * -UBoot里面的bootloader的使用说明书:包含在软件包中,主要是根目录下的readme.txt



SDKV3

 * SDKV3是配合ICETEK-OMAP3530-MiniV3.x版本硬件的软件开发环境

gpio_direction_output(DVIENGPIO, 1);
 * -设置使用ICETEK-OMAP3530-VGA模块:VGA显示可以采用Mini板SDK内核所带的DVI驱动支持,请在制作内核启动参数boot.cmd时将bootargs行末尾的1280x720改成1024x768或800x600等VGA分辨率即可;UBoot在VGA模式下显示仍采用1280x720的Logo,如果想显示VGA下的Logo需要修改UBoot的源码
 * -使能DVI信号:SDKV3对应的ICETEK-OMAP3530-MiniV3板上,OMAP3530控制DVI显示输出的使能管脚为GPIO20,它通过控制TFP410芯片的第10脚使其进入/退出低功耗模式(低有效),运行在OMAP3530的程序可设置GPIO20的状态来打开或关闭DVI显示输出.参看MiniV3的原理图和实际板卡,您会发现在默认情况下这个控制由于R96未焊接而没有使能,如果您想使能这个信号需要将一个0欧姆的电阻焊接在R96的空位上,并且修改一下SDKV3的内核源代码,使之产生正确的控制输出./home/davinci/ICETEKWork/software/v3/kernel/arch/arm/mach-omap2/board-omap3mini.c的361行,在mini_enable_dvi函数中设置使能DVI时请将此行的向GPIO20输出0改为输出1
 * -在同程序的370行,将mini_disable_dvi函数中请将向GPIO20发送的1改成0

.gpio_wp	= 29,
 * -使能SD卡的写保护信号:参照MiniV3板原理图,MMC0的WP(写保护)信号接到了OMAP3530的GPIO23,请修改程序/home/davinci/ICETEKWork/software/v3/kernel/arch/arm/mach-omap2/board-omap3mini.c的197行将29改成23

硬件设计

 * -OMAP3是什么:OMAP3系列是TI推出的通用高性能处理器,其面对的领域超越DSP所能涵盖的范围,从大范围的角度讲,现有的任何一颗通用处理器都在OMAP3的覆盖范围之内.具体地说,TI的OMAP3希望成为现有的通用嵌入式ARM的替代品.例如,在教学和研发中广泛使用的SAMSUNG S3C2410,S3C2440系列,ATMEL的AT91系列,NXP的LPC高端系列以及原来Intel的PXA270系列芯片,都是OMAP3可以替代的产品.简单说,OMAP3就是高端ARM,OMAP3是全能的.
 * -OMAP3包含什么:OMAP3包含的主要部分是ARM Cortex-A8,2D/3D图形加速模块和基于C64x+的DSP算法加速内核.此外,OMAP3还具有一些重要的外设如:图像捕获端口,USB HighSpeed2.0 HOST,USB HS OTG等硬件外设.
 * -MiniBoard上的SDIO(SD)接口是否为3V?:目前Mini板(V2.1)上共有两套SDIO接口.通过SD卡插座扩出来的SDIO是3V的,可直接接插SD卡.通过扩展插座扩展出来的SDIO是1.8V的.
 * -Mini板上除9针D型串口以外是否还预留了串口的扩展接口?:扩展总线上还有一个,目前是1.8V的,具体看说明书相关内容
 * -Mini板(V2.1)的J13中右侧的管脚VS到SHIELD起什么作用?它没有管脚定义,是否可以去掉?J13中PIN6-DDCCLK,PIN7-DDCDAT起什么作用?是否可以去掉:J13是DVI接口,Mini板选用的是DVI-D,所以有些信号是没有用的,至于画板子时的考虑,可以自行决定
 * -听说在TI设计的3530系统中没有DDR和DSRAM存储器,如果我在做720P,D1的视频处理硬件系统中,不安装DDR或DSRAM,只用3530自身的片内RAM,是否会对系统产生影响?:这个说法有问题.omap3530不支持DDR2,但是omap3530支持LPDDR.整个软件系统也是在LPDDR中运行的
 * -Mini板(V2.1)的音频部分的AD,DA各是多少位?:AD和DA均为16位双通道,采样速率最高96KHz/通道
 * -OMAP3可否做出PCI的接口?:OMAP芯片本身不能做PCI host和PCI slave
 * -Mini板(V2.1)支持的最大显示分辨率是多少?OMAP3515(CortexA8+2D/3DAccelerate)如何:硬件上可以到
 * XGA - 1024x768 VESA Timings at 60 fps (pixel clock = 63.5 MHz )
 * WXGA - 1280x800 VESA timings at 59.91 fps (pixel clock = 71MHz)
 * SXGA+ - 1400x1050 Direct drive of LCD with minimal blanking at 50 fps(pixel clock =75MHz)
 * HD 720p - 1280x720 CEA 861-D TIMINGS at 60 fps (pixel clock = 74.25 MHz)
 * 请参看sprufa4a.pdf


 * -Mini板(V2.1)上Flash芯片是什么?:开发板上使用的芯片是MT29C1G24M这个芯片,正确的称呼应该是MCP器件,其中包含一块LPDDR和一块NANDFlash.这个器件在网上是找不到datasheet的,需要同厂家签协议才能获得(同时也订不到货,也必须联系厂家).如果只用LPDDR或NANDFlash,客户可以用标准的LPDDR和NANDFlash替代.使用MCP的主要优势是板子可以画的小一点.从厂家角度,用MCP可以一次卖给客户两颗器件.我们选择这颗器件是TI的要求,没有什么必须的道理.这颗器件的主要指标是128MB(yte)RAM和128MB(yte)NAND Flash.同理,SAMSUNG和Hynix的MCP器件也是如此,一样需要厂家直接联系.最后,请注意各个厂家的MCP器件是管脚不兼容的
 * -请推荐一款USB-以太网转接器件:经过测试可支持的器件有:
 * Z-TEK力特USB2.0转网卡线. 具体的型号为 ZK-012，在 Linux 下识别为 ADM8515，使用的驱动是 Pegasus/PegasusII 模块. 在我这里，有时候一次不能 dhcp 到正确的 IP 地址，多重启几次就好了.

其他问题

 * -請問我買了一套套裝的，上電後D5 LED燈有亮接上RS232(UART)並設好超級終端機,再長按S1可是並沒開機也沒反應，這是什麼問題?謝謝 我很需要線上支援 我的MSN 及QQ cover1234@gmail.com(1093266674):估计是未插入SD卡且NandFlash中没有Xloader
 * -在miniboard的\xloader\lib\board.c文件中,start_armboot函数中使用"((init_fnc_t *)CFG_LOADADDR);"进行到uboot的跳转,在xloader\include\configs\omap3530Mini.h文件中定义"#define CFG_LOADADDR 0x80008000",程序会跳转到0x80008000处执行.哪么在uboot\board\omap3530Mini\config.mk文件中"TEXT_BASE = 0x80e80000",定义了uboot起始地址是0x80e80000.地址不同?里面有什么关系?:请见中国Linux论坛相关帖子
 * -您可以在此提出问题:在此回答