【背景】
1、S3+SPI NAND,只预留了USB接口
2、当前是通过USB接口,使用PhoenixUSBPro进行在线量产烧录
【问题】
1、量比较大,而,PhoenixUSBPro在USB端口发生变化时,会弹窗,需要手动处理,做不到全自动,效率低
2、有不少库存需要做升级,须在烧录前备份出厂数据,在烧录后恢复出厂数据,而,PhoenixUSBPro在烧写完成的接口未提供,我们无法在烧录完成后准确进行下一步恢复出厂数据操作。
【需求】
1、求填坑。
离线
这个问题用USB烧录始终不好解决, 不如换一种思路吧, 做一张特殊的TF卡,从这种TF卡启动, 自动烧录,烧完屏幕提示,或者蜂鸣器提醒,这种效率是不是高很多,能满足需求吗?
产品上只留了USB口,这个怎么破解?
离线
找到个linux版本的: https://github.com/parasyte/awutils 。不知道支持不支持S3。
离线
3. V3s/S3/f1c100s通过USB启动Linux,并把SD NAND/TF卡挂载为U盘, 可以dd或Win32DiskImager任烧写
可以接受这种烧录方式吗?
如果可以的话,就没问题。
我正在看能否让小白用户做到无感升级。我先试试。
离线
离线
改造一下编程的软件, 应该问题不大, windows配合 Win32DiskImager 烧录。
原理就是, 先通过usb(sunxi fel)下载u-boot/linux到板子上运行, 并且把 spi nand模拟成一个u盘, 然后用Win32DiskImager二进制模式写这个U盘。
上面这些工具都是开源的, 你整合整合, 应该问题不大。
嗯呐。下载u-boot到板子上时,提示如下错误信息,是啥原因?我有安装ADB驱动。
"bin\sunxi-fel.exe" -p uboot u-boot-sunxi-with-spl.bin.S3 write 0x41000000 zImage write 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb.PG9 write 0x41900000 boot_fel_initrd.scr write 0x41A00000 rootfs.cpio.gz.uImage
ERROR: Allwinner USB FEL device not found!
"download complete! now run linux ..."
离线
我的设备,只有SPI NAND FLASH,把BOOT下载到板子上,是否就意味着,下到了SPI NAND FLASH上?如果是,接下来还能对NAND分区并烧录?
另外,既然可以把BOOT 下到板子上,那么,是否可以把IMAGE直接写到NAND上就可以了?
离线
我的意思就是做一个正常的,能启动的 spi nand flash 镜像 bin文件,然后通过上面说的Win32DiskImager一次烧到模拟u盘文件。
linux下用dd命令会更灵活。
"bin\sunxi-fel.exe" -p uboot u-boot-sunxi-with-spl.bin.S3 write 0x41000000 zImage write 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb.PG9 write 0x41900000 boot_fel_initrd.scr write 0x41A00000 rootfs.cpio.gz.uImage
晕哥,
这个地址,是内存地址,还是哪里的地址? 0x41000000
另外,烧写成功了,但是用Win32DiskImager,貌似找不到device。
离线
上面都是内存地址。
你的usb id脚和小智s3的板子不同,他的是PG9,你要么改下设备树,要么飞线。
求科普 设备的树修改:sun8i-v3s-licheepi-zero-dock.dtb.PG9
离线
反编译设备树,把PG9那个地方改成你的io口,然后再编译,我没这么干过,只是建议。
;----------------------------------------------------------------------------------
[usbc0]
usb_used = 1
usb_port_type = 0
usb_detect_type = 1
usb_id_gpio = port:PG09<0><1><default><default>
usb_det_vbus_gpio = "axp_ctrl"
usb_drv_vbus_gpio = port:PG08<1><0><default><0>
usb_restrict_gpio =
usb_host_init_state = 1
usb_restric_flag = 0
usb_restric_voltage = 3550000
usb_restric_capacity= 5
usb_regulator_io = "nocare"
usb_regulator_vol = 0
usb_not_suspend = 0
离线
你这个也是PG9, 可能都是照搬索智的参考电路吧, 你有没有用 PMU 芯片, PG8控制了什么?
PG9直接上拉3.3V,PG8什么都没接。有PMU:AXP203
离线