《MCU自举程序的原理你了解多少?.docx》由会员分享,可在线阅读,更多相关《MCU自举程序的原理你了解多少?.docx(8页珍藏版)》请在第一文库网上搜索。
1、MCU自举程序的原理你了解多少?单片机基本都有自举程序,像支持STC单片机使用串口下载,这种其实也是单片机内部集成了一段自举程序。那你,你了解自举程序吗?下面结合STM32给大家分享一下关于自举程序的知识。关于自举程序STM32中内嵌了一段自举程序,可能很多人不知道。那段自举程序存放在SyStemmemory(系统存储器)中,我们通过配置启动,选择启动系统存储器就可以运行这段程序。STM32启动配置STM32有三种启动模式:MainF1ashmemory:主F1ASHSystemmemory:系统存储器EmbeddedSRAM:内置SRAM三种模式是通过不同配置来实现,一般通过BOOT引脚和B
2、OOT位来配置启动模式。不同的芯片配置有差异,有些芯片没有BOoT1引脚,会结合BoOT位来实现。F1启动配置:启动模式选择引脚启动模式说明B00T1BOOTOX0主闪存存储器主闪存存储器被选为启动区域01系统存储器系统存住线叫科嬖鸣11内置SRAM内置SRAM被选为启动区域FO启动配置:BootmodeconfigurationModenBOOT1bitBOOTOpinBOOT_SE1bitnBOOTObitX01XMainF1ashmemoryisse1ectedasbootarea111XSystemmemoryisse1ectedasbootarea011XEmbeddedSRAMis
3、se1ectedasbootareaXX01MainF1ashmemoryisse1ectedasbootarea1X00Systemmemoryisse1ectedasbootarea0X00EmbeddedSRAMisse1ectedasbootarea1.Greyoptionsareavai1ab1eonSTM32F04xandSTM32F09xdevkO:3Crogerr11Jerg2.ForSTM32F04xandSTM32F09xdevices,seea1soEmptycheckdescription.复位后,在SYSC1K的第四个上升沿锁存BOOT引脚的值。复位后,用户可以通过设
4、置BooT1和BOOTO引脚来选择需要的启动模式。内嵌的自举程序STM32内嵌的自举程序存放在系统存储区,由ST在生产线上写入,用户不能修改。我们选择SyStemmemory(系统存储器)启动模式,就会进入系统存储区执行自举程序。内嵌的自举程序主要用于通过串行接口重新编程F1asho有哪些串行接口呢?UART、I2C、SPI、CAN、USB等。F103只支持的UART:Boot1oaderFeatureZPeripheraIStateCommentUSART1bt1oaderRCCHSIenab1edThesystemc1ockfrequencyis24MHzusingtheP11.RAM-5
5、12bytestartingfromaddress0x20000000areusedbytheboot1oaderfirmware.Systemmemory-2Kbytestartingfromaddress0x1FFFFOOOcontainthebt1oaderfirmware.IWDG-Theindependentwatchdog(IWDG)presca1erisconfiguredtoitsmaximumva1ueandisperiodica11yrefreshedtopreventwatchdogreset(incasethehardwareIWDGoptionwasprevious1
6、yenab1edbytheuser).SART1Enab1edOnceinitia1ized,theUSART1configurationis:8bits,evenparityand1Stopbit.USART1_RXpinInputPA10pin:USART1inreceptionmodeUSART1_TXpinOutputpush-pu11PA9pin:USART1intransmissionmodeSysTicktimerEnab1edUsedit微扇iy玄/t刎彝嗣逊Idratefromthehost.F4支持多种串行接口:Boot1oaderFeatureZPeripheraISta
7、teCommentUSART1boot1oaderUSART1Enab1edOnceinitia1ized,theUSART1configurationis:8bits,evenparityand1Stopbit.USART1_RXpinInputPA10pin:USART1inreceptionmodeUSART1_TXpinOutputPA9pin:USART1intransmissionmodeUSART3boot1oader(onPB10PB11)SART3Enab1edOnceinitia1ized,theUSART3configurationis:8bits,evenparitya
8、nd1Stopbit.USART3_RXpinInputPB11pin:USART3inreceptionmodeUSART3_TXpinOutputPB10pin:USART3intransmissionmodeUSART3boot1oader(onPC10PC11)USART3Enab1edOnceinitia1ized,theUSART3configurationis:8bits,evenparityand1Stopbit.USART3_RXpinInputPC11pin:USART3inreceptionmodeUSART3_TXpinOutputPC10pin:USART3intra
9、nsmissionmodeUSARTxboot1oadersSysTicktimerEnab1edUsedtoautomatica11ydetecttheseria1baudratefromthehostforUSARTxboot1oaders.CAN2boot1oaderCAN2Enab1edOnceinitia1ized,theCAN2configurationis:Baudrate125kbps,11-bitidentifier.Note:CAN1isc1ockedduringCAN2boot1oaderexecutionbecauseCAN1managesthecommunicatio
10、nbetweenCAN2andSRAM.CAN2_RXpinInputPB5pin:CAN2inreceptionmodeCAN2_TXpinOutputPB13pin:CAN2intransmissionmodeDFUboot1oaderUSBEnab1edUSBOTGFSconfiguredinforceddevicemodeUSB_DMpinInputZOutputPA11:USBDM1ine.USB_DPpinPA12:USBDP1ineNoexterna1Pu11-upresistorisrequiredCAN2andDFUboot1oadersTIM11Enab1edThistim
11、erisusedtodeterminetheva1ueoftheHE.OncetheHSEfrequencyisdete,1,(hobstr;:Rrf屯U冶dto60MFfeusingP11andHSE.不同型号MCU支持的串行接口不一样,具体请参看应用笔记AN2606o自举程序中USART协议通信就会牵涉到协议,这里也说一下自举程序中USART协议。1、协议序列2、USART自举程序命令集命令命令代码命令说明Get(2)OxOO获取当前自举程序版本及允许使用的命令GetVersion&ReadProtectionStatUS化)0x01获取自举程序版本及F1ash的读保护状态Get1D0x0
12、2获取芯片IDReadMemory0x11从应用程序指定的地址开始读取最多256个字节的存储器空间Go0x21跳转到内部F1ash或SRAM内的应用程序代码WriteMemory0x31从应用程序指定的地址开始将最多256个字节的数据写入RAM或F1ashEraSe0x43擦除一个到全部F1ash页面ExtendedEraSe0x44使用双字节寻址模式擦除一个到全部F1ash页面(仅用于v3.0usart自举程序版本及以上版本)。WritePrOteCt(4)0x63使能某些扇区的写保护WriteUnPrOteCtS)0x73禁止所有FIaSh扇区的写保护ReadoutProtect0x82使
13、能读保护一ReadoutUnProteCt0x92-1rtr七汗力唁?:什况mg-禁止读保护3、命令流程有命令就有相应命令执行流程,这里拿Get命令流程为例:其他命令流程这里就不一一讲述,请参看官方文档AN3155。自举程序上位机自举程序主要是针对STM32进行编程,说白了,自举程序上位机就是F1ASH编程工具。自举程序上位机工具大家都比较熟悉,这里简单说一下。1、STMF1ash1oader这个工具是相对叫老的工具,好像现在没有维护更新了。0F1ash1oaderDemonstrator1i!e.augmentedSe1ecttheconnecticcomnn.fora11Tunicatio
14、nportandsetsettings,thenc1icknexttoopen-1:一UuiiiiiiuriGUARPortNarBaudRcDataBibmceIteSC0M7ParityEchoUt回Even115200Disab1edTimeo10BackNext:屡frftunjj0F1ash1oaderDemonstratorCEraseCSe1ection6Down1oadtodevied6ErasenecessarypagesNoEraseCG1oba1EraseUp1oadfromdevicei-IIc1Cad卜Cfi1CEnab1e/Disab1eF1ashprotectior(disab1e三IwriteprotectionjJCEditoptionbytesBackt72习后W:5tronfrng主要就是使用UART对STM32F1ASH读写擦除等操作。2、STM32Cu