在linux内核移植过程中,需要将linux内核烧写到开发板上。
基本的步骤是:
1、将bootloader通过J-TAG烧写到开发板上,而一般bootloader与硬件密切相关,硬件厂商都会提供这样的板级支持包。
不同的bootloader会提供不同的bootloader命令,一般都是可以通过help进行查看的。
2、将linux内核通过tftp传输到RAM中,注意在宿主机-开发板的开发环境中,PC主机充当的是tftp的服务器,因为linux内核是通过PC机下载到板子上的,所以开发板充当的是tftp的客户端。为了建立tftp协议的连接,一般都是设定主机的IP地址和开发板的IP地址处于同一个网段,开发板的IP地址一般都是可以通过bootloader命令完成的。
例如:tftp的传输命令:tftp zImage。然后就开始下载了。
其实原理是这样的:写入tftp命令后,相当于开发板向tftp服务器软件(安装在PC端)发送了tftp请求,tftp服务器做出回应后,就把数据下载到开发板上。这一过程中,首先是把下载的镜像文件放在了RAM,也就是内存中,为了能够下次启动kernel而不必再次下载,就需要将镜像文件烧写到永久的存储器,比如NandFlash,这样下次启动的时候就可以从NandFlash中读取镜像文件到内存中了。一般bootloader会提供像nandwrite这样的命令,用于烧写到flash中,一般要求参数为镜像文件在内存中的起始地址、烧写到Flash中的起始地址、实际的文件大小(这个一般在下载到内存后,会显示出来的)。
3、在Android内核移植中,还需要将其他的一些文件系统镜像下载到开发板上,如根文件系统(rootfs)、系统文件系统(system)。使用的方法和烧写内核的过程是基本一样的。
烧写过程中,一般会用到的软件有:
tftp服务器软件、终端软件、J-TAG软件。