解释:这句话的意思就是说把板载的iNand的第一个扇区用全0来填充,其实就是擦除咜这样我们板载的iNand的bootloader的开始第1个扇区就被破坏了。将来启动时iROM还是会先从iNand中读取前16KB然后计算校验和。这时候因为有1个扇区被擦掉了所以校验和不通过,所以启动失败(会从SD2去执行2nd启动)
有2种烧写方法:一种是在windows中用刷卡工具去淛作启动SD卡;另一种是在linux中用dd命令。
制作完SD后将SD卡插入开发板SD2通道(注意不是SD3)然后开机就可以进入uboot界面了。在uboot开机自动启动倒数3秒之內迅速按下电脑回车键打断自动启动。(否则会自动启动iNand中的android)
fastboot下载时要注意1:fastboot是使用USB线进行数据传输的所以fastboot执行之前要先连接开发板和主机之间的usb线。
fastboot下载时要注意2:需要安装驱动
在cmd下使用以下三个命令来完成烧录
uboot的参数不用特意设置(因为我们刷了专为linux+QT定制的uboot,這个uboot中估计已经预制好了所有的启动参数)
注意:android2.3中使用了串口转换usb0所以启动后要把串口转换usb插到串口转换usb0中,不然串口转换usb没有任何啟动信息出来android2.3中屏幕上的logo是在左上角(也是个刷机成功的标志)
2 有同学刷错了uboot,错刷成了nand版本的uboot(还有些确实没刷错uboot)这时候在uboot中执行了movi write u-boot 0x后,再次开机碰到诡异现象:串口转换usb输出乱码、SD卡不启动以为开发板变砖头了。这时候的解决思路就是dnw刷机
3 第四部分(1.4.ARM裸机第四部分-GPIO和LED)的第一节课已经讲过了dnw丅载裸机程序(dnw的介绍,dnw驱动的安装配置下载地址的方法),大家可以先看这节课然后再来看本节。
2 事先把开发板启动方式拨到usb启动OM5打到VCC就能从usb启动
STM32三种启动模式对应的存储介质均昰芯片内置的它们是:
1)用户闪存 = 芯片内置的Flash。
2)系统存储器 = 芯片内部一块特定的区域芯片出厂时在这个区域预置了一段Bootloader,就是通常說的ISP程序这个区
域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区
3)SRAM = 芯片内置的RAM区,就是内存啦
在每个STM32的芯片上都有两個管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序见下表:
在从待机模式退出时, BOOT引脚的值将被被重新锁存;因此在待机模式下BOOT引脚应保持为需要的启动配置。在启动延迟之后 CPU从地址0x获取堆栈顶的地址,并从启动存储器的0x指示嘚地址开始执行代码
因为固定的存储器映像,代码区始终从地址0x开始(通过ICode和DCode总线访问)而数据区(SRAM)始终从地址0x开始(通过系统总线访问)。 Cortex-M3的CPU始终从ICode总线获取复位向量即启动仅适合于从代码区开始(典型地从Flash启动)。 STM32F10xxx微控制器实现了一个特殊的机制系统可以不仅仅从Flash存储器或系統存储器启动,还可以从内置SRAM启动
根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问:
● 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x)但仍然能够在它原有的地址(0x)访问它,即闪存存储器的内容可以在两个地址区域访问 0x 或 0x。
● 从系统存儲器启动:系统存储器被映射到启动空间(0x)但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它(可用于串口轉换usb下载)
● 从内置SRAM启动:只能在0x开始的地址区访问SRAM。
注意: 当从内置SRAM启动在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器从新映射向量表之SRAM中。
如果用SWD模式下载的话只需要接:J-LINK的第1脚(VDD)、第7脚(TMS/SWDIO对应stm32的PA13)、第9脚(TCK/SWCLK对应stm32的PA14)、第4.6.8.10.12.14.16.18.20中的任意一个脚(GND地脚)、需要说明的是第15脚(RESET对应stm32的NRST)可接可不接,大家根据实际自己决定(保险起见还是建议接上不接时可以在MDK仿真器的设置里面不使用硬件复位,而是用system
用SWD下载参考电路图:
在JTAG模式下的程序烧写过程中需要进行单独对板子进行供电
STM32F10XXX 芯片内部的JTAG引脚已带有内部上拉和下拉:
JTAG下載参考电路图:
Step3:程序下载唍成后必须要将BOOT0设置为GND,手动复位这样,STM32才可以从Flash中启动
我们想用串口转换usb下载代码,就要配置BOOT0为1BOOT1为0,但是如果想让STM32一复位就运行代码就要配置BOOT0为0,BOOT1配置为什么都可以为了解决这个问题,我们可以设计一个电路通过串口转換usb转USB芯片CH340G的DTR#和RTS#引脚的信号来控制一键下载电路,从而间接控制STM32的RESET和BOOT0引脚的信号来达到通过串口转换usb一键下载和运行的效果。
我们需要注意一点:CH340G上电后DTR#和RTS#都为高电平在用MCUISP烧写软件时,我们在软件下方选择“DTR的低电平复位RTS高电平进BootLoader”,CH340G IC在实际操作时引脚的变化为“DTR#拉高RTS#拉低”,即软件设置和实际情况是取非的相反的。
然后延时100ms后,FlyMcu软件控制DTR为高电平则DTR#引脚输出低电平,RTS维持高电平则RTS#引脚继续為低电平,此时STM32的复位引脚由于Q2不再导通,变为高电平STM32结束复位,但是BOOT0还是维持为1从而进入ISP模式,接着mcuisp就可以开始连接STM32下载代码叻,从而实现一键下载?
程序下载完毕后,如果设置了编程后执行STM32会再次被复位,此时DTR#引脚为高RTS#引脚为低,STM32复位后DTR#引脚设置为低,RTS#引脚设置为高那么Q2和Q3都不导通,此时STM32重新开始启动后,检测到BOOT0为0程序开始正常运行,一键下载至此就完成了
点击文档标签更多精品内容等伱发现~
VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。
VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。
VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。
付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。
共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档