关于海思3559A板子(润和出厂)启动的阶段性总结

写此文仅为我两天在网络上查资料查到崩溃的心路历程。因为浏览器标签页打开太多我需要把自己查的资料中有用的资料进行归类记录,此记录以海思启动流程为主线。

1. 海思开发板到手后首先是按照说明书进行启动,因为开发板上自带了一个串口插到电脑上就可以用(我的电脑之前装过CH340的驱动,如果是新电脑需要按照要求安装驱动,驱动类型与驱动芯片厂家有关,CH340类的驱动比较好用,之前使用过Profilic的芯片的串口,驱动不支持win10,看遍中外“有用的”教程我还是搞不定,浪费非常多的时间,串口还是选个稳定好用的就可)

2. 按照板卡说明,插入电脑调整波特率  默认115200,其它的默认(特殊情况的会修改),我采用的是下图设置(COM号根据插拔串口进入设备管理里面找到出现和消失的COM,驱动设备名称视芯片名字而定)

3. 进入系统后后面的事情原本我以为很顺利的但是“世间多歧路” 系统启动不了,重启复位多次,系统还是启动不了问题如下图所示:下图这种情况我全网搜(我感觉已经尽力了)只找到知乎的一位文章非常笼统的提到过,放下链接与图片海思3519芯片的姑且一看,有一篇具有参考性。但是系统的编译这可能是以后要用到的,我暂时不去深究,只想启动开发板。

 

海思芯片系统镜像烧写教程 - 知乎

最终这个问题我没有尝试去解决,因为我想的是直接重刷固件,重装系统就好了。

4. 关于重刷固件、重装系统,我是按照很简洁的说明书[润和软件的 板卡使用说明.pdf],实在是太简洁了让人想哭的简洁,我运行的说明书的第一行指令(此时已经通过串口进入 u-boot,此时其实就可以进行装系统了) 但是...                                                                                                              

tftp2emmc 0x2000 hoperun_fip.bin

这行指令运行结果是  tftp2emmc 命令不存在说明书不符合,咋弄呢。找到老师推的开发板的提供商的论坛,发现了同样的问题(19年提问)但是没人回答,这个团队不是做教程服务的,客服态度也并不好 ,与淘宝宣传的提供工程师一对一服务的宣传。想通个电话都这么费事,与宣传不符。

最终想法只能是自己想办法尝试解决了,我了解到我们现在已经进入的界面是 u-boot界面可以通过TFTP协议安装和下载系统,但是现在是 u-boot本身出问题了我想直接重刷尝试一下,于是百度找海思如何重刷u-boot然后找到一篇文章,但是最后我忽略的一个东西,烧录u-boot本身也有一些配置需要注意,本开发板 采用的emmc方式进行启动,我们要采用emmc(Embedded Multimedia Card)进行烧录

        插曲EMMC(一句话总结,集成=简单了,但是其灵活性相对降低+应用场景更窄了)+成本提升(元件成本)。

                简单地说,eMMC=Nand Flash+控制器+标准封装

      eMMC的设计概念,就是为了简化手机内存储器的使用,将NAND Flash芯片和控制芯片设计          成1颗MCP芯片,手机客户只需要采购eMMC芯片,放进新手机中,不需处理其它繁复的                NAND Flash兼容性和管理问题。

这里就是通过tftp协议向emmc介质里面写入 kernel 和 rootfs.img来安装系统

在给的资料里面有Hitool这款工具,这款工具可以进行u-boot烧写,工具的配置也是采用串口,此时需要退出Xshell的串口连接,因为串口冲突。连接后如图可选,只进行u-boot的烧写的话只需要串口就可以进行烧写。此时选取emmc烧写。xxx.xml是分区表文件,我直接加载分区表然后稍微修改名字如下,此处只能烧入uboot,不能烧入内核和系统,后续使用TFTP烧入内核和系统。

  需要断电重启开发板才能真正下载uboot进去,这里的重启跟一般的单片机下载程序需要reset一样,断电重启这操作也可理解。

