提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸科技的新产品、新方案的主要特点及应用!希望你能第一时间了解并快速用上好的方案和产品!
SSD202D双网口开发板烧录说明
烧录须知:
一、什么情况下需要单独使用ISP Tool工具重新烧录uboot:
(1)空片的情况下需要单独使用ISP Tool工具重新烧录uboot。
(2)系统崩溃无法进入uboot的情况下需要单独使用ISP Tool工具重新烧录uboot。
(3)更新uboot的配置后需要单独使用ISP Tool工具重新烧录uboot。
二、kernel以及rootfs烧录注意事项:
(1)kernel的烧录首先需要完成uboot的烧录,并且确定uboot能正常起来。
(2)其中kernel的烧录可以分成ETH烧录、U盘烧录和SD卡烧录三种烧录方式,选择其中一种即可。
(3)如需单独改动uboot、kernel或者rootfs时,请查看“更新uboot和更新rootfs”章节。
三、UBoot烧录
注意:uboot烧录使用ISP专用工具烧录,可以参考上手指南debug调试章节。
UBoot烧录所需的文件来自/images/boot/目录。
当flash没有烧过系统或者系统损坏时,可以先通过ISP烧录boot,然后再通过ETH,U盘或SD卡烧录完整的系统
1、没有烧录过系统或者系统损坏,使用ISP工具连接电脑和板子,直接上电即可。且我们需要借个跳线帽
2、如果板子已经烧录过boot或有系统的时候,使用debug工具连接开发板和电脑,电脑运行串口助手(putty,SecureCRT等,波特率参考上手指南),给开发板上电的同时,按住电脑的enter键进入boot,在uboot下输入debug后关闭串口助手,如下图所示。
3、提取文件解压tools/ssd201_ISP_5.0.15.rar到Windows中。
4、进入解压目录,双击运行Flash_Tools_5.0.15.exe
如果遇到下图这种情况,可能开发板烧录了系统,请按照Uboot烧录的第二点进行操作
如果遇到ISP烧录过程中提示连接不成功,可以先查看有没有关闭串口调试软件
清除flash数据
烧录GCIS.bin
烧录IPL.bin
烧录 IPL_CUST.bin
烧录 u-boot_spinand.xz.img.bin
Uboot一键烧录
FlashTool烧录工具支持一键烧录,可以通过事先配置好一个*.cfg为后缀的文本文件,如下:
GCIS.bin : 0x000000
IPL.bin : 0x140000
IPL_CUST.bin : 0x200000
u-boot_spinand.xz.img.bin : 0x2c0000
将配置好的文件放到images/boot目录下
运行Flash_Tools_5.0.15.exe
点击run就会依次烧录
ISP 烧录uboot遇到问题解决办法
注意:
无法连接设备(connect fail):
1、是否购买了我们的烧录器(debug Tool)。
2、是否安装ISP工具的驱动。
3、PC是否能正常识别到烧录工具。
4、我们的debug工具和调试串口接线比较特殊(TX-TX: RX-RX)
无法识别flash:
1、是否在uboot模式下输入debug,否则会出现识别不到flash的情况。
2、是否选择了正确的flash类型(例如spinor or spinand )。
3、重新断开debug tool 和电源,再次上电尝试。
4、config一栏下是否选择了USB连接方式。
5、换usb口,尝试连接。
6、重启电脑尝试连接。
7、换一台电脑试一下。
烧录失败
1、是否关闭了串口调试软件,否则会导致烧录失败。
2、可能debug 线过长TX_RX信号不好,导致烧录失败。
ETH烧录
ETH烧录是在uboot烧录成功后进行的,因此需要确保uboot是否烧录成功。
注意:烧录网络时需要用开发板连接网线,并且开发板和PC端在同一网段。
- 下载并解压tools/Tftpd32.rar并进入目录,双击运行ftpd32.exe,开启服务端,图中的步骤二为电脑IP地址,在win+r输入CMD,执行ipconfig查看电脑IP。
2、debug tool连接电脑,运行串口软件助手,板子上电,按住enter进入uboot,并设置ipadddr和serverip这两个环境变量,并确保板子和电脑正常通信。
//可以随机填写,但是要和电脑IP同一路由下
#setenv ipaddr 192.168.0.11
//电脑的IP地址
#setenv serverip 192.168.0.21
#saveenv
3、执行estar命令,开更新系统
ETH烧录原理
在我们使用Release_to_customer.sh编译完后,将生成images目录,其中一个文件名为auto_update.txt。
其内容如下:
我们再看看uboot.es和kernel.es的内容:
不难看出,更新uboot和kernel(其他分区也是如此)是通过tftp先下载镜像,再写到对应的分区。这些命令都是在uboot下直接执行的,也就是说,我们只需要执行对应镜像.es中的命令,即可更新对应的镜像。比如我们要更新kernel:
tftp 0x21000000 kernel
nand erase.part KERNEL
nand write.e 0x21000000 KERNEL${filesize}
run bootcmd
U盘烧录
- 在烧录前,我们需要先确认已经使用ISP烧录了Uboot,并且Uboot中包含了usbstar命令(默认已经包含)。执行以下步骤包含usbstar命令
//这个步骤在源码中去到boot的目录下执行
industio@industio$:cd boot
industio@industio$:make menuconfig
2、首先我们已经使用Release_to_customer.sh脚本成功编译出images目录,接下来通make_usb_upgrade_sigmastar.sh来制作U盘升级镜像
industio@industio$:cd project
industio@industio$:./make_usb_upgrade_sigmastar.sh
3、执行以上命令后,成功生成U盘升级镜像:project/image/output/images/SigmastarUpgrade.bin,将此镜像拷贝到U盘中,然后把U盘接到板子上(注意:U盘文件类型必须为FAT32)。
接着给板子上电并进入uboot,设置UpgradePort为1:
#setenv UpgradePort 1
#gpio ouput 14 1
#saveenv
4、最后执行usbstar,完成升级:
#usbstar
SD Card烧录
1、首先我们已经使用Release_to_customer.sh脚本成功编译出images目录,接下来通过make_sd_upgrade_sigmastar.sh来制作SD升级镜像:
industio@industio$:cd project
industio@industio$:./make_sd_upgrade_sigmastar.sh
2、执行以上命令后,成功生成SD升级镜像:project/image/output/images/SigmastarUpgradeSD.bin,将此镜像拷贝到SD卡中,然后把SD卡接到板子上。由于SD升级需要用到uboot中的sdstar指令,因此我们需要事先打开sdstar(默认已经打开):
industio@industio$:cd boot
industio@industio$:make menuconfig
3、接着给板子上电并进入uboot,设置UpgradePort为1
#setenv UpgradePort 1
#saveenv
4、最后执行sdstar,完成升级:
#sdstar
更新uboot和kernel
从上面ETH烧录原理分析得知,更新 uboot 和 kernel 只需要在 uboot 执行以下三步:
以更新uboot为例:
● Ubuntu查看uboot.es的内容
industio@industio$:cat images/scripts/\[\[uboot.es
● 依次执行uboot.es中的各条命令
注意一下命令是在uboot模式下执行(进入uboot模式:上电按住回车 or reboot按住回车)
注意是单条执行。
#tftp 0x21000000 uboot_s.bin
#nand erase.part UBOOT0
#nand write.e 0x21000000 UBOOT0 ${filesize}
#nand erase.part UBOOT1
#nand write.e 0x21000000 UBOOT1 ${filesize}
- 重新上电
#reset
更新rootfs
在调试阶段,我们常常需要更新 rootfs,比如添加某个工具(只需要拷贝对应的可执行文件、库和配置文件),这种情况不必要更新整个 rootfs 分区,可以使用U盘或SD卡拷贝工具相关的文件,并放到 rootfs 对应的目录。但使用U盘或SD卡操作较为繁琐,可以换成通过ssh来传输。
首先需要我们通过 buildroot 安装 ssh:
替换rootfs.tar为buildroot生成的,并将这个rootfs烧录到板子上。
查看密码有效期
#cat /etc/shadow
第三个字段为密码有效期,和系统时间有关系,先设置系统时间,再修改密码:
#date -s "2021-03-02 12:12:12"
配置ssh:
#adduser sshd
# passwd root
# vi /etc/ssh/sshd_config
#/etc/init.d/S50sshd restart
若有如下提示,无法创建/var/empty目录。(我们可以在文件系统中生成这目录,也可以开机启动创建目录)
#mkdir -p /var/empty
再次开启ssh,ssh就可以了。
#ifconfig eth0 up
# udhcpc
接着在windows上安装软件wincp,并打开连接到板子,密码为刚才设置的root的密码:
连接成功后,就可以拷贝文件了。