最近在海思3518e平台下烧写内核和文件系统,由于项目需要,需要运行海思SDK中的测试软件HiIspTool,不能使用精简后的文件系统,需要刷一个比较大的文件系统,但在此过程中由于各种原因,弄坏了一个板子,烧坏了一个uboot,由于要卸下SPI NOR FLASH,重新烧写实在太过麻烦,放弃了该板子。在此过程中走了些弯路,在此记录下主要过程和注意事项,希望能够提醒自己和刚如何这方面的新手,共勉!

1.板子上电时按住ctrl+c进入uboot模式

2.设置UBOOT模式的板子的IP和PC服务端的IP,使用Tftpd进行内核和文件系统的下载,比较快,如果使用串口下载的话,需要使用超级终端软件,非常慢。

setenv ipaddr    192.168.1.106  设置本板子的IP

setenv serverip  192.168.1.100  你的宿主机的IP,即开Tftpd的ip

设置后ping下确保网络通着。

3、内核烧写

mw.b 82000000 ff 140000; 在内存0x82000000后填充140000个11111111

tftp 0x82000000  uImage_hi3518e_mini; 下载内核文件

sf probe 0;    选在当前Flash

sf erase  40000  140000;  擦除将要写入内核的1.4M空间

sf write 82000000 40000 140000;  将刚下载的内核写入到40000内存开始处,大小为1.4M,最后一个参数为偏移地址

我使用的内核大小为1.2M,给其分配了1.4M的空间,注意内核的大小不能大于给内核分配的空间大小,以上几条命令可以连在一起进行操作,中间以;分隔即可,这样效率比较高

4、文件系统烧写

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的空间,在此没有分配其他的用户等等分区。

5、设置启动参数

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内核和文件系统的下载

内核:

文件系统:

请进入我的资料 进行下载

转载于:https://blog.51cto.com/cto521/1584602

arm下如何烧写指定分区大小的内核和文件系统相关推荐

  1. 安霸ARM S2L板子烧写

    最近工作中,因为用到了安霸ARM S2L板子的虚拟内容,把mtdblock5和mtdblock6分区都用作了swap分区增加虚拟内存.结果程序在S2L上运行时,电脑蓝屏了,再重新上电启动后,板子无法正 ...

  2. 蓝宙ARM仿真器固件烧写说明

    蓝宙ARM仿真器固件烧写说明 ARM下载器本身是采用CMSIS-DAP协议的,这个协议对于ARM单片机的使用用户来说可能比较陌生,如果大家还使用不习惯也可以将下载器刷写为我们常用的JLINK下载器,不 ...

  3. 基于linux的ARM设备升级,烧写Nand flash总结

    一.uboot 模式下: 1.SD烧写: if fatload mmc 0 0x100000 rootfs.cramfs; then nand erase 0x1600000 0x1400000;na ...

  4. 解决linux系统CentOS下调整home和根分区大小

    目标:将VolGroup-lv_home缩小到20G,并将剩余的空间添加给VolGroup-lv_root 1. 首先查看磁盘使用情况 ``` [root@localhost ~]# df -h 文件 ...

  5. 解决linux系统CentOS下调整home和根分区大小的方法

    目标:将VolGroup-lv_home缩小到20G,并将剩余的空间添加给VolGroup-lv_root 1.首先查看磁盘使用情况 [root@jb51.net~]# df -h 文件系统 容量 已 ...

  6. centos标准分区调整大小_去繁化简解决CentOS下调整home和根分区大小的方法

    一.知识点扫盲 Cent0S 7默认启用LVM2(Logical Volume Manager),把机器的一块硬盘分为两个区sda1和sda2,其中分区sda1作为系统盘/boot挂载,少量空间:sd ...

  7. centos标准分区调整大小_CentOS下调整home和根分区大小的方法

    目标:将VolGroup-lv_home缩小到100G,并将剩余的空间添加给VolGroup-lv_root 1.首先查看磁盘使用情况[root~]# df -h 文件系统 容量 已用 可用 已用% ...

  8. Linux下imx6dl开发板从镜像的烧写、内核源码编译到第一个驱动运行的详细步骤

    文章目录 前言 一.对开发板烧写镜像 1.镜像烧写 2.串口测试 二.搭建交叉编译环境 1.Ubuntu下搭建交叉编译环境 2.WSL下搭建交叉编译环境 三.编译Linux内核源码 1.Ubuntu下 ...

  9. CentOS下调整VolGroup-lv_root分区大小

    APP与后台服务突然无法上传图片及浏览不了,经查看后原来是根分区已经100%了 解决Linux系统CentOS下调整home和根分区大小 目标:将VolGroup-lv_home缩小到20G,并将剩余 ...

最新文章

  1. python分类流程_文本分类指南:你真的要错过 Python 吗?
  2. 一个关于导出excel模板的实例
  3. Ubuntu14.04中安装ROS Indigo(亲测)
  4. c语言计算机动画生成原理,计算机组成原理动画演示系统 - 源码下载|多媒体|源代码 - 源码中国...
  5. ORACLE数据库的连接
  6. NET对象的XML序列化和反序列化
  7. 运维日常操作--linux命令
  8. JMeter脚本录制-快速上手篇
  9. 全志F1c100s主线linux入坑记录 (2)芯片超频
  10. Android包管理机制2 PackageInstaller安装APK
  11. 打开SharePoint时遇到“Server error: http://go.microsoft.com/fwlink?LinkID=96177”
  12. Ceph 知识摘录(Ceph对象存储网关中的索引工作原理)
  13. oracle通过正则验证香港、澳门、台湾的身份证和护照
  14. Flink问题记录:A raw type backed by type information has no serializable string representation. It ....
  15. R语言如何做独立样本t检验
  16. 博图注册表删除方法_回收站被清空文件删除的恢复方法
  17. java 取整符号_浅析java中的取整(/)和求余(%)
  18. 超实用的linux服务器vps测速脚本看看你的服务器到底跑多少带宽
  19. android系统手机流量控制方法,如何实现Android手机流量的控制
  20. 汽车车灯产业链全景图

热门文章

  1. ubuntu18.04 mariadb start失败
  2. 1.1.2 以Web Host方式寄宿Web API
  3. iOS tableviewcell重用机制避免重复显示
  4. 如何给你的为知笔记添加一个漂亮的导航目录
  5. 20条Linux命令面试问答
  6. [游戏模版18] Win32 五子棋
  7. Mercurial 版本控制服务器(Web Server)的搭建
  8. 与老外交谈的常用句子
  9. 靠谱推荐 | 我读完了所有数据产品经理的书?!
  10. 我对香港数字生活的一些观察