本文共 2389 字,大约阅读时间需要 7 分钟。
一般嵌入式 会用 flash 作为 uboot 的容器所以烧写uboot 就是将 uboot 的二进制程序写入 flash 而烧写flash 需要 flash 驱动,所以烧写成功,肯定存在flash驱动.
1.将flash驱动及烧写算法通过jtag接口写入内存 2.将数据写入内存 3.执行算法将内存中的数据写入flash.
套件包括软件(jlink软件和jflash软件)和硬件(jlink) 1/硬件联通 2/jlink软件 //testwspeed //speed 115200 3/jflash软件 //配置 .jflash 文件 //connect program - 注意: 需要jlink套件 支持该soc,即有相应的 .jflash 文件,或者自己编写这个文件.
烧写器(直接和flash芯片交互)
烧写器大多需要将芯片吹下来放到烧写器上烧写,浪费时间和生命.但有些烧写器支持不用吹下来的烧写.
这个过程中 其实是分步骤的一般是 1.烧写器启动 2.将数据写入烧写器内存 3. 烧写器调用驱动(烧写器固件中)将内存中的数据写入flash.
所以要烧写器固件支持烧写改款flash
芯片厂商提供的软件
所以这个方式也需要芯片厂商提供的 bootrom 支持 什么 flash.肯定要支持接口驱动程序(例如串口)
这种方式不需要芯片厂商提供的 bootrom flash.但肯定要支持接口驱动程序(例如串口),另外uboot 肯定要支持该 flash
海思厂商 - hitool(通过串口) hitool是海思提供的一个工具,用来通过串口实现和海思的芯片交互 海思的芯片里面有一个bootrom 1/可以通过boot_sel、bootrom、NFBOOT_PIN 管脚配置从bootrom启动 2/启动之后,会对串口进行检测,如果有数据发来,会接收数据并写到sram,根据数据初始化sdram,然后初始化内存,并重定位uboot,然后从内存启动 3/主机发送flash烧写命令给从内存启动的uboot 4/uboot将内存中的数据烧写到flash 注意: 1/boot_sel、bootrom、NFBOOT_PIN配置从bootrom启动 2/uboot支持所对应的ddr,因为要烧写到sdram里面,所以肯定要初始化 3/串口一定保证能正常使用 4/uboot必须支持flash,因为要烧写uboot到flash
jz2440提供的工具 (通过jtag) - oflash软件 和 硬件openjtag - oflash 是基于s3c2440的jz2440做的通过jtag接口烧写软件的软件 - 要配套openjtag
loady
tftp
nfs
- dnw - dnw是三星推出的一个工具,通过usb传输文件的一个工具 - 使用三星提供的一个uboot启动,并设置其uboot等待usb接口来的数据 - 用dnw工具将uboot.bin从pc机上传送给板端的USB接口. - 板端接收usb接口的数据并放入内存,直至接收完成. - uboot将内存中的uboot.bin烧入flash
在linux的shell中烧写uboot/kernelmtd write命令是自定义的烧写flash命令。1///烧写uboot ,/dev/mtd0 是bootloader 的特定分区 mtd write u-boot.bin /dev/mtd0 2///烧写kernel, mtd1 是kernel的特定分区mtd write vmlinux.elf /dev/mtd13///重启reboot
转载地址:http://vtigi.baihongyu.com/