当前位置:文档之家› 详解STM32 ISP设置及使用说明

详解STM32 ISP设置及使用说明

详解STM32 ISP设置及使用说明
详解STM32 ISP设置及使用说明

详解STM32 ISP设置及使用说明(原创)

1. STM32的BOOT概述

STM32三种启动模式对应的存储介质均是芯片内置的,它们是:

用户闪存:BOOT1=x BOOT0=0芯片内置的Flash,即主存储器Flash

SRAM:BOOT1=1 BOOT0=1芯片内置的SRAM 区,就是内存啦。

系统存储器:BOOT1=0 BOOT0=1芯片内部一块特定的区域,叫做系统存储器。芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM 区。

在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:

BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。

BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。

BOOT1=1 BOOT0=1 从内置SRAM 启动,这种模式可以用于调试。

要注意的是,一般不使用内置SRAM 启动(BOOT1=1 BOOT0=1),因为SRAM 掉电后数据就丢失。多数情况下SRAM 只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM 中诊断板上的其他电路,或用此方法读写板上的Flash 或EEPROM 等。还可以通过这种方法解除内部Flash 的读写保护,当然解除读写保护的同时Flash 的内容也被自动清除,以防止恶意的软件拷贝。

一般BOOT0 和BOOT1 跳线都跳到0(GND),即正常的从片内Flash运行,只是在ISP下载的情况下,需要设置BOOT0=1,BOOT1=0 ,下载完成后,把BOOT0 的跳线接回0,这样系统可以正常运行了。

对于一般的应用来说,直接把BOOT0 和BOOT1 引脚接地即可,不用设置跳线,使用IAR 调试程序时可以选择RAM 调试还是Flash 调试,与BOOT0 和BOOT1 的配置无关。

而笔者在设计stm32的程序时,遇到spi3的nss等管脚与JTAG的管脚共用冲突,所以为了解决该问题,使得spi3能正常使用,通过库函数

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);关闭了JTAG功能,这样spi3能正常使用了,但结果导致无法通过JTAG烧录程序了!因为,通过ISP串口烧录程序的课题就浮出水面啦!

2. STM32的ISP工具的使用过程。

要使用下面烧录工具进行ISP升级code前,需先进行硬件配置:Boot0=1,Boot1=0,即上拉电阻或下拉电阻均可,此外,串口线连接PC机和STM32硬件电路板的UART1,不许是UART1,其他不行。

1.FlyMcu.exe可以正常使用,选择好对应串口后,按下读器件信息,软件开始与stm32通讯,并读取到芯片的型号,版本,容量等信息,表明通讯成功;如果显示一直连接中,则需reset一下stm32电路板,即可联通成功.

2.Flash Loader demo需要安装在PC机端,打开软件并设置好上述硬件连接后,还尤其要设置软件的如下参数:Parity:Even, Echo:Disabled,然后再reset 硬件电路板后立刻按下软件的Next,一般都会联通成功,否则重试上述动作.该软件的不合理之处就是必须得每次reset板子后立即按next才行,而不是在next连接期间按下reset也可以联通,这是该软件需要改进升级之处.

3.SIMISP.exe使用时也必须在reset硬件之后马上按下“连接设备”,此时右下角显示“已连接”,绿灯点亮,联通成功,选择要烧录的文件后点击“开刷”即开始烧录程序。但由于该软件烧录程序文件太慢,故暂不使用。

注意:开始使用上述三款软件时,均无法正常连接PC与STM32硬件板,尝试了多次方法,最终发现:原来是需要Reset硬件开发板后立即连接软件,如果没有rest硬件,或者reset硬件后果几秒钟再连接软件,一般都无法连接成功,所以要记住:reset硬件后立刻按下连接软件!!!连接成功后,根据界面信息,即可以进行擦除和烧录flash啦!

嵌入式设备远程程序升级的实现_英文

