许世文 王慧
摘 要 Bootloader是嵌入式系統的重要组成部分,一般来说,Bootloader最重要的作用是用来加载操作系统,为调用操作系统内核准备好正确的环境。不过随着半导体产业的发展,许多高性价比的MCU(微处理器)不断推出市场,这些MCU有着丰富的外设资源,但是内部的存储资源不足以运行嵌入式操作系统,只能运行微实时内核或无操作系统的应用,用来满足低成本但相对智能化且需求易变的应用需求。由于应用功能的定制化以及系统维护等因素,也需要加入Bootloader来提高系统的灵活性。本文主要通过将著名的开源Bootloader(U-Boot)移植到ST(意法半导体)公司的一款高性价比微处理器STM32F103来阐述Bootloader的运行机理,需要说明的是,U-Boot虽然对多种处理器平台、多种操作系统有着良好的支持,但其框架仅支持那些运行在内存(SRAM/DRAM/SDRAM)的操作系统且自身也需运行在内存中,而STM32F103的SRAM仅64K,不足以用来运行程序,故需对U-Boot的框架进行改造,使其不但自身运行在闪存(FLASH)中,并且可以直接引导闪存中的应用程序。这样可使得类似于STM32F103这样的“低端”嵌入式平台也能共享U-Boot丰富的命令集和灵活的配置功能。
关键词 Bootloader;U-Boot;STM32F103;嵌入式;FLASH
引言
嵌入式系统,是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”。一般来说,计算机系统都具有相应的引导程序,它的作用是初始化硬件设备、完成必要的初始化过程,加载操作系统等。对于嵌入式系统来说,出于对成本、体积、性能、功耗等多方面因素考虑,除了使得Bootloader的设计不但严重依赖于硬件,甚至很多时候不再需要Bootloader。……