MiniBoardFAQ

From eLinux.org
Revision as of 17:29, 12 March 2009 by Cdyzxy (talk | contribs)
Jump to: navigation, search

常见问题解答FAQ

欢迎您使用“编辑”功能在网页上提问或解答问题,我们也会尽一切努力提供解答和帮助,您的提问会帮助我们完善技术支持,也会方便其他用户的使用,在此表示感谢!!(请您在问题前面加上一个英文分号,那样更醒目)

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

-你们(RealtimeDSP)提供的嵌入式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插座上
  • 【Linux主机或虚拟机】这里假设读卡器连接后的设备为sdb,首先umount掉sdb相关分区,然后继续操作
  • 请参考card setup article直至完成fdisk操作
  • 再到Windows中将此卡上fat32分区格式化一次(不知为何非要有此步骤,否则SD卡启动不正常,也许是Ubuntu的问题?)
  • 这样SD卡就准备好了,如果复制正确的系统文件即可在MiniBoard上启动
  • -VirtualBox如何与windows进行文件目录共享:启动linux虚拟机,确认 /mnt/windows存在,如果不存在,建立目录
     sudo mkdir /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

Mini板开发环境使用

-如何正确设置编译路径
  • 请检查PATH变量,如果PATH项与下面不同则继续进行,否则您的编译路径已经设置好了
     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:~$ 
  • 在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

系统的安装与测试

-OMAP中的ARM是通过JTAG口进行程序的烧写吗?如果我要调ARM的程序,如何调试?是通过串口调,还是通过ARM的20针的JTAG口调?有什么软件吗?
当然可以用JTAG烧写,同时支持串口下载烧写,USB下载烧写,或直接制作SD卡启动盘(需要一个SD读卡器).如果调试的程序在linux之下,最佳的调试办法是printk,如果调试程序是一个单独的测试程序,可以用ICETEK-XDS560U仿真器,目前的软件是CodeComposerStudio

硬件设计

-OMAP3是什么
OMAP3系列是TI推出的通用高性能处理器,其面对的领域超越DSP所能涵盖的范围,从大范围的角度讲,现有的任何一颗通用处理器都在OMAP3的覆盖范围之内.具体地说,TI的OMAP3希望成为现有的通用嵌入式ARM的替代品.例如,在教学和研发中广泛使用的SAMSUNG S3C2410,S3C2440系列,ATMEL的AT91系列,NXP的LPC高端系列以及原来Intel的PXA270系列芯片,都是OMAP3可以替代的产品.简单说,OMAP就是高端ARM,OMAP是全能的.
-OMAP3包含什么
OMAP3包含的主要部分是ARM Cortex-A8,2D/3D图形加速模块和基于C64x+的DSP算法加速内核.此外,OMAP3还具有一些重要的外设如:图像捕获端口,USB HighSpeed2.0 HOST,USB HS OTG等硬件外设.

其他问题

-Can we have an English version of this article, too? Dirk
感谢Dirk为我们的网页添加google英文翻译链接!
-ICETEK-OMAP3530-MINI第三版什么时间能够发售?会和现在的版本有些什么区别?
Mini Board的V3版的改进部分和发布时间,暂不确定。