部署 BSP
BSP 镜像文件(本例为 SylixOSBSP.bin )可以下载到模拟器或目标设备运行。
下载到目标设备的方式根据设备的 bootloader 而定,最常见的下载方式是通过 u-boot 下载。下面通过 AM335X 系列开发板说明 u-boot 下载方式的通用流程。
u-boot 是一个普遍用于嵌入式系统中的 bootloader,初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终进入操作系统内核做好准备。u-boot 可以通过网络或设备存储器获取系统镜像并引导系统,用户可以通过 shell 与其交互,进而控制引导流程,以下为 AM335X u-boot 的 shell 命令列表。
说明:
本部分对 u-boot 的介绍是在 AM335X 平台,仅为了介绍 u-boot 的使用方法。
? - alias for 'help'
askenv - get environment variables from stdin
base - print or set address offset
bdinfo - print Board Info structure
bmp - manipulate BMP image data
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
dcache - enable or disable data cache
dhcp - boot image via network using DHCP/TFTP protocol
echo - echo args to console
editenv - edit environment variable
env - environment handling commands
exit - exit script
ext2load - load binary file from a Ext2 filesystem
ext2ls - list files in a directory (default /)
false - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print command description/usage
i2c - I2C sub-system
icache - enable or disable instruction cache
iminfo - print header information for application image
imxtract - extract a part of a multi-image
itest - return true/false on integer compare
led - led control
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing address)
mmc - MMC sub system
mmcinfo - display MMC info
mtest - simple RAM read/write test
mw - memory write (fill)
nand - NAND sub-system
nandecc - Switch NAND ECC calculation algorithm b/w hardware and software
nboot - boot from NAND device
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
scr - set extra parameters
setenv - set environment variables
sf - SPI flash sub-system
showvar - print local hushshell variables
sleep - delay execution for some time
source - run script from memory
test - minimal test like /bin/sh
tftpboot - boot image via network using TFTP protocol
true - do nothing, successfully
version - print monitor, compiler and linker version
AM335X 系列开发板引导步骤如下:
连接开发板串口、网络以及电源。使用串口工具打开对应串口,设置波特率为 115200。
复位开发板,按任意键进入启动选项界面,选择 0 进入 u-boot shell,如下图所示。
以下命令序列实现从 tftp 服务器下载镜像并引导执行。
OK335X# setenv loadaddr 0x80000000 //设置 tftp 文件下载地址 OK335X# setenv ipaddr 192.168.1.11 //设置设备 ip OK335X# setenv serverip 192.168.1.21 //设置 tftp 服务器 ip OK335X# setenv bootfile bspok335xs.bin //设置 tftp 文件,即 SylixOS 可执行镜像 OK335X# setenv bootcmd 'tftp; go 0x80000000' //设置启动命令 OK335X# save //保存设置
如需将系统镜像固化到内部 nand flash,则在 TFTP 下载完镜像后执行以下烧录命令,并修改引导命令从 nand flash 引导系统。
OK335X# nand erase c00000 300000 //擦除 flash OK335X# nand write.i 80000000 c00000 ${filesize}; //保存镜像到 flash OK335X# setenv bootcmd 'nand read 80000000 c00000 300000; go 0x80000000' //设置启动命令,从 nand flash 启动 OK335X# save //保存设置
AM335X 支持从 SD 卡更新系统,执行以下命令序列可实现 SD 卡更新功能。
nand erase.chip //擦除整片 flash mmc rescan //重新检测 SD 卡 fatload mmc 0 80A00000 MLO //从 SD 卡读取 MLO nand write.i 80A00000 0 ${filesize} //烧写 MLO 到 flash fatload mmc 0 80A00000 u-boot.img //从 SD 卡读取 u-boot 镜像 nand write.i 80A00000 800000 ${filesize} //烧写 u-boot 镜像到 flash fatload mmc 0 80A00000 bsp$(PLATFORM).bin //从 SD 卡读取操作系统镜像 nand write.i 80A00000 c00000 ${filesize}; //保存操作系统镜像到 flash setenv bootcmd 'nand read 80000000 c00000 300000; go 0x80000000' //设置启动命令,从 nand flash 启动 OK335X# save //保存设置
本文中镜像以 TFTP 方式下载,在执行上述步骤 3 命令序列后,在 IP 为 192.168.1.21 的计算机上运行 RealEvo-IDE,选择菜单 Tools > TFTP Server 打开 TFTP 服务器配置对话框,设置 bspok335xs.bin 所在文件夹,TFTP 默认端口为 69,一般情况不需要改变,如下图所示。
重启 AM335X 设备进入 SylixOS 系统。
AM335X 使用 cotex-a8 处理器,所以 Base Project 的通用设置中需要选择 cotex-a8 处理器。
RealEvo-IDE不内置AM335X的BSP模板,可以联系翼辉公司获取最新的BSP工程源码。
下载BSP完成后可以启动SylixOS,通过串口或 Telnet(需先通过串口设置 IP)登录目标系统可看到 SylixOS Shell 界面,Shell 的使用可参考附件中的《 SylixOS Shell 命令手册》。
BSP 镜像部署完成后需下载基础库和驱动模块文件,按照“部署 Base” 部署即可。