最近在海思3518e平台下烧写内核和文件系统,因为项目须要,须要运行海思SDK中的测试软件HiIspTool,不能使用精简后的文件系统,须要刷一个比较大的文件系统,但在此过程当中因为各类缘由,弄坏了一个板子,烧坏了一个uboot,因为要卸下SPI NOR FLASH,从新烧写实在太过麻烦,放弃了该板子。在此过程当中走了些弯路,在此记录下主要过程和注意事项,但愿可以提醒本身和刚如何这方面的新手,共勉!网络
1.板子上电时按住ctrl+c进入uboot模式ide
2.设置UBOOT模式的板子的IP和PC服务端的IP,使用Tftpd进行内核和文件系统的下载,比较快,若是使用串口下载的话,须要使用超级终端软件,很是慢。测试
setenv ipaddr 192.168.1.106 设置本板子的IPspa
setenv serverip 192.168.1.100 你的宿主机的IP,即开Tftpd的ipserver
设置后ping下确保网络通着。ip
三、内核烧写内存
mw.b 82000000 ff 140000; 在内存0x82000000后填充140000个11111111cmd
tftp 0x82000000 uImage_hi3518e_mini; 下载内核文件it
sf probe 0; 选在当前Flashconsole
sf erase 40000 140000; 擦除将要写入内核的1.4M空间
sf write 82000000 40000 140000; 将刚下载的内核写入到40000内存开始处,大小为1.4M,最后一个参数为偏移地址
我使用的内核大小为1.2M,给其分配了1.4M的空间,注意内核的大小不能大于给内核分配的空间大小,以上几条命令能够连在一块儿进行操做,中间以;分隔便可,这样效率比较高
四、文件系统烧写
mw.b 82000000 ff 620000;
tftp 0x82000000 rootfs_64k_mpp.jffs2;;
sf probe 0;
sf erase 180000 620000;
sf write 82000000 180000 620000;
给文件系统分配了6.2M的空间,在此没有分配其余的用户等等分区。
五、设置启动参数
setenv bootargs 'mem=28M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:256K(boot),1280K(kernel),6144K(rootfs)';
最重要的是mtdparts参数的设置,本人使用的内核支持mtd驱动,即内核经过mtdparts参数能够找到文件系统并建立MTD分区,在此boot、kernel、rootfs的大小必须是spi Block大小的整倍数,如本人使用的Block大小为64KB,另外还有128KB,256KB两种,注意三快分区的大小之和不要超过整个Flash的大小。
setenv bootcmd 'sf probe 0;sf read 0x82000000 0x40000 0x140000;bootm 0x82000000';
bootcmd在启动时执行的命令,0x40000 0x140000表明从0x40000开始处读取内核,大小为140000。
另:提供本人这次烧录的3518e内核和文件系统的下载
内核:
文件系统:
请进入个人资料 进行下载