使用Serial Flash Utility烧写ubl 和uboot
- 格式:doc
- 大小:255.50 KB
- 文档页数:6
OMAP-L138的u-boot烧写所需软件:(这里使用合众达公司提供的开发套件)1)CCS3.3Version3.3.82.132)DSP仿真器SEDD-XDS560V23)SecureCRT6.5所需文件:1)nand-writer_ccs33.out2)OMAPL138_ARM.gel3)ubl-nand.bin4)u-boot.bin首先在光盘资料下找到相应的软件,安装好CCS3.3和SEED-XDS560V2仿真器驱动。
连接好硬件,包括电源,串口,网口(网线要使用交叉网线),JTAG口。
第一步打开开发板的电源,然后打开CCS3.3setup开发环境。
如下图所示:选择对应的仿真器驱动,在Family下找到OMAP系列,在Platform 下找到SEEDXDS560V2系列下的OMAP-L138板子,如下图所示:点击Add按钮,再点击Save&Quit按钮保存退出。
如下图所示:第二步启动CCS Studio,仿真器连接正确将进入到以下界面,此时双击ARM9_0选项,进入开发环境界面。
第三步进入CCS开发界面后,如下图所示:此时仿真器并未连接上,需要点击Debug菜单下的connect选项,当仿真器连接上后,左下角将会提示target已经连接上。
第四步加载OMAP-L138_ARM.gel文件。
在选项上点击右键,选择Load GEL选项,选择所在路径(资料光盘中可以找到)的OMAP-L138_ARM.gel文件。
如下图所示:第五步烧写UBL(user Boot Loader)。
在CCS的菜单File栏下找到Load Program选项,弹出如下界面:在对应的路径下找到nand-writer_ccs33.out文件,加载完成之后,点击Debug菜单下的Run(快捷键F5)选项。
在弹出的对话框中输入:armais,然后点击OK按钮,如下图所示:紧接着继续回弹出如下对话框,输入ubl-nand.bin的路径,然后点击OK按钮,如下图所示:等待ubl-nand.bin烧写完成,出现如下图所示则表示烧写成功。
如何烧写Uboot
预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制
基于ARM 的系统开发的初期,烧写FLASH 是必不可少的步骤。
特别是bootloader的烧写,非常重要,有了bootloader其他的程序就可以通过串口或者网口进行烧写了。
我们提供的bootloader是u-boot 1.1.1版本
用并口延长线连接 JTAG到开发板 JTAG接口和电脑并口(接上并口线而不连接开发板JTAG板子上面的电源指示灯亮,接上开发板JTAG灯熄灭,开发板上电后指示灯又亮)
安装好 flashpgm软件后,进行如下配置
点击菜单File-Open选择TXMCU(fk).ocd文件。
Ocd文件是一个硬件系统的配置文件,设置了CPU,FLASH类型,FLASH接口的位宽等具体的参数,可通过FlashPgm生成。
光盘上已经带有一个已经配置好的TXMCU(fk).ocd文件。
在光盘,如图所示
配置好.Ocd文件后,点击FlashPgm软件左下角“Flash ID”按钮检测一下Flash ID,
以测试JTAG 连接是否正常。
如果能够正常读取出来,表明JTAG 连接没有问题,如下图:
点击Program按钮,在出现的对话框中选择编译好的u-boot文件(ELF格式的)『在光盘里』,然后选择在编程前先擦除选项,其他的3 个地址不需要修改。
点击Program。
首先将会擦除相应的Flash 区域,然后编程和校验。
进度条将显示当前编程进度。
如下图所示:。
u-bootUBIFS移植及文件系统烧写imx515 uboot UBIFS移植及android UBIFS文件系统烧写作者:longfeey1.1 Uboot UBI的移植关于uboot的UBI的移植几乎没有说明介绍,移植首先要保证你的flash驱动能够跑起来,我是在nand flash 上跑的UBI。
刚开始的时候我也没有什么头绪,只能够从uboot的readme开始查找一些蛛丝马迹。
- MTD Support (mtdparts command, UBI support)CONFIG_MTD_DEVICEAdds the MTD device infrastructure from the Linux kernel.Needed for mtdparts command support.CONFIG_MTD_PARTITIONSAdds the MTD partitioning infrastructure from the Linuxkernel. Needed for UBI support.因此,要UBI支持首先得要MTD支持,因此在配置文件中要添加以上两项的定义。
要移植UBI还要添加:#define CONFIG_CMD_UBIFS#define CONFIG_CMD_UBI总的关于UBI的部分是以下几个宏:#define CONFIG_CMD_UBI#define CONFIG_CMD_UBIFS#define CONFIG_CMD_MTDPARTS#define CONFIG_MTD_DEVICE#define CONFIG_MTD_PARTITIONS#define CONFIG_RBTREE#define CONFIG_LZO同时要给NAND建立个默认的分区,方便以后操作。
分区如下:#define MTDIDS_DEFAULT "nand0=nand0"#define MTDPARTS_DEFAULT "mtdparts=nand0:0x100000@0x0(u-boot),0x300000@0x120000(kernel),0x7b00000@0x420000(rootf s),-(reserved)"#define MTD_ACTIVE_PART "nand0,2"以上的配置都在uboot_imx/include/configs/mx51_vdphone.h 文件中进行配置。
uboot中烧录方法
在嵌入式系统开发中,U-Boot是一个常用的引导加载程序,用
于引导嵌入式设备的操作系统。
烧录U-Boot到嵌入式设备通常涉及
以下几种方法:
1. 串口烧录,通过串口连接嵌入式设备和主机,使用串口通信
工具(如minicom、putty等)将U-Boot固件通过串口传输到设备
的存储器中。
这种方法需要设备具备串口接口,并且需要主机具备
串口通信工具和相应的串口线缆。
2. TFTP烧录,使用TFTP(Trivial File Transfer Protocol)通过网络将U-Boot固件传输到嵌入式设备的存储器中。
在设备启动时,U-Boot会尝试从网络上的TFTP服务器下载固件。
这种方法需
要设备处于能够访问网络的环境中,并且需要在网络中设置好TFTP
服务器。
3. SD卡烧录,将U-Boot固件写入SD卡,然后将SD卡插入嵌
入式设备,设备在启动时会读取SD卡中的U-Boot固件。
这种方法
需要主机具备SD卡写入工具,如dd命令或Win32 Disk Imager等。
4. JTAG烧录,使用JTAG(Joint Test Action Group)接口连接嵌入式设备和主机,通过专用的JTAG调试器将U-Boot固件烧录到设备的存储器中。
这种方法通常需要专门的硬件设备和相应的调试软件。
在选择烧录方法时,需要根据具体的嵌入式设备和开发环境来决定,确保选择的方法能够有效、安全地将U-Boot固件烧录到设备中,并且需要注意备份设备中原有的U-Boot固件以防止意外情况发生。
希望这些信息能够帮助你更好地理解在U-Boot中的烧录方法。
Luminary ARM 芯片bootloader用法出厂的芯片内置serial flash loader ,可以使用UART或者SSI来进行烧录,当然使用JTAG 也可以。
只要被使用过,serial flash loader 就不存在了。
所以,如果你的芯片不是新的,又想通过UART来进行更新软件,必须要有Bootloader在芯片里头。
如果是新的芯片,最好先把BOOTLOADER烧到芯片的0x00~0x800位置。
以后的用户应用程序烧到0x800以后的位置。
如果芯片不是新的,在芯片里头一定要有bootloader 才可以通过UART进行应用程序的更新。
而且更新用户应用程序的时候不要察除bootloader 。
如果芯片不是新的,又没有Bootloader , 那么需要用jtag 先把bootloader烧到芯片0x00开始的位置,接着才可以通过uart 来进行update chip .当芯片里头已经有Bootloader ,并且有用户程序了,只要位址是对的,上电后芯片先读bootloader 然后检查用户程序是否可用,如果可用就跳转到去执行用户程序了。
所以在bootloader 和用户程序都存在的情况下要想通过uart 进行芯片的自编程或者说自更新,就需要在你的用户程序上用事件触发调用bootloader :int main(void){//// Set the clocking to run directly from the crystal.//SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |SYSCTL_XTAL_6MHZ);// 这里使用的时钟是直接从外部晶振取,没有enable PLL 。
实际应用中是经常要PLL的//// Enable the UART and GPIO modules.//SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);//// Make the UART pins be peripheral controlled.//GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);//// Configure the UART for 115,200, 8-N-1 operation.//UARTConfigSetExpClk(UART0_BASE, 6000000 , 115200,(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |UART_CONFIG_PAR_NONE));//注意这个参数6000000 ,如果没有enable PLL 就是对的,//但如果有enable PLL那么这里应该改一下。
使用SerialFlashUtility烧写ubl和uboot需要文件(以SPI flash启动为例):(1)ubl-spi_ais.bin(通过AISgen for D800K008工具进行格式转换)(2)u-boot.bin在windows下运行command prompt进入sfh_OMAP-L138.exe所在的文件目录设置S7管脚如下1、Erase the target flash type - This will erase the entire contentsof the flash.o sfh_OMAP-L138.exe -erase在按下板子reset键后2、Flash the memory with a single application image - This will placean application image at address 0x0 of the flash. This must be an AIS format binary, which can be created with the AISgen utilities bundled with the Bootloader User Guide.o sfh_OMAP-L138.exe -flash_noubl在按下板子reset键后3、Flash the memory with a UBL and application image - This will placea UBL at address 0x0 of the flash and an application image, suchas u-boot, at address 0x10000. In general, a UBL is not required, and this mode is only used when restoring the defaultflash contents, as explained in the following section.o..\sfh_OMAP-L138.exe -flash按下板子reset后Ubl和uboot烧写完后,需要将S7开关设置为如下然后重新reset,则打开Hyper terminal,可见表示下载成功,uboot可以成功启动注:/index.php/Serial_Boot_and_Fla sh_Loading_Utility_for_OMAP-L13 8Help:sfh_OMAP-L138.exe 的命令格式编译UBL:生产ubl-spi.bin和ubl-spi.out只有ubl启动(或uboot不能正确启动),串口显示如下:Booting with TI UBLDevice OPP (300MHz, 1.2V)。
烧写U-BOOT该部分内容在Windows 7上测试通过。
1-1-1固化启动代码到SD卡中插SD卡到PC机中,打开SD_Writer,如下图,依次点Scan、Format,Select Boot选mmc。
再点击Program。
成功后把由Uboot源码生成的u-boot.bin文件拷到SD卡中。
1-1-2设置开发板从SD卡启动1.将SD卡插入到TE6410开发板的SD插座中;2.设置开发板的拨码开关SW2,让开发板从SD 卡启动:SW2引脚号Pin 8 Pin 7 Pin 6 Pin 5 Pin 4 Pin 3 Pin 2 Pin 1 引脚定义SELNAND OM4 OM3 OM2 OM1 GPN15 GPN14 GPN13 Nandflash启动 1 0 0 1 1 X X X Norflash启动X 0 1 0 1 X X XSD卡启动 1 1 1 1 1 0 0 0 拨码开关拨到“OFF”位置上表示“0”,另一侧表示“1”。
3.连接好开发板的串口线,USB线,电源线,打开dnw软件(位于用户基础资料光盘的“实用工具”文件夹中,将其拷贝到硬盘上运行)。
点击菜单“Serial Port Connect”,显示连上串口。
连接成功后,标题栏会显示[COM1,115200bps]图表错误!未找到引用源。
.14.打开开发板电源开关,可在DNW窗体上看到SDboot启动信息:图表错误!未找到引用源。
.21-1-3通过设置SW2引脚号Pin 8 Pin 7 Pin 6 Pin 5 Pin 4 Pin 3 Pin 2 Pin 1 引脚定义SELNAND OM4 OM3 OM2 OM1 GPN15 GPN14 GPN13 Nandflash启动 1 0 0 1 1 X X XNorflash启动X 0 1 0 1 X X XSD卡启动 1 1 1 1 1 0 0 0恢复nand启动,在提示时,按下空格键(其他键也可),即可看到所期待的页面:。
uboot烧写命令--yaffs、jiffs和ubifs如果要烧写的镜像的格式是yaffs2或者yaffs格式的,那么在往Nand Flash中烧写该镜像是必须采⽤nand write.yaffs,⽽不能采⽤nand write: nand write.yaffs 0x82000000 0 13cb00将内存地址0x82000000处的内容写到Nand Flash起始地址为0的地⽅,烧写⼤⼩为13cb00 注意:烧写的⼤⼩应该为镜像的实际⼤⼩其中内存的地址(在本例中是0x82000000)必须要4字节对齐,否则会出现如下错误:nand write.yaffs 0x825363b20x00x1a29740NAND write: device 0 offset 0x0, size 0x1a29740data abortpc : [<8081c2a0>] lr : [<8081c288>]sp : 8079e448 ip : 00000008 fp : 8083edd0r10: 01a29740 r9 : 80844340 r8 : 8079ffe0r7 : 00000000 r6 : 00000001 r5 : 825363b2 r4 : 00000800r3 : 8083fd78 r2 : 00000000 r1 : 8083b5b4 r0 : 00000000Flags: nZCv IRQs off FIQs off Mode SVC_32Resetting CPU ...resetting ...如果是4字节对齐:hisilicon # setenv ethaddr 40:61:86:06:33:66;setenv serverip 192.168.253.129;setenv ipaddr 192.168.253.130;hisilicon # mw.b 0x82000000 ff 2200000; tftp 0x82000000 rootfs.img;nand write.yaffs 0x820000000x00x1a29740No such device: 0:2No such device: 0:2MAC: 40-61-86-06-33-66TFTP from server 192.168.253.129; our IP address is192.168.253.130Download Filename 'rootfs.img'.Download to address: 0x82000000Downloading: #################################################doneBytes transferred = 27432768 (1a29740 hex)NAND write: device 0 offset 0x0, size 0x1a29740pure data length is26601472, len_incl_bad is2660761627432768 bytes written: OK但是对于SPI flash并⽆此要求,即下⾯的命令可以正确执⾏:sf write 0x8276BE52 0x0 0x200000如果要烧写的镜像格式是jiffs或者ubifs,可以⽤nand write。
STM32的几种烧写方法STM32是意法半导体(STMicroelectronics)推出的一系列32位ARM Cortex-M微控制器。
在开发STM32项目时,常常需要通过烧写程序将代码加载到芯片中。
以下是几种常见的STM32烧写方法。
1. ST-Link/V2烧写器ST-Link/V2是STM32系列芯片的官方烧写器。
它是通过USB接口与开发主机连接,并通过调试线与目标芯片连接。
ST-Link/V2支持多种烧写方式,如JTAG、SWD和SWIM。
它可以与STM32编程工具(如ST-Link Utility和STM32CubeProg)结合使用,实现快速、可靠的编程。
2.UART烧写一些STM32系列芯片(如STM32F10x系列)集成了UART引导加载程序(Bootloader),可以通过串口通信进行烧写。
首先,需要将芯片的BOOT0引脚设置为高电平,然后通过串口线将开发主机与芯片连接。
最后,在开发主机上运行特定的烧写工具(如ST Flash Loader Demonstrator),上传并烧写程序到芯片中。
BDFU烧写USB Device Firmware Upgrade(DFU)是一种用于通过USB接口更新固件的标准协议。
STM32系列芯片中的USB DFU引导加载程序可以使设备进入DFU模式,并使用特定的DFU烧写工具(如DfuSe、dfu-util)通过USB接口加载新的固件。
4. IAP烧写(In-Application Programming)IAP是一种在应用程序运行时更新固件的方法。
通过使用IAP库函数,应用程序可以擦除、编程和读取闪存中的数据。
具体实现方式是将新的固件数据传输到目标芯片的特定存储区域,然后由应用程序将固件写入闪存。
5.SD卡烧写一些STM32系列芯片(如STM32F7系列)支持通过SD卡加载程序。
在SD卡上存储已编译的二进制文件,然后将SD卡插入与芯片相连的卡槽,在芯片上电时,引导加载程序将自动读取SD卡上的固件并烧写到存储器中。
需要文件(以SPI flash启动为例):
(1)ubl-spi_ais.bin(通过AISgen for D800K008工具进行格式转换)
(2)u-boot.bin
在windows下
运行command prompt
进入sfh_OMAP-L138.exe所在的文件目录
设置S7管脚如下
1、Erase the target flash type - This will erase the entire contents
of the flash.
o sfh_OMAP-L138.exe -erase
在按下板子reset键后
2、Flash the memory with a single application image - This will place
an application image at address 0x0 of the flash. This must be an AIS format binary, which can be created with the AISgen utilities bundled with the Bootloader User Guide.
o sfh_OMAP-L138.exe -flash_noubl <binary application file>
在按下板子reset键后
3、Flash the memory with a UBL and application image - This will place
a UBL at address 0x0 of the flash and an application image, such
as u-boot, at address 0x10000. In general, a UBL is not required, and this mode is only used when restoring the default flash contents, as explained in the following section.
o..\sfh_OMAP-L138.exe -flash <UBL binary file> <binary application file>
按下板子reset后
Ubl和uboot烧写完后,需要将S7开关设置为如下
然后重新reset,则打开Hyper terminal,可见
表示下载成功,uboot可以成功启动
注:
/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L13 8
Help:sfh_OMAP-L138.exe 的命令格式
编译UBL:
生产ubl-spi.bin和ubl-spi.out
只有ubl启动(或uboot不能正确启动),串口显示如下:Booting with TI UBL
Device OPP (300MHz, 1.2V)。