芯达STM32入门系列教程之三《如何使用J-Flash调试》
J-Flash烧写hex(bin)文件资料到STM32F205RG芯片地设置方法与步骤
1、在桌面找到图标点击打开如图界面
2、点击菜单栏上的options,再点击“Project settings…”,进行烧写前的必要设置,如下图:
(1)在“General”页,选择“USB”,如下图:
(2)在“Target Interface”页,选择“JTAG”,JTAG速度设置为“Auto selection”,如下图
(3)在“CPU”页,选择开发板的CPU型号:ST STM32F205RG,如下图:
(4)“FLASH”页不用设置,默认设置就可以了。
(5)在“Production”页,我们把“Start application”选上,则在下载成功之
后,程序会自动运行。
(6)在设置完成后,我们点击“应用”和“确定”退出。
在JLINK软件界面左边,将显示烧写信息,如下图:
3、点击“Target”后,再点击“Connect”,开始连接:
连接成功会有提示信息,如下边的状态拦:
如图:
5、加载完成后,点击“Target”点击“Auto”进行烧录:
6、烧写成功!如下图:
点击确定,完成程序烧写!。
STM32 FLASH操作
STM32 flash操作对芯片内部flash进行操作的函数,包括读取,状态,擦除,写入等等,可以允许程序去操作flash上的数据。
一、存储器映射1、统一编址,程序存储器、数据存储器、外设寄存器组织在一个4GB 的地址空间。
2、小端格式3、映像(stm32f107,256KB产品)可以看到,所谓的256KB闪存,是指主存储,片上FLASH如下图所示:介绍了片上的资源后,来看他们的地址映像。
芯片将4GB的空间,划分为8个512MB的块(block),这些块有些是整块不用的,芯片对地址的安排可以参考数据手册,memory mapping章节中的那个图。
只有block1、2、3、7是使用的。
地址中block7是核内的外设对应的地址,block2是其他外设对应的地址。
block1的低地址64KB是片上SRAM,block0则如下图option bytes即是选项字节;system memory就是系统存储,也即片上ROM;这两部分就是所谓信息块。
Flash就是指主存储,有256KB。
再往下看alias to flash or system memory.....这个区域256KB就是启动开始的区域。
这个区域并没有一个自己的存储器,只是根据BOOT0、BOOT1的接法来选择哪个存储器映射到这个地址上。
如下图选择用户闪存启动,是典型的做法;选择系统存储器,则在ST烧写进去的自举程序引导下,通过USART1下载程序;选择从SRAM执行代码则方便调试,比较快。
二、复位CM3将复位视作异常,优先级最高的异常。
stm32f1有三种复位:系统复位、电源复位、备份区复位。
前两种是真正的复位,对他的响应由硬件完成,这个响应对软件流的影响是这样的:程序指针指向0x0000 0004,这个单元存储的是复位服务子程序(或者汇编叫子过程),同时从0x0000 0000获取堆栈顶的地址。
不同的复位类型还有对其他寄存的不同复位方式,这就完成了复位。
J-Flash烧写STM32F103RET6芯片的设置方法与步骤
点击确定,完成程序烧写!
作者:查海宁
1在桌面找到图标点击打开如图界面2点击菜单栏上的options再点击projectsettings?进行烧写前的必要设置如下图
1、在桌面找到图标 点击打开如图界面
2、点击菜单栏上的options,再点击“Project settings…”,进行烧写前的必要设置,如下图:
在“General”页,选择“USB”,如下图:
在“Target Interface”页,选择“JTAG”,JTAG速度设置为“Auto selection”,如下图
在“CPU”页,选择开发板的CPU型号:ST STM32F103RE,如下图:
“FLASH”页不用设置,默认设置就可以了。
在“Production”页,我源自把“Start application”选上,则在下载成功之后,程序会自动运行。
在设置完成后,我们点击“应用”和“确定”退出。在JLINK软件界面左边,将显示烧写
信息,如下图:
点击“Target”后,再点击“Connect”,开始连接:
连接成功会有提示信息,如下边的状态拦:
接着,点击“File”,点击“opendata file...”打开烧录的HEX文件,如图:
加载完成后,点击“Target”点击“Auto”进行烧录:
STM32的FLASH操作
关于STM32的FLASH操作说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。
当然,FLASH还可以用来装数据。
FLASH分类根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。
主存储块用于存储程序,我们写的程序一般存储在这里。
信息块又分成两部分:系统存储器、选项字节。
系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。
这个区域由芯片厂写入BootLoader,然后锁死,用户是无法改变这个区域的。
选项字节存储芯片的配置信息及对主存储块的保护信息。
FLASH的页面STM32的FLASH主存储块按页组织,有的产品每页1KB,有的产品每页2KB。
页面典型的用途就是用于按页擦除FLASH。
从这点来看,页面有点像通用FLASH的扇区。
STM32产品的分类STM32根据FLASH主存储块容量、页面的不同,系统存储器的不同,分为小容量、中容量、大容量、互联型,共四类产品。
小容量产品主存储块1-32KB,每页1KB。
系统存储器2KB。
中容量产品主存储块64-128KB,每页1KB。
系统存储器2KB。
大容量产品主存储块256KB以上,每页2KB。
系统存储器2KB。
互联型产品主存储块256KB以上,每页2KB。
系统存储器18KB。
对于具体一个产品属于哪类,可以查数据手册,或根据以下简单的规则进行区分:STM32F101xx、STM32F102xx 、STM32F103xx产品,根据其主存储块容量,一定是小容量、中容量、大容量产品中的一种,STM32F105xx、STM32F107xx 是互联型产品。
互联型产品与其它三类的不同之处就是BootLoader的不同,小中大容量产品的BootLoader只有2KB,只能通过USART1进行ISP,而互联型产品的BootLoader 有18KB,能通过USAT1、4、CAN等多种方式进行ISP。
STM32RVMDKJLINK下flash和RAM调试方法
STM32RVMDKJLINK下flash和RAM调试方法stm32f107vc开发板,uvision V4.00u,JLINK V8,J-Link ARM V4.08l。
flash 下调试方法:1.打开要调试的工程,左栏工程上右击options for target。
进入debug中选择jlink.2. utility中选择jlink.3. 用JLINK连接PC和开发板,打开开发板电源。
进入旁边的settings,添加flash烧写方法。
4。
一路OK回去,rebuild,ctrl+F5进入调试,可以单步和断点。
根据ST公司的reference manual 2.3.3 embedded flash,知道flash 的地址从0x0800 0000开始。
在调试窗口中看到汇编的地址为0x0800开头,说明代码段烧进了flash。
SRAM下调试方法:1. 将Keil安装目录下D:/Keil/ARM/Boards/Keil/MCBSTM32/STLIB_Blinky的ram.ini拷贝到需要调试的工程目录下,并把需要载入的文件改为需调试工程AXF 文件的位置和名称,此处工程为GPIO。
2. 根据reference manual 2.3.1,SRAM的起始地址为0x2000 0000。
要将代码段放入SRAM中,必须设置程序只读段从SRAM起始位置开始,一定长度(此处设置为0X4000)后,数据段RAM开始。
注意两端的长度不能超过SRAM的总大小。
3. 同flash下调试的步骤1和2,选择jlink。
4. 在debug页下添加ram.ini。
5. 选择不要擦除flash,修改代码段和数据段的位置和大小。
6. 一路OK,rebuild,ctrl+F5进入调试。
可以单步,step in和断点。
看汇编代码的位置,以0x2000开头,说明程序运行在SRAM 中。
另外,查看工程目录下的.sct文件,如下。
LR_IROM1 0x20000000 0x00004000 { ; load region size_regionER_IROM1 0x20000000 0x00004000 { ; load address = execution address*.o (RESET, +First)*(InRoot$$Sections).ANY (+RO)}RW_IRAM1 0x20004000 0x00004000 { ; RW data .ANY (+RW +ZI)}}说明的确已经把程序配置到SRAM空间。
jflsh用法
jflsh用法
J-Flash是一款ARM的编程工具,主要用于对ARM微控制器进行编程和调试。
它提供
了一个集成开发环境(IDE),支持多种ARM系列的处理器和编程语言。
J-Flash的使用方法如下:
1. 打开J-Flash软件,选择要烧录的芯片型号,例如STM32F1。
2. 在软件界面中,点击“File”菜单,选择“Open data file...”,然后选择要烧录的
可执行文件(.hex或.bin)。
3. 在选项菜单中,配置CPU型号、下载方式等参数。
4. 连接目标硬件,确保硬件正确连接。
5. 在软件界面中,点击“Target”菜单,选择“Connect”,如果连接成功,会在LOG 窗口最后一行显示“Connected successfully”。
6. 如果需要擦除芯片,可以点击“Target”菜单,选择“Erase Chip”执行芯片全擦除操作。
7. 点击“Target”菜单,选择“Production Programming”开始烧录选中的hex文件。
8. 烧录完成后,断开连接,烧录成功。
需要注意的是,使用J-Flash进行编程和调试时,需要先安装相应的驱动程序和调试器,并且需要了解目标硬件的详细信息和编程语言的基本知识。
3-J-Flash烧写Hex使用说明
J-Flash烧写Hex使用说明1.1 打开烧写软件使用软件进行烧写HEX文件,没有的话可以安装这个软件,软件目录如下:...\智能嵌入式系统应用创新实训平台-刻盘资料\04-环境搭建\STM32环境搭建\JLINK\J-Link烧写软件\Setup_JLinkARM_V478j。
软件安装请参考附录I。
安装完成之后在开始菜单栏中选择-> 所有程序-> SEGGER -> JLinkARM_V478j-> J-Flash软件,点击打开,如果已有工程直接点击打开之前的工程如图1.1.1所示:图1.1.1 打开J-Flash工程如果没有使用过这个软件,则可以参考官方提供的参考文件打开,参考图1.1.2中顺序,添加文件,注意我们使用的是ST公司单片机,所以路径需要进到子目录“ST”下,选择相应型号的.Jflash文件这里以STM32F103VC系列为例:如图1.1.2所示:图1.1.2 打开官方提供的工程文件点击“打开”,完成文件添加,点击“Start J-Flash”,在弹出的保存界面中直接点击“保存”即可,如图1.1.3所示。
图1.1.3 保存文件1.2 打开烧写文件使用J-Link仿真器20P连接线连接到JTAG-SWD转接板上,同时使用6P 排线连接到目标板“SWD”接口上。
打开烧写软件,加载烧写文件(菜单栏File -> Open Data File),在这里以通讯显示板为例,文件位于:..\智能嵌入式系统应用创新实训平台-刻盘资料\05-底层参考代码\3-小车通讯显示板HEX。
请以最新日期为准。
如图1.2.1所示:图1.2.1 加载烧写hex文件1.3 执行烧写文件软件打开连接到目标板(菜单栏Target ->Connect),如图1.3.1所示。
当正确连接时,“Connect”为灰色不可操作,而“Disconnect”则可以操作。
如图1.3.2所示。
图1.3.1 连接控制板图1.3.2 连接成功擦除芯片内存(Target -> Erase chip),如图1.3.3所示。
STM32调试方法
1 软件调试 (1)2 硬件调试 (2)FLASH 调试(0x08000000) (3)SRAM 调试(0x20000000) (8)1 软件调试1.单击菜单Project----Option for Target‘STM32_template’(修改工程的Option 属性)Target选项C/C++选项Debug选项(软件调试)2 硬件调试本文以STM32F103RC芯片为例,根据STM32F103RC Datasheet可知芯片的片内FLASH 基址为0x08000000,大小为256K(0x40000);片内RAM基址为0x20000000,大小为48K (0xc000)。
芯片启动模式如下:芯片的启动模式需要根据你程序下载的具体地址进行正确设置这里主要介绍两种硬件调试方法FLASH调试(程序下载到FLASH中,0x08000000)SRAM调试(程序下载到SRAM中,0x20000000)FLASH 调试(0x08000000)用JLink 连接好电脑跟实验箱,实验箱BOOT0接0(短路帽接上面两个引脚)�FLASH调试的参数设置1)单击菜单Project----Option for Target‘STM32_template’(修改工程的Option 属性)前面的选项跟软件调试设置一样,对下列选项进行配置:Debug 选项,选择调试工具选择“Settings”,见下图进入“Cortex JLink/JTrace Target Driver Setup”Debug 选项(默认)Trace选项(默认)Flash Download选项配置如下,点击“Add”选好之后,点击“Add”返回点击“OK”返回。
Utilities选项☒编译1.点击Project----> rebuild target files☒启动调试1.点击Debug ---> Start Debug 整个调试界面图,在调试窗口中可看到汇编代码的地址为0x0800开头,说明代码烧进到了FLASH中:点击全速运行,观察实验结果,调试完成。
J-Flash烧写hex(bin)文件到STM32F205RG芯片的设置方法与步骤
1、在桌面找到图标点击打开如图界面
2、点击菜单栏上的options,再点击“Project settings…”,进行烧写前的必要设置,如下图:
(1)在“General”页,选择“USB”,如下图:
(2)在“Target Interface”页,选择“JTAG”,JTAG速度设置为“Auto selection”,如下图
(3)在“CPU”页,选择开发板的CPU型号:ST STM32F205RG,如下图:
(4)“FLASH”页不用设置,默认设置就可以了。
(5)在“Production”页,我们把“Start application”选上,则在下载成功之后,程序会自动运行。
(6)在设置完成后,我们点击“应用”和“确定”退出。
在JLINK软件界面左边,将显示烧写信息,如下图:
3、点击“Target”后,再点击“Connect”,开始连接:连接成功会有提示信息,如下边的状态拦:
4、接着,点击“File”,点击“open data file...”打开烧录的HEX(BIN)文件,如图:
5、加载完成后,点击“Target”点击“Auto”进行烧录:
6、烧写成功!如下图:
点击确定,完成程序烧写!。
flasher stm32 用法
flasher stm32 用法一、STM32 简介STM32是由意法半导体(STMicroelectronics)推出的一款32位嵌入式微控制器。
它基于ARM Cortex-M内核,提供了丰富的外设接口和强大的处理性能,被广泛应用于各种嵌入式系统和应用中。
二、Flasher STM32 概述Flasher STM32是一款用于烧录STM32微控制器的编程器。
它能够将程序代码和数据存储到STM32的闪存中,并支持对闪存中的内容进行擦除和重新编程。
使用Flasher STM32可以方便地更新和调试STM32系统,提高开发效率和可靠性。
三、Flasher STM32 的使用步骤下面将详细介绍Flasher STM32的使用步骤,以帮助初学者迅速上手:1. 准备工作在使用Flasher STM32之前,需要准备好以下设备和软件:- STM32微控制器开发板- USB连接线- Flasher STM32编程器- STM32CubeIDE或其他相关开发环境(用于生成程序代码)2. 连接设备将STM32开发板通过USB连接线与Flasher STM32编程器相连。
确保连接线接触良好,没有松动。
3. 安装驱动程序根据Flasher STM32编程器的型号,安装对应的驱动程序。
一般情况下,驱动程序会随编程器附带或在官方网站上提供下载。
4. 打开开发环境打开STM32CubeIDE或其他相关的开发环境,创建一个新项目或打开现有的项目。
5. 编写代码根据自己的需求,编写STM32的程序代码。
可以使用C/C++语言,借助开发环境提供的API和库函数进行操作。
6. 配置编程器在开发环境中配置Flasher STM32编程器的相关参数。
一般来说,需要选择正确的编程器型号和连接接口(如USB),并指定目标设备的型号。
7. 编译和烧录使用开发环境提供的编译器,将程序代码编译成二进制文件。
然后,使用FlasherSTM32编程器将二进制文件烧录到STM32的闪存中。
关于STM32的FLASH操作
关于STM32的FLASH操作STM32是一款由意法半导体(STMicroelectronics)推出的32位精简型单片机系列。
它采用了ARM Cortex-M内核,并在Flash和内存等方面进行了优化,提供了强大的性能和丰富的外设功能。
FLASH是STM32芯片上的一种非易失性存储器,可以用于存储应用程序代码、数据、配置信息等。
在STM32中进行FLASH操作可以通过编程和标准库函数两种方式实现。
下面将依次介绍这两种方法的使用。
一、编程方式编程方式是直接对FLASH进行底层的读写操作,需要对相关寄存器进行配置和控制。
1.写入数据在STM32的FLASH中写入数据的操作需要经历以下步骤:1) 解锁FLASH:通过FLASH_Unlock(函数解锁FLASH,使其可写入。
2) 擦除FLASH:通过FLASH_ErasePage(函数擦除要写入的FLASH扇区。
3) 写入数据:通过FLASH_ProgramByte(、FLASH_ProgramHalfWord(、FLASH_ProgramWord(等函数对FLASH进行数据写入。
4) 上锁FLASH:通过FLASH_Lock(函数上锁FLASH,防止误操作。
以下是一个简单的例子,演示如何通过编程方式对STM32的FLASH进行数据写入:```c#include "stm32f10x_flash.h"void ConfigureFlash(void)FLASH_Unlock(; // 解锁FlashFLASH_ClearFlag(FLASH_FLAG_EOP , FLASH_FLAG_PGERR ,FLASH_FLAG_WRPRTERR); // 清除状态标志FLASH_ErasePage(FLASH_START_ADDR); // 擦除扇区FLASH_Lock(; // 上锁Flash```2.读取数据读取STM32的FLASH数据需要通过指针的方式直接读取存储器的地址,如下所示:```c#define READ_FLASH(addr) (*(volatile uint32_t*)(addr))void ReadFlash(void)uint32_t data = READ_FLASH(FLASH_START_ADDR);//在这里对读取的数据进行处理```二、标准库函数方式STM32提供了一套标准库函数,方便开发者进行FLASH操作。
J-LINK J-FLASH 下载STM32单片机程序使用教程-V1
J-LINK J-FLASH 下载STM32单片机程序使用教程-V1.0 2023.05.09Introduction本教程用于演示如何使用JLINK V9配套J-FLASH软件烧写更新MCU程序的教程1. 安装提供的 JLINK驱动程序。
JLink_Windows_V722a.rar。
全程默认安装,只能安装在C盘,不可安装于其它盘。
安装驱动完成后,将JLINK V9仿真器上USB口插上电脑,系统会自动识别仿真器。
JLINK下载口使用专用接口扩展板上1.25间距 4PIN连接线与目标板上J5 连接器 SWD下载口进行连接。
然后目标板上电。
JLINK STLINK SWD转接板需要使用配套专用的转接板,如果是其它转接板需要根据转接接口的信号定义与板子SWD信号进行连接。
2. 安装完成在电脑开始菜单找到SEGGER-J-LINK V7.22f文件夹,点击打开 J-Flash V7.22点击 create a new project.(使用后可以在软件菜单File保存这个烧写工程,后续直接打开使用即可)选择Target interface 为 SWD 。
点击Target Device后面按钮,在弹出芯片Device中输入STM32L431. 在弹出菜单列表中选择STM32L431RC 。
然后点击OK点击 file, 点击File/Open data file, 选择要下载的程序(格式为.hex)点击软件target -contact 软件连接目标板如果连接成功,下方信息栏目会显示Connected successfully如果连接失败, 请确认目标板已上电,或重新插拔连接线与JLINK USB连接线。
或关闭J-FALSH软件重新连接。
点击Target- Manual Programming -Program & Verify,即可开始下载程序。
如果芯片有读写保护或下载失败,可以点击先Unsecure Chip(解除保护)再点击Erase Chip(擦除芯片),然后再烧重新烧写程序。
关于STM32的FLASH操作
关于STM32的FLASH操作STM32是STMicroelectronics公司开发的一系列32位ARM Cortex-M微控制器。
在STM32微控制器中,FLASH (快闪存储器)是用于存储应用程序和数据的重要组件。
在本文中,我们将详细介绍STM32的FLASH操作。
1.FLASH简介:FLASH是一种可擦除可编程的非易失性存储器,常用于存储应用程序代码和数据。
STM32微控制器的FLASH存储器由多个扇区组成。
每个扇区的大小可以是1KB、2KB、4KB或16KB,具体取决于所使用的芯片型号。
FLASH的主要特点包括可擦除、可编程和快速存取。
2.FLASH的特点:2.1 可擦除:FLASH存储器中的数据可以通过擦除操作来清除。
擦除操作可以是扇区擦除(Sector Erase)或全片擦除(Mass Erase)。
扇区擦除只清除指定的扇区,而全片擦除则清除整个FLASH存储器。
2.2 可编程:FLASH存储器中的数据可以通过编程操作来写入。
编程操作可以是半字编程(Half-Word Program)或字编程(Word Program)。
半字编程一次可以写入16位的数据,而字编程一次可以写入32位的数据。
2.3快速存取:FLASH存储器具有快速存取速度,使得应用程序可以在很短的时间内从FLASH中读取数据。
3.FLASH操作注意事项:在进行STM32的FLASH操作时,需要注意以下几个方面:3.1对于每个扇区的擦除操作,只能在原来数据全为‘1’的情况下进行。
因此,在进行擦除操作之前,应该先将该扇区的数据写为全‘1’。
3.2进行编程操作时,只能将数据从‘1’写为‘0’,而不能将数据从‘0’写为‘1’。
因此,在进行编程操作之前,应该先将该数据所在的字节或半字擦除为全‘1’。
3.3FLASH存储器的数据写入操作需要采取双字节对齐的方式。
如果数据不是双字节对齐,则必须先将数据拷贝到对齐的缓冲区中,再进行编程操作。
STM32在SRAM、FLASH中调试代码的配置方法
STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试。
除此之外,SRAM 存储器的写入速度比在内部FLASH 中要快得多,所以下载程序到SRAM中的速度较快。
所以我们很有必要建立两个版本的工程配置,在SRAM中调试程序完毕后,再把代码下载到FLASH中即可。
这篇笔记主要分享在keil5中配置FLASH调试与SRAM调试的详细配置方法及如何切换两种配置。
本篇笔记以STM32F103ZET6为例。
其FLASH大小为512KB,SRAM的大小为64KB。
FLASH基地址为0x08000000,SRAM基地址为0x20000000。
在STM32F10XXX 里,可以通过BOOT1、BOOT0引脚来选择三种不同的模式:我们要在FLASH中进行硬件仿真调试还是在RAM中进行硬件仿真调试需要对这两个boot脚进行对应的设置以及程序下载的地址进行设置。
在F L A S H中进行硬件仿真调试1、硬件设置BOOT0配置为0,BOOT1随意设置。
2、keil设置本文以keil5为例。
步骤如下:(1)点击如下按钮,修改target的名称:target的名称是可以随意更改的,这里我们改为FLASH。
(2)点击Project->Options for Target Flash...(也可以点击魔术棒那个图标)进行配置。
首先对Target选项卡设置:设置IROM1的起始地址为0x8000000,大小为0x80000,即FLASH的基地址与大小。
设置IRAM1为0x20000000,大小为0x10000,即SRAM的基地址与大小。
(3)Debug选项设置:调试器根据实际进行选择,我们这里使用的调试器是ULINK2。
其它的按默认设置即可,然后点击Settings:(4)编译,然后按Ctrl+F5进入调试界面:然后点击全速运行:在Disassembly窗口中可看到地址为0x0800xxxx,说明代码烧进了FLASH中,这时候就可以像使用其他C语言IDE调试C语言程序一样打断点、单步运行我们的STM32程序啦。
史上最全STM32调试步骤!
STM32 调试步骤 调试前,首先跳线 J9 的 2-3 脚短接,跳线 J4 的右边两个脚短接,跳线 J5 短接,J8 短接,J2 的 1-2 短接,3-4 短接。 将 Jlink 与学习板,USB 延长线与学习板,串口延长线与学习板(或者 USB 转串口线与学习板)连接起来,这时 LED 灯 LED5,LED6 都应该点亮, 如果不亮,说明板子有问题。 打开串口助手,按照如下设置: 1、从桌面打开 J-Flash ARM V4.02 如图所示。 也可以按照如下顺序打开 J-Flash ARM 。 “开始 à 程序 àSEGGERàJ-Link ARM V4.02àJ-Flash ARM”,如下图所示。 2、打开 J-Flash ARM 后,先进行芯片选项设置,打开 OptionsàProject
6、烧录成功后,按下学习板上的 RST 按键(学习板最右边的那个按键), 这时候 4 个 LED(LED1-LED4)会点亮,说明程序烧录成功,焊接的 LED 电路也正确。
settings 如下图所示。 出现如下图所示的窗口,按照图中所示步骤进行设置 设置完成后,点击“确定”,保存设置。 3、选择烧录文件。点击 FileàOpen,如下图所示, 出现如下窗口, 按照下面图中提示操作, 随后会显示打开的文件,如下图所示 4、如果是第一次连接 jlink 与学习板,则按照下面图示操作 如果不是第一次连接学习板,则按下面图示操作 连接成功后,会有如下提示,否则说明板子与 jlink 之间连接有问题 5、烧录程序,按照下图所示操作
STM32教程系列之FLASH
一、实现的功能1.实现对STM32Fxxx的片内FLASH的擦除和烧写,并读出后进行检验。
2.用串口打印出检验FLASH内容是否正确的变量值。
二、实验操作及现象1.双击FLASH.eww打开工程文件,然后进行编译。
2.用Flash Loader将程序下载到ARM内,或者利用JLINK等仿真器进行仿真。
3.在程序运行前,用串口线将开发板的串口1和PC机的串口1连接,并打开“串口调试助手”,设置波特率为115200,将会看到每0.5秒显示一次“Flash Status=1”,则说明FLASH操作成功,否则说明FLASH操作失败。
三、片内FLASH学习大家可能会疑惑,既然我们可以利用工具将代码下载芯片内部,为什么还要讲解Flash编程呢?目的是让大家掌握后可以编写自己的BootLoader,例如用CAN总线接口来更新产品中的升级代码,不需要将产品拆卸即可完成。
另外一个很重要的问题就是我们要保护好自己编写的代码,否则被破_解后,就成别人的产品了。
1.解除Flash锁复位后,闪存擦写控制器模块是被保护的,不能写入FLASH_CR寄存器,通过写入两个关键字(KEY1,KEY2)到FLASH_KEYR寄存器打开闪存擦写控制器,才可以进行其他闪存操作。
其中KEY1为0x45670123,KEY2为0xCDEF89AB。
编程如下:FLASH->KEYR = FLASH_KEY1;FLASH->KEYR = FLASH_KEY2;2.页擦除在FLASH操作中,每次擦除只能擦除一页,不能一个字节一个字节的擦除,其实所谓的擦出就是将指定的页全部填写成0XFF,下面是页擦除的过程:-检查FLASH_SR寄存器的BSY位,以确认没有其他正在进行的闪存操作;-用FLASH_AR寄存器选择要擦除的页;-设置FLASH_CR寄存器的PER位为1;-设置FLASH_CR寄存器的STRT位为1;-等待BSY位变为0;-读出被擦除的页并做验证。
STM32在SRAM、FLASH中调试代码的配置方法
STM32在SRAM、FLASH中调试代码的配置方法STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试。
除此之外,SRAM 存储器的写入速度比在内部FLASH 中要快得多,所以下载程序到SRAM中的速度较快。
所以我们很有必要建立两个版本的工程配置,在SRAM中调试程序完毕后,再把代码下载到FLASH中即可。
这篇笔记主要分享在keil5中配置FLASH调试与SRAM调试的详细配置方法及如何切换两种配置。
本篇笔记以STM32F103ZET6为例。
其FLASH大小为512KB,SRAM的大小为64KB。
FLASH基地址为0x08000000,SRAM基地址为0x20000000。
在STM32F10XXX 里,可以通过BOOT1、BOOT0引脚来选择三种不同的模式:我们要在FLASH中进行硬件仿真调试还是在RAM中进行硬件仿真调试需要对这两个boot脚进行对应的设置以及程序下载的地址进行设置。
在F L A S H中进行硬件仿真调试1、硬件设置BOOT0配置为0,BOOT1随意设置。
2、keil设置本文以keil5为例。
步骤如下:(1)点击如下按钮,修改target的名称:target的名称是可以随意更改的,这里我们改为FLASH。
(2)点击Project->Options for Target Flash...(也可以点击魔术棒那个图标)进行配置。
首先对Target选项卡设置:设置IROM1的起始地址为0x8000000,大小为0x80000,即FLASH的基地址与大小。
设置IRAM1为0x20000000,大小为0x10000,即SRAM的基地址与大小。
(3)Debug选项设置:调试器根据实际进行选择,我们这里使用的调试器是ULINK2。
其它的按默认设置即可,然后点击Settings:(4)编译,然后按Ctrl+F5进入调试界面:然后点击全速运行:在Disassembly窗口中可看到地址为0x0800xxxx,说明代码烧进了FLASH中,这时候就可以像使用其他C语言IDE调试C语言程序一样打断点、单步运行我们的STM32程序啦。
STM32FLASH操作
STM32 flash操作对芯片内部flash进行操作的函数,包括读取,状态,擦除,写入等等,可以允许程序去操作flash上的数据。
一、存储器映射1、统一编址,程序存储器、数据存储器、外设寄存器组织在一个4GB的地址空间。
2、小端格式3、映像(stm32f107,256KB产品)可以看到,所谓的256KB闪存,是指主存储,片上FLASH如下图所示:介绍了片上的资源后,来看他们的地址映像。
芯片将4GB的空间,划分为8个512MB的块(block),这些块有些是整块不用的,芯片对地址的安排可以参考数据手册,memory mapping章节中的那个图。
只有block1、2、3、7是使用的。
地址中block7是核内的外设对应的地址,block2是其他外设对应的地址。
block1的低地址64KB是片上SRAM,block0则如下图option bytes即是选项字节;system memory就是系统存储,也即片上ROM;这两部分就是所谓信息块。
Flash就是指主存储,有256KB。
再往下看alias to flash or system memory.....这个区域256KB就是启动开始的区域。
这个区域并没有一个自己的存储器,只是根据BOOT0、BOOT1的接法来选择哪个存储器映射到这个地址上。
如下图选择用户闪存启动,是典型的做法;选择系统存储器,则在ST烧写进去的自举程序引导下,通过USART1下载程序;选择从SRAM执行代码则方便调试,比较快。
二、复位CM3将复位视作异常,优先级最高的异常。
stm32f1有三种复位:系统复位、电源复位、备份区复位。
前两种是真正的复位,对他的响应由硬件完成,这个响应对软件流的影响是这样的:程序指针指向0x0000 0004,这个单元存储的是复位服务子程序(或者汇编叫子过程),同时从0x0000 0000获取堆栈顶的地址。
不同的复位类型还有对其他寄存的不同复位方式,这就完成了复位。
Jflash简易 说明
Jflash简易下载说明
1、安装JLink_V490
解压压缩包Setup_JLink_V490,双击安装即可完成安装。
得到J-Flash 软件,如图1所示。
图1
2、打开J-Flash得到提示框,按照下图二设置后点击Start J-Flash进入软件。
得到如图三
图二
图三
3、点击Options-->Project settings得到Project settings窗口。
General 选项卡设置如图四。
Target Interface选项卡设置如图五。
CPU选项卡设置如图六所示,单片机型号选择STM32F103C8。
Flash选项卡不用设置如图七所示。
Production选项卡设置如图八所示。
设置完成点击确定按钮,得到图九。
图四
图五
图六
图七
图八
图九
4、点击File-->Open data file选择hex文件,后得到图十。
图十
5、用USB 线把Jlink 、单片机和PC 按照图十一连接起来。
图十一
点击Target-->Connect 完成连接GND CLK DIO VCC
图十二
6、点击Target-->Auto完成程序下载,得到图十三。
图十三
Edit by dasy
2017.06.01。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32入门系列教程如何使用J-Flash调试
Revision0.01
(2010-04-12)
对初学者来说,要进行STM32的程序下载调试,一般有三种方法:
(1)使用SEGGER J-Flash(J-Link)下载程序到闪存中运行;
(2)使用串口ISP来下载HEX文件到CPU中运行;
(3)J-Link+MDK组合,来在线调试程序(可下载、调试)。
本文档讲述如何在芯达STM32开发板上使用SEGGER J-Flash下载HEX文件。
而其他两种方法,我们将在文档《如何使用MDK+J-Link调试》、以及《如何使用STM32-ISP下载调试》中详细说明。
先来解释SEGGER。
实际上,大家更为熟悉的ARM仿真器J-Link,就是由SEGGER公司开发的。
J-Link是SEGGER为支持仿真ARM内核芯片推出的JTAG 仿真器。
不管什么CPU的仿真器,都需要安装其相应的驱动后才能使用。
J-Link也不例外,它的驱动软件可以去官方网站:下载最新版本。
这里使用的驱动软件版本是V4.08l,该驱动的安装非常简单,请参考文档《如何安装J-Link驱动软件》。
安装完毕,会出现如下两个图标:
现在开始我们的工作吧!
步骤一先进行设备连接操作。
芯达STM开发板的JTAG口(开发板面朝上,最顶端有一个JTAG20pin的插口),与J-Link V8仿真器的输出排线连接,J-Link另一头的USB插口则插在电脑的USB口上。
这时,J-Link的指示灯开始闪烁,并保持“点亮”的状态。
注意:大家购买J-Link仿真器的时候,JTAG接口要求是标准的20pin的2.54间距的针座。
否则需要转接卡进行JTAG接口的转换。
步骤二进入PC的桌面,点击上图左边的图标:J-Flash ARM V4.081,出现如下界面:
步骤三我们先来进行project设置,保存后会自动识别该配置。
不进行project设置,则在后续步骤进行连接connect开发板的时候,会提示找不到flash 设备下载,导致无法连接,如下所示:
点击“Options”,再点击“Project settings”,如下图所示:
步骤四在弹出的窗口中进行设置。
由于市面上大多数的J-Link仿真器都采用USB接口,因此需要检查“General”选项卡,是否已选中USB,如下图所示:
步骤五点击“CPU”选项卡,在左边“Device”选中,并在下拉菜单中选择CPU为ST STM32F103VE,其他参数默认,如下图所示:
步骤六点击“Flash”选项卡,如下图所示,查看现在基址是否为08000000,然后点击确定。
步骤七现在回到主窗口,发现信息已经更改如下,红色框中部分:
步骤八如果想保存下刚才的配置,可以点击“File”—>“Save as…”实际上,不需要保存。
笔者做了实验,下次启动J-Flash后,默认就是上次的配
置。
现在打开一个需要下载的HEX文件。
在“File”中,点击“Open”,会跳出如下对话框,选择一个HEX文件。
注意,在芯达STM32开发板的例程文件夹中,均有编译好的HEX文件,可以选择一个。
笔者在这里选择了GPIO-LED例程的HEX文件,然后点击打开。
现在您看到的窗口如下,在窗口的右边,有一大堆十六进制的代码,这就是HEX文件的十六进制表示了。
步骤九现在让J-Link仿真器连接到目标板。
点击主窗口中的“Target”,
点击“connect”,软件就会进行连接,如下图所示:
大约1秒钟后,连接成功,在窗口下方提示connect successfully,如下信息:
步骤十下载代码到目标板。
点击“Target–>auto”,即可把刚才的HEX 文件下载到目标板中。
期间会显示下载的进度,最后提示:
OK,这就表明我们使用J-Link下载成功啦~现在关掉芯达STM32开发板的电源,重新上电。
LED在有次序地闪烁——表明刚才的LED的例程编译文件HEX已经烧写到CPU中正确运行。
以上讲述的就是如何使用J-Link烧写一个HEX文件。
感谢大家查阅本文档,如果您还有不理解的地方,请直接到我们的官方网站:ARM技术交流网,进行讨论。
我们将会尽快给您做出答复。
附:
福州芯达工作室简介
福州芯达工作室成立于2009年9月,我们专注于嵌入式产品的研发与推广,目前芯达产品涉及ARM9系列、STM32系列。
芯达团队成员均硕士研究生毕业,具有一定研发实力。
我们的愿景在于把福州芯达打造成国内一流的嵌入式品牌。
或许我们现在做的还不够,但是我们真的努力在做,希望通过我们的努力,能够在您学习和使用芯达产品的过程中带来或多或少的帮助。
这是芯达为了配合STM32开发板而推出的入门系列教程。
如果您在看了我们的教程后,理清了思路,我们都会倍感欣慰!让我们一起学习,共同进步,在征服嵌入式领域的道路上风雨同行!
官方网站:/
官方淘宝:/。