AM335x PSP User's Guide
/******************************************************************
* author: 卢浩
* time: 2012.09.11
* environment: ubuntu10.04LTS +TI AM3359
* kernel version: linux-3.2
* QQ Group For Technology Exchange:122879839
******************************************************************/
关于这本手册:
本文档介绍了如何安装和操作与德州仪器的AM335x平台的平台级支持包(PSP)。此PSP为AM3359提供了一个基础软件平台的开发,部署和执行。在这个平台上的应用程序的开发。
在此背景下,文档中包含操作的指令:
•安装此PSP
•基于此PSP的源码开发
该文件还提供了详细的描述,具体到AM3359这个平台上的驱动程序和模块。
重要信息:该文档的相关操作是基于AM335x EVM, BeagleBone board。
安装:
前提条件:
在开始安装的软件包之前,请确保满足以下系统要求:
•主机机器上运行的Windows版本如Windows XPSP3,如Ubuntu的Linux操作系统。
AM335x BeagleBone或EVM板
在Windows机器用于:
•运行CCSv5.1,这将是用于构建烧写环境。
•用烧写工具烧写uboot。
Linux主机用于以下:
•重新编译U-Boot和Linux内核。
•主机作为NFS服务器来给板子提供NFS根文件启动。
Windows或Linux主机中的任何一个都可以用于:
•提供TFTP服务器下载内核和文件系统映像通过以太网下载在U-Boot控制台下。
•运行一个串行控制台终端应用程序
PSP包 包括:
用一下命令在你的ubuntu下解压PSP包:
$ tar -xvzf AM335x-LINUX-PSP-MM.mm.pp.bb.tgz
目录内容如下:
\---AM335x-LINUX-PSP-MM.mm.pp.bb
|----AM335xPSP_Software_Manifest
+----docs
||----AM335x_PSP_MM.mm.pp.bb_Release_Notes.pdf
||----AM335x_PSP_User_Guide.pdf
| |----AM335x_Audio_Driver_User_Guide.pdf
||----AM335x_EDMA_Driver_User_Guide.pdf
||----AM335x_PSP_U-Boot.pdf
||----AM335x_PSP_McSPI_Driver_Guide.pdf
||----AM335x_PSP_MM.mm.pp.bb_Feature_Performance_Guide.pdf
||----AM335x_PSP_MMC_SD_Support.pdf
| |----AM335x_USB_User_Guide.pdf
||----AM335x_PSP_WDT_Support.pdf
||----AM335x_PSP_Flashing_Tools_Guide.pdf
+----host-tools
||----nand-flash-writer.out
||----mksd-am335x.sh
| +----src
| ||----nandflash-MM.mm.pp.bb.tar.gz
+----images
| +----examples
| | +----am335x
| | ||----edma_test.ko
| +----kernel
| | +----am335x
| | | |----uImage
| +----u-boot
| | |----am335x
| | ||----u-boot.img
| | | |----MLO
+----src
| +----kernel
| ||----ChangeLog-MM.mm.pp.bb
| ||----diffstat-MM.mm.pp.bb
| ||----kernel-patches-MM.mm.pp.bb.tar.gz
| ||----linux-MM.mm.pp.bb.tar.gz
| | |----ShortLog
| | |----Unified-patch-MM.mm.pp.bb.gz
| +----u-boot
| ||----ChangeLog-MM.mm.pp.bb
| ||----diffstat-MM.mm.pp.bb
| | |----ShortLog
| ||----u-boot-patches-MM.mm.pp.bb.tar.gz
| ||----u-boot-MM.mm.pp.bb.tar.gz
| ||----Unified-patch-MM.mm.pp.bb.gz
| ||----Readme.txt
| +----examples
| | |----examples-MM.mm.pp.bb.tar.gz
注意:MM.mm.pp.bb代表编号。TI会不断更新新的PSP包,请随时关注官方。
安装uboot:
$ cd$AM335x-PSP-DIR/AM335x-LINUX-PSP-MM.mm.pp.bb/src/u-boot
$ tar -xvfz u-boot-MM.mm.pp.bb.tar.gz
安装内核
$ cd$AM335x-PSP-DIR/AM335x-LINUX-PSP-MM.mm.pp.bb/src/kernel
$ tar -xvfz linux-MM.mm.pp.bb.tar.gz
文件系统:
PSP包里面已经包含测试文件系统
插件:
PSP包已经包含
交叉编译环境变量的设置:
打个比方,在/etc/bash.bashrc最后一行添加:
$ exportPATH=/opt/toolchain/arago/arago-2011.09/bin/:$PATH
烧写工具:
CCS系列烧写工具
Uboot:
详细请参考AM335x U-Boot User's Guide中文手册.pdf
Linux内核:
详细请参考
http://processors.wiki.ti.com/index.php?title=AMSDK_Linux_User%27s_Guide
从SD/MMC启动linux:
具体操作请参考AM335x U-Boot User's Guide中文手册.pdf
其中uboot下环境变量的设置:
U-Boot# setenvbootargs 'console=ttyO0,115200n8 root=/dev/mmcblk0p2 mem=128M rootwait'
U-Boot# setenv bootcmd 'mmc rescan; fatload mmc0 0x82000000 uImage; bootm 0x82000000'
从nand启动linux:
具体操作请参考AM335x U-Boot User's Guide中文手册.pdf
其中uboot下环境变量的设置:
当文件从nand启动:
U-Boot# nandread.i 0x81000000 280000 500000
U-Boot# setenvbootargs 'mem=128Mconsole=ttyO0,115200n8 noinitrd root=/dev/mtdblock4 rw rootfstype=jffs2ip=dhcp'
U-Boot# bootm 0x81000000
当文件系统从nfs启动:
U-Boot# nandread.i 0x81000000 280000 500000
U-Boot# setenvbootargs 'console=ttyO0,115200n8 root=/dev/nfsnfsroot=172.24.179.98:/nfs_root,nolock rw mem=128M'
U-Boot# bootm 0x81000000
从网络启动linux:
在安装TI SDK包的时候,已经为您搭建好所有的开发环境
用ramdisk作为文件系统时:
U-Boot# setenv autoload no
U-Boot# dhcp
U-Boot# setenv serverip <Server IPAddress>
U-Boot# tftp 0x81000000 uImage
U-Boot# tftp 0x82000000 ramdisk.gz
U-Boot# setenv bootargs 'mem=128M console=ttyO0,115200n8root=/dev/ram0 initrd=0x82000000,40Mramdisk_size=32768 ip=dhcp'
U-Boot# bootm 0x81000000
Nfs文件系统时:
U-Boot# print ethaddr <-- Check if MACaddress is assigned and is unique
U-Boot# setenv ethaddr<unique-MAC-address> <-- Set only if not present already, formatxn:yy:zz:aa:bb:cc
U-Boot# setenv bootcmd 'dhcp;run addip; tftp81000000 uImage;bootm'
U-Boot# setenv hostname <unique-hostname>
U-Boot# setenv addip 'setenv bootargs${bootargs}ip=${ipaddr}:${nfsserver}:${gatewayip}:${netmask}:${hostname}:eth0:off'
U-Boot# setenv autoload no
U-Boot# setenv nfsserver <nfs-server-ip><-- Make sure the same NFS server IP is used below
U-Boot# setenv bootargs 'console=ttyO0,115200n8root=/dev/nfs nfsroot=<nfs-server-ip>:<path-to-nfs-share>,nolock rwmem=128M'
U-Boot# setenv serverip <tftp-server-ip>
U-Boot# saveenv
U-Boot# boot
关于设备接口驱动,详情请见系列其他文档。