这就回到的当初的指令 tftp2emmc

 刷完系统,依旧连接串口,然后help指令,惊奇的发现,这个神奇的指令出现了,可以运行了。 

5. TFTP的准备设置

本次我采用的两个tftp软件进行尝试,此处并没有进一步的探究,但是建议使用官方的TFTP软件我最终的成功还是源于官方软件Hitool自带。自己使用的软件(当年嵌入式课程使用的)是否有问题我不知,但是装系统成功的还是官方软件。

       以下是为TFTP而设置的静态IP地址,至于为什么想到这个,因为之前在CSNS高压电源机器(比较高端非常贵!,可能要10w以上,还带着Linux系统的)那台机器就不能自动获取IP地址,当初的高速数据读取的FPGA板在ping的时候也会出现奇怪的问题ping 不通,但是读取却没问题,有些事情就是很奇怪,只能通过SD卡写入静态IP地址然后通过静态IP读取高压电源,这段还是要感谢当初的黄博士,因为坑是他踩的,我只是个胜利见证者不过我记住了这个坑,我并没有进一步探究原因,但是这么做好用,值得尝试。事实证明也很有用。

IP地址配置完后 在Hitool端开启TFTP,注意选择目录,查看目录里面有  xxxfip.bin(内核),还有xxx.img文件,xxx.xml是分区表文件

 

 对于板端的IP使用以下指令进行设置,以下指令就可以了,注释的指令也可进行操作,可能会更加完善、

setenv ipaddr 192.168.1.10
#setenv ethaddr 00:10:ab:20:81:70
#setenv netmask 255.255.254.0
#setenv gatewayip 10.86.147.1
setenv serverip 192.168.1.9
#ping serverip 192.168.1.10      //确保网络畅通,此条指令未验证
saveenv

然后烧写kernel

tftp2emmc 0x2000 hihope_fip.bin
setenv bootcmd 'mmc read 0x0 0x44000000 0x2000 0xc000;bootm 0x44000000'

烧写Ubuntu

tftp2emmc 0xe000 rootfs.img
setenv bootargs 'mem=2048M console=ttyAMA0,115200
root=/dev/mmcblk0p3 rw rootfstype=ext4 rootwait
blkdevparts=mmcblk0:4M(boot),24M(kernel),65508M(system)
hardinfo=60050000000000000000000000000000'
saveenv

烧写完后reset指令就可以重新启动了。

问题存疑

1. 实际上第一次刷入系统的时候,依然出现最初的问题,kernel panic xxxx,并且伴随着之前没有出现的错误,关于I2C设备配置问题,这里有个猜测,I2C设备没有安装上板子,有可能是摄像头类设备需要I2C协议配置寄存器。所以出现I2C设备读取有问题。

2. 回顾第一次刷系统与第二次刷系统的区别,第一次出问题,我参考了 github的一篇文章,文章链接如下,里面用到了mmc rease,清除空间,我觉得问题有可能出在这,与原版说明书不同这两条。

#mmc erase 0xe000 0xdf2000
#tftp2emmc 0x0000  u-boot-hi3559av100.bin   

tftp2emmc 0x2000 hihope_fip.bin         #8192  = 1024 *  8,kernel的镜像
tftp2emmc 0xe000 rootfs.img    #57344 = 1024 * 56,文件系统的镜像

sophia-hxw.github.io/2021-03-23-板子环境搭建.markdown at f51e6db9881a07b39d8aadb0e3c33846597c4e5b · sophia-hxw/sophia-hxw.github.io · GitHub

3. 还有一个可能性是烧写uboot的时候使用了分区表  xxx.xml的导入,还有分区的命名,导入的时候也有地址的分配,名称的对应。影响可能性比较小

4. TFTP是否是官方的问题,非官方的TFTP可能在传输的过程中数据出错?(仅仅猜测)

5. 烧录完系统及时reset?(可能性极低)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值