固件烧录
本章节介绍一下固件烧录流程。这个烧录流程对于android和ubuntu来说是一样的。
如果已经下载了完整版的SDK,那么烧录工具在
tools\siengine\_downloader
下面
这里笔者选择在windows下烧录,因此使用的是siengine\_downloadtool\_V7.6.3.rar。将此文件解压,然后打开里面的siengine\_downloadtool.exe
此时按住板子的下载按钮,在这个位置
然后上电,就会进入下载模式
这时候用USB线,一端连接这个接口,一端接电脑
可以在电脑端识别出这样一个设备
然后在下载工具里面,单击此按钮
然后在SELECT FILE选中这个文件
然后在这个文本框输入oem setufs 0,再单击oem按钮
再点击 download按钮,即可开始下载,下载之后会有如下所示的信息
然后lun1 lun2 lun3 lun5都是按同样的方式下载,其中lun5,文件选择要选择这个
烧录之后,断电重启,即可进入系统
系统体验
首先开启调试串口,目前这个SE1000的R52和cluster0大核心 cluster1小核心各有一个调试串口,板子上面用一颗FT4232实现将一路USB拓展四路串口,用于接这几个调试串口
其中第二路串口是R52的,第三路串口是cluster1小核心的,第四路串口是cluster0大核心的
从这个启动也可以看出,bootloader部分是在cluster0大核心上运行的,然后到了BL31步骤才启动cluster1小核心,然后cluster1小核心是BL31直接跳转kernel
cluster0大核心则是会先进入uboot再进入kernel
R52端运行的应该是一个freertos系统
这个也不难猜测,cluster1小核心应该是用来做车机快速启动的,这个启动快到什么程度,可以从内核日志看出
内核启动到rootfs只用了222ms
修改以太网节点配置
这里看到有个缺陷,就是其中一个eth同时被cluster0 cluster1使用了,硬件上面应该是没有做隔离的,需要软件上面做逻辑,确定哪个核心使用这eth
按照一个资源平均分配的原则,可以将这个eth节点分配给小核心使用,大核心屏蔽掉
首先看下寄存器地址信息,进入src/kernel/arch/arm64/boot/dts/siengine目录,先查看
se1000\_eth.dtsi
文件,里面有
可以看到有冲突的是eth1,然后打开se1000\_aibay.dts和se1000\_aibay\_ap1.dts,将前者的eth1信息全部剪切到后者里面即可
完成之后重新构建lun0 lun3,再烧录,可以看到,两个cluster各正确控制了一个以太网