armboot
的烧写和内核文件系统的烧写是最基本的,也是最原始的操作。但是对于以后整块板的分析是很有好处的,为下一步外围模块的添加做好了准备工作。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
对于上面的烧写工作,我自己也有独到的看法。首先,为什么烧写
armboot
需要用
JTAG
?原因很简单,我们烧写的基本过程是这样的:先将需要烧写的镜像文件或者
bin
文件传送到内存的指定位置,然后再讲它拷贝到
flash
的指定位置(需要指定文件的大小)。在这里要注意,所有的
erase
操作和拷贝操作都是有一个前提,也就是在
armboot
运行的情况下,也就是说,如果我们将
flash
中的内容全部
erase
(擦除)之后,则这些擦操作将全部不能执行。所以,你要烧写
armboot
和内核文件系统,则必须先让
armboot
跑起来,这该如何解决呢?在这里,我们就借助
AXD
。先在串口进入
armboot
,此时已经将
armboot
拷贝到内存中运行,此时可以进行擦除操作了,将
flash
中的内容全部擦除。注意了这里是关键,假如现在系统重启,
flash
中什么内容都没有,自然所有的操作都失效,我们采用
JTAG
,将
armboot
导入到内存让它运行起来,这样的话,又可以执行擦除和复制操作了。现在我们先将内存初始化,再一次擦除
flash
,保证被擦除干净。这样的话,我们就可以继续烧写
room.bin
文件,其实这个文件时
burn-in
文件的镜像,完成的工作就是一些初始化,每次当系统启动之后,它和
armboot
都被调入内存运行,完成对系统的初始化。
在完成
armboot
和
room.bin
的烧写之后。接下来最重要的就是内核文件系统的烧写了。同样,步骤无非就是将映像文件先用
tftp
传送到内存,然后将
flash
里面固定的地址空间擦除,然后再将内存中的内容拷贝到
flash
,需要指定
flash
中的起始地址和文件的大小(文件的大小会在
tftp
的传输过程中显示)。
转载于:https://blog.51cto.com/decimal/354592