原创 【TI博客大赛】Sitara AM3517从头开始开发过程详细说明

2012-10-30 14:42 2560 7 7 分类: MCU/ 嵌入式

AM3517板整个开发过程记录

最近时间一直在做一个新项目,同时也是对旧项目的硬件平台进行一个升级,所以用了sitara am3517 Cortex-A8做了一块主板。以下简单介绍一下整个开发过程的建立以及在中间遇到的一些问题及其解决方法。希望对新人有所帮助.

1、平台硬件资源简介

CPU:TI Sitara AM3517+

DDR2:SAMSUNG K4T1G164QE-HCE7

Nand:SAMSUNG K9F1g08UOD

PHY:NS DP83848C

 

建立TFTP Server

1、安装相关软件包:Ubuntu tftp(服务端),tftp(客户端),xinetd

root@xf:/# apt-get install tftpd tftp xinetd

正在读取软件包列表... 完成

正在分析软件包的依赖关系树      

正在读取状态信息... 完成      

下列【新】软件包将被安装:

  tftp tftpd xinetd

升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

需要下载 185kB 的软件包。

解压缩后会消耗掉 578kB 的额外空间。

获取:1 http://mirrors.sohu.com/ubuntu/ karmic/universe tftp i386 0.17-17ubuntu1 [17.6kB]

获取:2 http://mirrors.sohu.com/ubuntu/ karmic/main xinetd i386 1:2.3.14-7ubuntu2 [151kB]

获取:3 http://mirrors.sohu.com/ubuntu/ karmic/universe tftpd i386 0.17-17ubuntu1 [16.5kB]

下载 185kB,耗时 2秒 (79.6kB/s)

选中了曾被取消选择的软件包 tftp。

(正在读取数据库 ... 系统当前共安装有 173693 个文件和目录。)

正在解压缩 tftp (从 .../tftp_0.17-17ubuntu1_i386.deb) ...

选中了曾被取消选择的软件包 xinetd。

正在解压缩 xinetd (从 .../xinetd_1%3a2.3.14-7ubuntu2_i386.deb) ...

选中了曾被取消选择的软件包 tftpd。

正在解压缩 tftpd (从 .../tftpd_0.17-17ubuntu1_i386.deb) ...

正在处理用于 man-db 的触发器...

正在处理用于 ureadahead 的触发器...

正在设置 tftp (0.17-17ubuntu1) ...

正在设置 xinetd (1:2.3.14-7ubuntu2) ...

 * Stopping internet superserver xinetd                                                                              

[ OK ]

 * Starting internet superserver xinetd                                                                              

[ OK ]

正在设置 tftpd (0.17-17ubuntu1) ...

Note: xinetd currently is not fully supported by update-inetd.

      Please consult /usr/share/doc/xinetd/README.Debian and itox(8).

2、建立配置文件
在/etc/xinetd.d/下建立一个配置文件tftp
sudo vim tftp
在文件中输入以下内容:
service tftp
{

socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4

}

保存退出。

3、建立Ubuntu tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot -R

4、重新启动服务
sudo /etc/init.d/xinetd restart

至此Ubuntu tftp服务已经安装完成了,下面可以对其进行一下测试。(在当前目创建2.c,在tftpboot目录下创建1.c和2.c,且

tftpboot目录下2.c权限为777)

执行get命令时,保证tftpboot目录下的文件权限为777,

执行put命令时,必须先在tftpboot目录下新建一个和上传文件同名的文件且权限为777.

root@xf:/home# tftp 127.0.0.1

tftp> get 1.c

Received 7 bytes in 0.1 seconds

tftp> put 2.c

Sent 10 bytes in 0.0 seconds

tftp> quit

 

 

qt4编译

make confclean

./configure -xplatform /qws/xxxx  -embedded arm -static -little-endian/-big-endian

 

2、编译

安装ubuntu10.04,toolchain等相应环境。

export PATH=$PATH:/opt/4.4.3/bin/

编译x-loader

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517evm_config

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

./signGP x-load.bin

 

编译u-boot

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517_evm_config

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

 

编译kernel

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517_evm_defconfig

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

 

setenv bootargs 'mem=256M console=ttyS2,115200n8 noinitrd root=/dev/mtdblock4 rw rootfstype=jffs2 omapfb.rotate=1 omapfb.rotate_type=1 omap_vout.vid1_static_vrfb_alloc=y;'

 

3、利用busybox制作root file system

编译busybox

make menuconfig

(1)

(2)

(3)

make

make install

构建框架

cd /home/user/

mkdir rootfs

cd rootfs

mkdir –p dev lib etc sys proc mnt var tmp data

chmod 777 *

添加内容

/bin与/sbin目录

cp –rf busybox-1.17.2/_install/bin ./

cp –rf busybox-1.17.2/_install/sbin ./

/dev目录

mknod dev/console c 5 1

mknod dev/null c 1 3