Vol.5No.3,Sept.2014Journal of Measurement Science and Instrumentation Sum No.19 Realization of remote update technology for embedded equipment based on μC /OS-Ⅱ MENG Hui ,PAN Lian (School of Information Science and Engineering ,Wuhan University of Science and Technology ,Wuhan 430081,China )Abstract :Aiming at the inaccessible problem of remote embedded devices update and maintenance ,this paper presents a method u-sing general packet radio service (GPRS )to achieve update based on the embedded real-time operating system (RTOS )μC /OS-Ⅱ.It introduces architecture of the system first.And then it uses LPC1768chip as the central processing unit ,SIM900A module for da-ta transmission ,and SST25VF016B to store the data.To ensure accuracy of the data transmission ,cyclic redundancy code (CRC )is adopted.The software uses fixed bootstrap and mutable update program ,and thus the embedded devices can still normally start in case of update failure.Finally ,high stability and extensive adaptability of the system are verified by experimental data.Key words :μC /OS-Ⅱ;remote update ;general packet radio service (GPRS );embedded system CLD number :TP274Document code :A Article ID :1674-8042(2014)03-0069-04 doi :10.3969/j.issn.1674-8042.2014.03.013 With the development of communication technology and embedded technology ,remote monitoring system based on wireless communication is more and more widely used.In the process of actual application ,we of-ten need to modify and update the program of the em-bedded system.Because of long-distance terminal e-quipment and poor working environment ,if maintainers have to come to the scene ,the maintenance cost will be very high and the program cannot be updated in real time.This paper puts forward the scheme that utilizes mobile communication technology ,embedded technolo- gy ,computer technology and Internet technology to im-plement a system that can update and monitor remote embedded equipment.It has great realistic significance for many engineering applications. 1System composition Fig.1shows the structure of a remote update system. The system is mainly composed of embedded terminal e-quipment ,Internet ,server ,etc. Fig.1Structure of remote update system The embedded equipment sends data to remote server by general packet radio service (GPRS )communication module based on transmission control protocol /user dat-agram protocol (TCP /UDP ).On the server side ,the data is received with a matching transceiver.After the data being analyzed ,the server side registers the termi-nal equipment.Users can update and monitor remote embedded equipment by going through the browser.Thus it is easy to implement software download ,debug and update online from the remote terminals. 2 Hardware design of embedded e-quipment Hardware circuit diagram of embedded equipment is shown in Fig.2.Hardware platform of the control sys-tem is constructed by utilizing LPC1768processor as core.Peripheral circuit of the processor mainly compri-ses six modules :GPRS module ,memory module ,joint test action group (JTAG )debug module ,watchdog *Received date :2014-04-15 Corresponding author :MENG Hui (menghui8592@yeah.net )

STM32 ISP 远程升级

STM32芯片自带固化的ISP程序,在芯片上电的时候会检查BOOT0 BOOT1电平状态,如果 BOOT0=1 BOOT1=0 则会进入自带的ISP程序,基本可以满足程序升级需要。 但是如何进入这个模式,是一个问题,网上有人使用串口的握手信号来控制,但是这样会超过3条线( RX TX GND)。 昨天测试了一个方法,上位机发出一个指令,STM32用户自己的程序解析后,利用自己的IO口,控制一个简单的延时电路来拉高BOOT0,然后芯片重新启动,则进入ISP。刷新完成后,跳入用户程序运行,控制权交回用户程序。 程序中设置PB8为 ISP_DRV ,推挽输出;输出一定时间后,充满电容后,可以使用NVIC_SystemReset() 重新启动(3.12库)。即可进入ISP模式。 另外,需要在程序中设置如下向量表地址,才可以在勾选ISP程序的 jump to user application after flash后,进入用户程序。 /* Set the Vector Table base location at 0x08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); 测试了若干次没有发现异常。

何须如此麻烦,直接跳转到SystemMemory不就行了,一个函数解决所有问题。 这是我写的一个函数,没有测试过,不过估计问题不大,有兴趣的同志可以帮忙测试一下。 void EnterSyetemMemoryISP(void) { typedef void (*APP_FUNC_DEF)(void); vu32 *appaddress = (vu32 *)(0x1FFFF000); //SystemMemory 的起始地址。 APP_FUNC_DEF pappfunc; u32 appresetaddr; appresetaddr = *(appaddress + 1); pappfunc = (APP_FUNC_DEF) appresetaddr;

一种远程在线更新FPGA程序的方法

一种远程在线更新FPGA程序的方法 1 概述现场可编程门阵列(Field Programmable Gate Array,FPGA)器件具有高密度、低功耗、高速、高可靠性等优点,在航空航天、通信、工业控制等 方面得到了大量应用。FPGA 的处理器分为软核和硬核,并且软核处理器具有 高度的灵活性和可配置性。由于FPGA 器件采用的是SRAM 工艺,在断电的 情况下FPGA 内的配置数据将丢失,所以需要非易失的存储器来结合FPGA 完 成嵌入式系统的设计。EPCS(Erasable Programmable Configurable Serial)Flash 属于串行接口Flash,具有接口简单、体积小、配置方便的特点,通常用来存储FPGA 的配置文件和NiosII 的软件可执行代码。在经过合理的配置后,系统在 上电后就可以从EPCSFlash 中读取这些文件来启动整个系统。为了能使系统 得到更灵活的应用,充分发挥FPGA 的灵活性、高效性,FPGA 的软硬件程序 都需要方便的更新和升级功能;而当形成产品后,通过JTAG 和NiosII IDE 工 具来联合完成对EPCS Flash 的更新烧写很不方便。为此,本文结合Altera 公司 提供的工具,提出了一种远程在线更新FPGA 配置文件和NiosII 程序文件的方 法。2 系统硬件结构系统硬件结构如图1 所示。系统主要有上位机系统、FPGA 系统、EPCS Flash 三个主体部分。上位机系统提供人机交互的部分,FPGA 系统包括NiosII 处理器、EPCS 控制器、网络及串行接口和其他外部接 口,EPCSFlash 主要用于存储FPGA 的配置文件和Nios 程序映像文件。上位机 系统通过FPGA 集成的网络及串行接口来完成通信工作。 FPGA 采用Altera 公司的CycloneIII 系统的EP3C40F48417N 芯片。它具有 低功耗、高集成度、易于使用的特性。EPCS Flash 采用Altera 公司的EPCS16SI16N 芯片,它支持多种可配置的时钟源,最高支持100 MHz 的外部

STM32F103终端设备远程程序升级程序

1.STM32F103终端设备远程程序升级程序 2014-4-17 (1)把STM32F103的FLASH 分成2部分,0x08000000~0x08003fff,是IAP程序; 00x08004000~ ,是APP程序; (2)硬件机构:内有GSM模块(移远M35),作为远程通信用。 (3)更详细,得到IAR 项目文件:stm32f103远程程序升级程序.rar,联系QQ:785313554 王昌世 2.程序结构 3.主程序 /******************** (C) COPYRIGHT 2008 STMicroelectronics ******************** * File Name : main.c * Author : wcs * Version : V2.0.1 * Date : 03/18/2011 * Description : Main program body ******************************************************************************** * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONL Y AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SA VE TIME. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. *******************************************************************************/ /* Includes ------------------------------------------------------------------*/

