SSR931开发环境搭建
参考
1. 硬件准备¶
1.1. Demo板实物图¶
电源: DC 12V
调试串口: TTL电平,特率115200

图1-1 Demo板实物图
1.2. Debug tool连接¶
如下图所示,宿主机即PC机,负责程序编译;目标机即开发板,负责程序运行。两者间一般采用串口或网络进行连接。

图1-2交叉编译调试连接方式
注: Flash tool烧写boot需搭配Mstar debug tool作为串口连接工具。
**特别注意: **
Debug tool务必要换成 V2 以上的版本 (如下图), 才能避免有 5V的输入信号击毁demo板!

2. 编译环境¶
2.1. 安装Linux服务器¶
Ubuntu 或CentOS。
2.2. 安装交叉编译工具¶
glibc: gcc-11.1.0-20210608-sigmastar-glibc-x86_64_arm-linux-gnueabihf
uclibc: arm-gcc-11.1.0-sigmastar-linux-uclibc-1.0.39-gnueabihf
3. 编译¶
我们通过不同的配置文件来区分不同的flash启动方式(nor flash/spinand flash),toolchain(glibc/uclibc),文件系统格式和DDR。
编译前都需要先指定平台和交叉编译工具链:
export ARCH=arm glibc: export CROSS_COMPILE=arm-linux-gnueabihf- uclibc: export CROSS_COMPILE=arm-sigmastar-linux-uclibcgnueabihf-
3.1. 编译boot¶
Step 1:
cd boot
Step 2:
nor: make mercury6p_demo_defconfig nand: make mercury6p_demo_spinand_defconfig emmc: make mercury6p_emmc_defconfig
Step 3:
make clean;make -j8
3.2. 编译kernel¶
Step 1:
cd kernel
Step 2:
nor: make mercury6p_ssc025a_s01a_demo_defconfig nand: make mercury6p_ssc025a_s01a_demo_spinand_defconfig emmc: make mercury6p_ssc025a_s01a_emmc_defconfig
Step 3:
make clean;make -j8 make uImage //931平台必须执行这一步才能生成uImage.xz
3.3. 编译project¶
Step 1:
cd project
Step 2:
NOR glibc: make xvr_m6p.nor.glibc-11.1.0-squashfs.025A.1024x1024bga_demo_defconfig NOR uclibc: make xvr_m6p.nor.uclibc-11.1.0-squashfs.025A.1024x1024bga_demo_defconfig NAND glibc: make xvr_m6p.spinand.glibc-11.1.0-squashfs.025A.1024x1024bga_demo_defconfig NAND uclibc: make xvr_m6p.spinand.uclibc-11.1.0-squashfs.025A.1024x1024bga_demo_defconfig eMMC glibc: make xvr_m6p.emmc.glibc-11.1.0-squashfs.025A.1024x1024bga_defconfig make image -j4
Step 3:
get images from project/image/output/
3.4. 编译xvr_demo¶
Step 1:
sdk与project置于同级目录,先编译project(xvr_demo的编译会依赖project) cd sdk/verify/xvr_demo/
Step 2:
make
Step 3:
Get bin from sdk/verify/xvr_demo/out/app/
4. 烧写¶
请确定 Flash Tool 版本为5.0.18或更新的版本,Flash Tool会在版本发布的时候一起打包在Tool目录下。
4.1. nor flash burning¶
| Name | Offset |
|---|---|
| boot.bin | 0x00000 |
-
执行Flash tool,并且关闭UART terminal,否则可能无法正常“Connect”;
-
选择SPI tab, 点击“More”,并且Type选择“SPINOR”;
-
加载烧录文件“boot.bin”,base shift= 0x0000,点击“run”。

4.2. nand flash burning¶
spinand flash烧写需要选择“SPINAND”再连接,然后按照以下偏移地址依次烧写。
| Name | Offset |
|---|---|
| cis.bin | 0x00000 |
| cis.bin | 0x20000 |
| boot.bin | 0x140000 |
-
执行ISP tool。并且关闭UART terminal,否则无法正常'Connect'。
-
选择SPI tab, 点击'More' 并且选择类型为'SPINAND'。
-
加载image "cis.bin",并点击'Run'。

-
加载image "cis.bin", base shift= 0x20000, 并点击'Run'。

-
加载image "boot.bin", base shift= 0x140000, 并点击'Run'。

4.3. eMMC burning¶
-
demo板切换到emmc启动。

绿框是关于启动方式选择的丝印,红框为boot-strapping。根据丝印信息,切换boot-strapping为emmc启动。
-
运行烧写工具Flash tool。
注:
-
先把uart disable(boot下输入“debug”,kernel下输入“11111”),并断开串口终端,否则可能无法正常“Connect”;
-
flash tool要用5.0.23或其以上版本。
-
-
进入Emmc->By config选项。

-
根据实际需求配置Clock,Partition Config,Disable Part,Hw Reset Enable(通常默认即可)并选择烧录的bin文件(images/boot.bin)。

-
点击connect。

连接成功后状态栏显示“Connect Success”,log打印当前emmc boot bus width,同时bus width下拉框也显示为对应的bus width。
-
点击“Start Program”烧录。

烧录成功后状态栏显示Success,重启。
4.4. tftp烧写¶
服务端: PC
-
使用tftp工具指向image path,并选择正确的网卡。

-
连接板子的网口到PC端,连接debug串口工具到PC端,并检查连接的正确性。
客户端: Board
-
板子开机,长按回车,进入boot命令行。
空片烧录或IP设置变更请设置IP:
# set -f gatewayip 192.168.1.1 # set -f ipaddr 192.168.1.127 (设定FTP Client (板子)使用的IP) # set -f netmask 255.255.255.0 # set -f serverip 192.168.1.100 (设定FTP server (PC) 的IP) # set -f ethaddr xx:xx:xx:xx:xx:xx # saveenv
-
在UBOOT console下执行
estar即可自动透过ethernet烧录。# estar (烧写命令,也可以单独烧写某个镜像,如estar scripts/[[kernel.es)
**注: **
1. 为了保证烧录顺利,请保证PC和开发板处于同一网段;
2. 请采用静态方式固定分配IP,防止烧录时IP地址跳变;
3. 也可以使用独立网卡使PC端直连开发板,固定该网卡的内网IP地址,并按上述方法设定开发板。
5. 文件交互¶
目标机和宿主机的文件交互可以采用以下方法。
5.1. 网络挂载¶
如nfs、cifs挂载,下面简单介绍nfs挂载方法。
-
在PC上配置nfs server;
-
板子连上网络,配置ip(udhcpc).确认板子能ping通nfs server所在PC;
-
在板子上运行mount 命令,命令格式如下:
mount -t nfs -o nolock $(nfs_server_IP):$(server_mount_path) $(PCB_board_local_path)
5.2. tftp¶
工具: Tools/tftpb32
-
使用tftp工具指向文件路径
-
Get file:
tftp –gr $(filename) $(serverip) –b $(portid)
Put file:
tftp –pl $(filename) $(serverip) –b $(portid)
5.3. U盘¶
挂载U盘,例如:
mount –t vfat /dev/sda1 /mnt