chmod 777 dev/*

/lib目录

cp /opt/4.4.3/arm-none-linux-gnueabi/lib/* ./lib/

/etc目录

fstab:指明需要挂载的文件系统

inittab:init进程的配置文件

profile:用户环境配置文件

init.d目录:启动文件目录,该目录中有个名为rcS的文件,里面存放了系统启动时配置以及自启动加载的进程等。

/proc、/mnt、/var、/tmp目录

基本都是空目录。

/mnt一般用做临时挂载某个文件系统,比如说u盘。

/tmp用于存放临时文件,我挂载为了ramfs,用于下载文件,应用程序放置,内存文件系统访问速度相当快,不比nand,加快了访问速度,而且增强了nand寿命。

/data目录

挂载为了yaffs2文件系统,可以用于读写,用于存储一些需要保存的数据。

 

 

 

4、制作jffs2

mkfs.jffs2 -r ./rootfs -o rootfs.jffs2 -e 0x20000 -p=0x1000000 -n

 

5、烧写程序

uboot下烧写x-loader

mw.b 0x80000000 0xff 0x100000

tftp 0x80000000 192.168.0.100:x-load.bin.ift

nand erase 0 40000

nandecc hw

nand write.i 0x80000000 0 40000

 

烧写u-boot

mw.b 0x80000000 0xff 0x100000

tftp 0x80000000 192.168.0.100:u-boot.bin

nand erase 80000 1c0000

nandecc sw

nand write.i 0x80000000 80000 1c0000

 

烧写kernel

mw.b 0x80000000 0xff 0x500000

tftp 0x80000000 192.168.0.100:uImage

nand erase 280000 500000

nandecc sw

nand write.i 0x80000000 280000 300000

 

 

6、测试ramdisk

nfs

setenv bootargs 'console-ttyS2,115200n8 noinitrd rw ip=192.168.0.250:192.168.0.103:192.168.0.1:255.255.255.0::eth0:off eth=00:40:01:2B:64:60 root=/dev/nfs

nfsroot=192.168.0.103:/home/realtimedsp/workdir/am3517/filesys,nolock,mem=256M'

tftp

tftp 0x81000000 ramdisk.gz

setenv bootargs mem=256M console=ttyS2,115200n8 root=/dev/ram0 initrd=0x81000000,40M ramdisk_size=40960;

setenv bootcmd 'nand read.i 0x80000000 280000 500000;bootm 0x80000000'

boot

 

更新root

flash_eraseall -j /dev/mtd4

mkdir -p /mnt/nand

mount -t jffs2 /dev/mtdblock4 /mnt/nand

cd /mnt/nand

 

mkdir -p /mnt/data

mount -t jffs2 /dev/mtdblock5 /mnt/data

cd /mnt/data

 

tftp -r flashImage.tar -g 192.168.0.103

tar zxvf flashImage.tar

 

 

分区表

x-loader 0-0x80000

uboot    0x80000-0x240000

param    0x240000-0x280000

kernel   0x280000-0x780000

root      0x780000-0x1b80000

 

7、空板烧录

在使用flash V1.6烧录时,注意根据使用的flash型号修改以下的几个配置文件

因为我们使用的是Sumsung K9F1G08.故修改以下信息

omapflash2nd.txt

修改CUSTOM_AM35XX_BOARD dnld_startup_omap3_gp_1g.2nd

 

configuration_custom_am35xx.txt

烧写x-loader

memory NANDINFO1BITBOOT   driver Targets\Flash-Drivers\nand_onfi_16bit_8bit.bin parameters gpmc 0x6E000000 cs 0 address 0x30000000 bberase 0 onfi 0 bpp 2048 sbpp 64 ppb

 

64 bpl 1024 l 1 acv 0x22 f 0x0018 eccoffset 2

烧写uboot

memory NANDINFOSWECC      driver Targets\Flash-Drivers\nand_onfi_16bit_8bit.bin parameters gpmc 0x6E000000 cs 0 address 0x30000000 bberase 0 onfi 0 bpp 2048 sbpp 64 ppb 64

 

bpl 1024 l 1 acv 0x22 f 0x0018 swecc 1 eccoffset 40

烧写kernel

memory NANDINFOSWECC      driver Targets\Flash-Drivers\nand_onfi_16bit_8bit.bin parameters gpmc 0x6E000000 cs 0 address 0x30000000 bberase 0 onfi 0 bpp 2048 sbpp 64 ppb 64

 

bpl 1024 l 1 acv 0x22 f 0x0018 swecc 1 eccoffset 40

 

GPMC_CONFIG1_0       0x00000800 bit12-13是表示是8bit 还是16bit k9f1g08是8bit flash

 

f为什么是0x0018,因为bit0,为1时代表是16bit flash,为0时,代表8bit flash

 

出现如下错误提示时,请使用erase all ,在烧写每个软件时,请先擦除,再写入

hwecc 1bit ecc格式

Texas Instruments X-Loader 1.45 (Dec  8 2009 - 22:58:46)

ECC Failed, page 0x00080000

 

QT编译

http://processors.wiki.ti.com/index.php/Building_Qt

 

./configure -prefix /home/realtimedsp/workdir/Mike/qt-everywhere-opensource-src-4.6.2/MikeQT -embedded arm –release –opensource –static –fast -no-largefile -platform qws/linux-x86-g++ -xplatform qws/linux-am3517-g++ -depths 16 –no-phonon –no-phonon-backend –no-svg –no-webkit –no-javascript-jit –no-script –no-scripttools –no-declarative -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-accessibility –qt-gif -no-openssl -no-gtkstyle -little-endian

 

 

-qt-mouse-pc -qt-mouse-linuxtp

-qt-mouse-linuxinput -plugin-mouse-linuxtp -plugin-mouse-pc -fast

 

到目前为止,xloader,uboot,kernel,rootfs已经成功运行,但是网络与音频驱动还未调试成功,还需继续前进. 

加油,加油。争取早日把主板完整调好。

 

 

 

  

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条