所述的ARM的指的是CortexA系列以及ARM9,ARM11,跑Linux操作系统。对于CortexM系列并不一定完全适用。谈到ARM以及启动和烧写等方面,首先我们要明确一下几个关键词:Uboot,Cmdline,启动方式选择,文件系统格式,存储介质,如NAND,EMMC,SD卡等。
启动方式:
-
一般CPU都可以配置为从多种介质启动,比如SPINorFlash,NAND,EMMC,SD卡,U盘等。
-
大致原理是CPU内部ROM有一段固化的启动代码,根据CPU配置引脚,判断启动位置,然后从外部介质读取数据启动。
-
启动介质的前一部分代码的作用必须是:初始化硬件参数,自我拷贝。
-
因为CPU内部RAM很小,只能读取部分启动介质的数据到内部RAM运行,所以Uboot前一部分的工作是将自身剩余部分拷贝到外部RAM中,然后加载运行。
Uboot:
-
主要作用:引导Linux系统,指定从存储介质的哪个位置读取Kernel,并传递启动参数。
-
其他功能:支持存储控制和网络命令,主要用于引导和系统升级。
-
常用操作:TFTP,NAS,Flash操作,UBI操作,Setenv,boot等。
-
升级流程:使用TFTP从主机下载Kernel和文件系统,使用Flash命令烧写到存储介质,然后设定启动参数,引导系统启动。
-
调试流程:
-
使用NAS从主机加载文件系统,进行在线调试,快捷方便。
-
设定从SD卡启动,加载Kernel和文件系统进行调试。
暂无评论