基于STM32F103局域网远程更新技术的实现黄海宝

《工业控制计算机》2012年第25卷第12期 在传统嵌入式系统中,代码在做成产品时已经用烧写器写入系统,如果需要日后维护或升级,工作人员必须到现场进行固件代码更新。有些用户希望产品在实际应用期间通过某种远程通信方式自动的更新程序内容,显然,现场烧入代码并不能满足这样的需求。IAP技术的出现为产品代码的远程更新提供了有效手段。本文以STM32F103ZE为平台,在TCP/IP通信协议的基础上,实现IAP技术。 1STM32F103处理器 STM32F103系列处理器是意法半导体(ST)发布的基于Cortex-M3内核的增强型系列处理器,工作频率最高达到72MHz,带有片内RAM和丰富的外设。完善的外设固件库更缩短了开发周期。 Cortex-M3存储系统采用统一寻址方式,程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内,存储空间被分成8个主要块,每个块为512MB。以STM32F103ZE处理器为例,图1为代码块和片内SRAM的地址映射图。 图1Flash、SRAM地址映射 代码块包括了Flash主存储块、信息块和启动区。主存储块地址从0x08000000开始的512K字节,信息块分为两个部分:①系统存储器是用于存放在系统存储器自举模式下的启动程序,这个区域只保留给ST使用,启动程序使用USART1串行接口实行对闪存存储器的编程;②选项字节。 启动区地址从0x00000000开始,在系统复位后,就从这个地址开始执行代码,在STM32F103里,通过BOOT[1:0]引脚值将对应的存储器物理地址映射到启动区。本为使用的启动模式为从主闪存存储器启动。 表1启动模式 2IAP技术原理 在程序中编程(IAP)是用户自己的程序在运行过程中对Flash部分区域进行烧写,实现固件代码的更新。一般来说,IAP 驱动程序要完成两个工作:一是通过通信接口接收编译好的应用程序代码到RAM;二是将应用程序代码编程到Flash中。因此系统中固件分为两段代码:第一段是IAP驱动程序,程序复位后首先执行IAP程序,此段代码必须通过JTAG、ISP或其他方法烧入;第二段是应用程序,是真正的功能代码,由IAP程序执行完后跳转至此段代码才开始执行。两段代码都烧写在内部FLASH中,值得注意的是两段代码的存放区域不能重叠,否则后果将无法预测。 3IAP技术的实现 3.1通信方式 在本文,有更新功能的产品终端通过集线器与电脑相连,组成一个局域网。由于STM32F103系列处理器没有以太网控制模块,因此处理器外接一个ENC28J60网络模块与局域网相连。鉴于TCP/IP的复杂度,传输层使用用户数据协议UDP。服务器通过设定目标端的IP地址和UDP端口号来选择需要更新的产品终端。3.2烧写文件格式 在启动更新之前,需要准备应用代码的Hex烧写文件,使用MDK编译器可以直接编译生成HEX文件。Hex全称(Intel HEX)文件,是有一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言和/或常量数据的十六进制编码数字组成。每一行HEX记录包含5个域,它们按以下的格式排列:1字节数据长度域+2字节偏移地址域+1字节记录类型+数据域+1字节校验和域 每行都是由冒号开头,数据长度域的数值为数据域的字节数,偏移地址为32位地址的低16位,记录类型为以下几种中的一种:00-数据记录 基于STM32F103局域网远程更新技术的实现Implementation of Remotely Update Technology in LAN Based on STM32F103黄海宝吴学杰高艳艳(西南交通大学牵引动力国家重点实验室,四川成都610031) 摘要 在阐述STM32F103微处理器和在应用中编程(IAP)原理的基础上,使用RealView MDK编译的Hex烧写文件,实现了局域网内的固件在线更新,提高了固件维护的方便性,缩短了终端系统的开发周期。 关键词:STM32F103,IAP,局域网,Hex Abstract This paper elaborates STM32F103microcontroller and In Application Program(IAP)technology.Updating the firmware in the LAN using Hex programming file compiled by RealView MDK.It brings convenience of firmware maintenance and short-en the development cycle of the terminal system. Keywords :STM32F103,IAP,LAN,Hex 97

相关主题
文本预览
相关文档 最新文档