在RealView MDK中使用J-Link对STM32F130ZET6外部Nor Flash烧写的方法

合集下载

STM32F103ZET6驱动NRF24L01

STM32F103ZET6驱动NRF24L01

/**************************************************** 函数名:SPI 初始化 形参: 返回值: 函数功能:写使能 ****************************************************/ void SPI2_Config(void) {
描述:这个函数设置 nRF24L01 为接收模式,等待接收发送设备的数据包
u8 status; CS_LOW(); // CSN 置低,开始传输数据 SPI2_ReadWriteByte(reg); // 选择寄存器 status=SPI2_ReadWriteByte(0); // 然后从该寄存器读数 CS_HIGH(); // CSN 拉高,结束数据传输
return (status); // 返回寄存器数据 } /****************************************************************************** **
timeout=0;
while(SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE) == RESET);
{
timeout++;
if(timeout>500)return 0;
}
return SPI_I2S_ReceiveData(SPI2);
}
/************************************************** 函数:SPI_RW_REG()
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //MOSI -- PB15 SCK -- PB13

在KeiluVision4MDK下配置开发STM32F103Z完整教程

在KeiluVision4MDK下配置开发STM32F103Z完整教程

在KeiluVision4MDK下配置开发STM32F103Z完整教程环境搭建:1、安装 Keil uVision4 MDK略2、安装 J-Link安装 Setup_JLinkARM_V4501.exe 驱动时,会弹出【SEGGER J-Link DLL Updater V4.501 】对话框,不要选择 Keil 直接点击OK即可,因为Keil对⽀持M3内核SW接⼝采⽤了JL2CM3.dll 这个⽂件,该⽂件的版本号是和该⽬录下Jlink驱动版本号配套的,不要擅⾃改变他们,否则不能使⽤。

建⽴⼯程:1、在桌⾯上建⽴⼀个⽂件夹【MyStm32】⽂件夹2、在【MyStm32】⽂件夹下建⽴【USER】、【FWlib】、【CMSIS】、【Output】、【Listing】⽂件夹。

【USER】:存放⽤户⾃定义的应⽤程序【FWlib】:存放库⽂件【CMSIS】:存放M3系列单⽚机通⽤的⽂件【Output】:存放编译器编译后输出的⽂件【Listing】:编译器编译过程中产⽣的⽂件3、将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 的【inc】跟【src】这两个⽂件夹拷贝到【FWlib】。

【inc】、【src】⽚上外设驱动的源⽂件和头⽂件。

4、\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下的main.c、stm32f10x_conf.h、stm32f10x_it.h、stm32f10x_it.c 、system_stm32f10x.c 拷贝到【USER】stm32f10x_conf.h:配置⽂件stm32f10x_it.h、stm32f10x_it.c:中断函数⽂件。

system_stm32f10x.c:ARM公司提供的符合CMSIS标准的库⽂件5、STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup的【arm】⽂件夹的拷贝到 MyStm32\CMSIS\startup。

J-Flash下载STM32用J-link的设置方法

J-Flash下载STM32用J-link的设置方法

1、打开“开始”-“所有程序”-SEGGER-JLink ARM v4.14c-J Flash ARM
2、打开“Option”—》“Project settings…”,进行烧写前的必要设置,如下图:
在“General”页,选择“USB”,如下图:
在“Target Interface”页,选择“JTAG”,JTAG速度设置为“Auto selection”,如下图
在“CPU”页,选择开发板的CPU型号:ST STM32F103VB,如下图:
“FLASH”页不用设置,默认设置就可以了。

在“Production”页,我们把“Start application”选上,则在下载成功之后,程序会自动运行。

在设置完成后,我们点击“应用”和“确定”退出。

在JLINK软件界面左边,将显示烧写信息,如下图:
我们点击“Target”—》“Connect”,开始连接目标板:
连接成功会有提示信息,如下边的状态拦:
接着,我们在“File”—》“open”中打开烧录的HEX文件,如图:
加载完成后,选择“Target”—》“Auto”或者快捷键“F7”进行自动烧录:
烧写成功!如下图:
烧写成功之后,JLINK自动断开与开发板的连接。

我们可以看到,程序已经在开发板上运行了!。

JLINK及KEIL MDK使用手册

JLINK及KEIL MDK使用手册

JLINK及KEIL MDK使用手册概述本章对 JLINK 驱动程序的安装、使用和对 RealViewMDK (Keil μVision3)集成开发环境安装及其集成开发环境的基本使用和设置进行了介绍。

3.1、安装JLINK仿真器驱动程序JLINK仿真器驱动程序可以从付带光盘或 SEGGER网站/pub/jlink/Setup_JLinkARM_V402c.zip获取最新的安装文件(目前最新安装版本为 Software and documentation pack V4.02c [7177 kb]),下载完成后双击执行,出现如图 3.1所示的安装界面,根据界面安装向导的提示,完成JLINK仿真器驱动程序的安装。

假设安装在 D:\SEGGER目录下。

图3.1按Yes出现下图界面图3.2 按Next继续下一步操作图3.3选择安装目录后按Next继续下一步图3.4如果你还在以前装了IAR的集成开发环境将出现下面图3.5的提示,提示你选择更新IAR 下的JLINK仿真器的动态链接库文件,一般选上后按OK完成JLINK仿真器的安装。

图3.53.2、如何使用JLINK仿真器软件3.2.1、使用J-FLASH ARM 烧写程序到芯片FLASH运行J-FLASHARM 出现图3.6图3.6 进行烧写前的必要设置如:图3.7图3.7选择MINI-STM32开发板的CPU型号,选择完成后按确定退出设置。

图3.8设置完成后左边显示烧写信息图3.9连接目标板,连上后会有提示信息,见下边的状态拦。

图3.10连接成功后如图3.11图3.11接着File->open打开烧录文件,如图3.12图3.12加载完成后选择Target->Auto或快捷键F7进行自动烧录。

图3.13烧写状态,图3.14图3.14 烧写成功,图3.15图3.15关于J-FLASH ARM更详细的操作请参阅JLINK的用户手册。

3.2.2、使用J-Link command设置和查看相关调试信息J-Link command包含了所有设置和查看相关调试信息的命令,J-Link command基于命令行输入方式。

STM32在keil下使用jlink时产生错误的解决方法

STM32在keil下使用jlink时产生错误的解决方法

最近一段时间一直在学习STM32和ucos的移植,使用的开发环境是keil u4版本。

仿真器是80元买的jlink。

在学习了STM32固件库和ucos内核与移植相关的程序之后,写了一个流水灯程序,准备下载到板子上看看情况。

哪知程序还没有下进去,在debug时,keil的错误提示到:Error: Flash download failed-"Cortex-M3"感觉这么错误很普遍,也是初学者常常遇到的错误,下面我就将这个错误产生的原因和解决方法赘述一下:错误产生的原因和分析,解决。

首先,我们看到提示信息是有关flash的,那么我们来查看一下STM32F103XB的数据手册关于这部分的描述(我使用的芯片是STM32F103RB,有128kflash。

)知道了原来flash在此芯片中的地址是从0x0800 0000到0x0801 FFFF 这段,也就是说这段存储空间是用来存储程序。

而在STM32芯片方面,它又有一个规则,那就是芯片启动的方式,如果你把程序下载到了flash中,那么在复位芯片之前或者通电之前,要将boot0,boot1两个引脚拉到高电平,这样在启动时,芯片初始化之后,运行程序代码才是从flash地址开始执行的。

于是,我们来查看一下keil中仿真器的设置,是不是正确,设置的选项在keil软件的project-options for target中的Utilities中,先来查看下仿真器是否选对,然后点settings,弹出如下菜单:查看一下programming Algorism 下的flash地址是否正确,如果不正确则会引起开始那个错误的提示信息,如果正确还是出现那个错误,那么按照官方给的解决方法是,删除现有的flash地址,重新配置一下,记得要选对芯片型号和地址空间。

配置好之后点击OK退出。

然后再查看一下Target中的地址,是否跟你重新添加的一致,如果一致,那么点OK退出。

KEIL下使用Jlink调试STM32 核心模块开发板

KEIL下使用Jlink调试STM32 核心模块开发板

KEIL下使用Jlink调试STM32 核心模块开发板大家知道,之前在Keil下可以通过RDI方式使用全功能版Jlink来调试LPC2000、STR912等很多芯片的,不过唯独是无法用Jlink 的RDI方式来调试STM32系列,因为在Jlink RDI Configuration 中的Flash设置中没有STM32芯片的选项,如下图所示。

在Keil宣布支持Jlink后的MDK3.22版本中开始直接支持Jlink了,这对大家来说无疑是一个好消息,因为在Keil中可以直接像使用Ulink2一样使用Jlink了。

不过经过测试好像还存在一些bug,测试情况详见:/bbs/viewthread.php?tid=8933&extra=page%3D3最主要的问题就是:添加下载算法不能一一对应,完全是乱的,如下图所示:后来经过awake兄弟的指导和帮助终于搞定了,在这里对awake兄弟表示感谢。

这个问题在Keil的官方网站给出了答案,详见:/support/docs/3410.htm 下面就给出具体解决方法,很简单,只需两步,复制三个文件即可:1、安装Jlink的最新驱动,本文安装的是V3.88版本,最新的驱动可以从segger官方网站下载:/download_jlink.html。

安装完成后,打开C:\Program Files\SEGGER\JLinkARM_V388目录(默认安装目录),如下图所示,复制JLinkARM.dll和JLinkRDI.dll两个文件到Keil的安装目录:\Keil\ARM\Segger下,替换以前的文件,如下所示:2、从keil网站下载JLTAgdi.dll文件也复制到:\Keil\ARM\Segger目录下,添加完成后如下图所示:完成上面两步后,现在我们打开Keil软件来进行一个验证。

任意打开一个STM32的程序,本文打开时Keil自带的USBMem例程,在:\Keil\ARM\Boards\Keil\MCBSTM32\USBMem目录下。

使用Keil MDK以及标准外设库创建STM32工程

使用Keil MDK以及标准外设库创建STM32工程

使用Keil MDK以及标准外设库创建STM32工程1.1 使用Keil MDK以及标准外设库创建STM32工程通过上一节对标准外设库的介绍,想必各位读者对标准外设库已经有了基本的认识,然而由于标准外设库中文件众多,很多初学者在开始很长一段时间内甚至都无法完全自己建立一个工程,很多人只是依赖标准外设库或给定的工程模板。

本节就介绍怎样利用Keil MDK 开发环境和标准外设库来搭建自己的工程。

建立一个基于标准外设库其实并不复杂,网络上也有很多关于怎样在Keil MDK下建立工程的教程,方法也各异,本节所介绍的方法本着少改动、便于使用、方便更换器件等原则,给大家介绍怎样在Keil中创建一个工程,并以一个最简单的例子来说明怎样下载和调试程序。

1.1.1 开发工具与开发环境1. 软件版本本节所使用Keil MDK 为目前的最新版V4.21,具体版本信息如图5-6所示。

其他版本差别不大,读者可以根据自己使用的版本进行操作或者从Keil的官网下载新版本。

使用的标准外设库为目前最新的V3.5版本。

使用的开发调试工具为JLINK-V8,使用的驱动版本为V4.08l。

图5-6 MDK详细版本信息2. 建立工程目录首先先建立一个用于存放工程的文件夹,此处命名为STM32,在文件夹下分别建立LIB、USER、MDK三个文件夹,分别用于存放标准外设库文件、用户程序文件、工程目录。

在MDK 文件夹下建立List、Obj两个文件夹,分别用于存放在编译过程中产生的临时文件和输出文件。

接下来拷贝标准外设库和相应的文件到工程目录中,首先拷贝STM32F10x_StdPeriph_Li b_V3.5.0\Libraries文件夹下的两个文件夹CMSIS和STM32F10x_StdPeriph_Driver到刚刚新建的STM32\LIB目录下,接下来拷贝用户编写程序的程序文件,此文件可以从标准外设库自带的例程中拷贝,这里从STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Exam ples\ADC\3ADCs_DMA目录下拷贝main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it. h四个文件,这四个文件是在编程的时候用户往往需要根据实际需求进行修改的。

J-LINK J-FLASH 下载STM32单片机程序使用教程-V1

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(擦除芯片),然后再烧重新烧写程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在RealView MDK中使用J-Link对STM32F130ZET6外部Nor Flash烧写的方法by 314forever
文章中以STM32F103ZET6外接SST39VF6401B为例,在红牛实验板上操作成功。

图例中用到的地址需要根据你自己的情况作相应调整。

新建一个工作目录。

将x:\Keil\ARM\Flash\STM32F10x\下的所有文件拷进来,将x:\Keil\ARM\Flash\SST39x640x\下的FlashPrg.c文件拷进来并覆盖同名文件,将x:\Keil\ARM\Flash\下的FlashOS.h文件拷进来。

如果你使用的Nor Flash 不在MDK自带驱动的范围内,那么需要根据FlashPrg.c文件自行编写相关函数
打开工程STM32Fx,在FlashDev.c中添加如下代码,有关这段代码请参考x:\Keil\ARM\Flash\SST39x640x\FlashDev.c
修改FlashDev.c和FlashPrg.c中的头文件引用
在目标属性中修改宏定义和输出文件
编译此工程,将得到的STM32F10x_NOR.FLM文件拷入x:\Keil\ARM\Flash\文件夹中。

然后在MDK的Flash下载设置中就出现了NOR Flash的选项
这样我们就得到了MDK对Nor Flash的接口文件,接下来是如何在工程中将数据弄到Nor Flash上。

新建工程,将要烧入Nor Flash中的数据单独存放在一个文件中
然后自定义分散加载文件
在这里把数据定义到Nor Flash中,注意地址要根据你自己的情况来设置
在程序中要对数据进行使用,否则编译后未用到的数据可能会被优化掉
编译结果
添加Flash烧写算法,MDK会根据不同的地址采用不同的算法
设置初始化操作文件,文件中的Bank初始化要根据你的情况来调整
点击Load就可以把程序和数据分别烧入STM32和Nor Flash中,在烧写过程中可以看到最下方进度条中对不同地址烧写的情况(这个图始终截不到合适的)
以后程序中就可以使用Nor Flash中的数据了
如此操作后数据文件也就没什么用了,可以从工程中删除,同时还要修改分散加载文件(不改也没什问题,但是会有烦人的警告)
用这个方法只能对Nor Flash进行写,没法读。

我还尝试过在J-Flash中自定义初始化的方法来对Nor Flash进行操作,结果总是提示
不知道为什么。

不知道有没有大侠用这种方法成功过(44B0用类似的方法是可以的)。

另外,使用相同的办法理论上应该可以对NAND Flash烧写,不过我对NAND Flash的基本操作还没掌握,你要是有兴趣不妨尝试一下。

相关文档
最新文档