嵌入式开发时经常需要将代码写入到flash中去,到底如何写呢.偶用到过以下几种方法
1. 写一段在目标机上运行的代码,这段代码负责将bootloader和kernel等代码写入flash,这种方法在不同的目标机和不同的应用上具体实现可能不同.
在没有jtag的8位机上偶是写一段代码从串口接收数据,然后将接收到的数据写入flash的
指定位置.当然这段代码是通过开发器调试好,然后用flash烧录器烧入的,这段代码在系
统起动阶段个检查是否需要下载代码并完成烧录,因此以后就不用来回焊片子烧录
flash了 (即便修改系统起动代码也可以通过这段代码来完成,当然是要保证这段代码没
有坏掉的情况下了)
有jtag的情况就简单多了
在需要bootlaoder的系统中,在bootlaoder没坏的情况下可以用bootlaoder下载写入代码
2.通过jtag软件写入
3.写一段可以在目标机上运行的专门负责烧写flash的代码,通过调试器运行这段代码将需要写入flash的数据或代码写入flash的指定位置(系统复位向量地址位置或相关位置),与1的区别是这段代码不需要放到目标机上.
我个人比较喜欢1,3接合的方式.用jtag写入不需要目标机运行,但写入速度慢,需要目标机
有jtag接口和知道目标机的jtag移位寄存器定义,才能写软件实现通过jtag写flash. |