Keil MDK 3.5 Jlink V8 在STM32中SRAM 调试成功方法成功.pdf
IAR下用JLINK 调试STM32心得
用JLINK V6 调试STM32的教程相关配置:开发板用的是万利的STM3210B-LK1JLINK用的是出品的全功能JLINK V6.0编译调试环境为:IAR EWARM 4.42AJLINK 驱动用的是3.86g下载地址:/product/jlink/Setup_JLinkARM_V386g.zip针STM3210B-LK1评估板需要改动或设置的地方有3点:第一:STM3210B-LK1评估板的BOOT0及BOOT1跳线请跳到0位置.第二:STM3210B-LK1评估板上的JTAG接口的第1,2脚请接上3.3V(手工飞线)。
第三:JLINK 用SWD方式调试此款板子时,需要把板子上的R4,R5断开(因其板子上有STLINK II)否则调试不成功哟目录一设置仿真器类型----JLINK或JTRACE二 JLINK仿真器相关设置三 JTAG/SWD 两种方式的调试一设置仿真器类型----JLINK或JTRACE安装好Manley板子的例程用LCD DemoD:\Manley\EKBoard\EKSTM32F\LCDDemo(lcd+led+buttom)\LCDDemo\project\EWARM菜单:Project->optionsProject->options ->Debugger->Setup->Driver 选JLINKProject->options ->Debugger->Download 二 JLINK仿真器相关设置下面的设置可以用默认:设置完OPTIONS点OK退出设置。
重新编译工程:接下来进入仿真试试。
一般万利的板子用的是STLINK II,以前的FLASH LOADER要重新设置,否则有可能下载不成功。
原因是flash loader的问题。
删除:新建后,点OK退出即可。
进入仿真器设了5个断点分别全速运行到断点处。
注:CORTEX M3只支持6个硬件断点,三 JTAG/SWD 两种方式的调试JTAG方式:用SWD方式调试STM32设置SWD方式Project->options ->J-Link/J-Trace->connection->interface 中选择SWD。
STM32在SRAM中调试程序配置步骤
STM32在SRAM中调试配置全过程(在STM32F103ZET6开发板已验证通过)一、硬件层面配置必须配置boot[0,1]均为高电平,以保证硬件从SRAM启动(之前曾看过一篇博文说不用配置boot[0,1],好像这种说法不正确------待考证。
反正我反复试过如果不配置boot[0,1]会进入Flash的程序,根本不能从SRAM启动)。
二、MDK编译器的配置第一步:点开魔术棒切换到配置程序存储区的起始地址如下图:其中起始地址可以不和图中一样(但好像要保证R/O的起始地址在R/W的起始地址前边------待验证)。
第二步:切换到配置预定义命令如下图:这步的目的是为了把STM32的中断向量表映射到SRAM,STM32库文件内的system_stm32f10x.c文件里有void SystemInit (void)这个函数里有这个段就是为了映射中断向量表。
修改相应的偏移量即可重映射中断向量表的起始地址。
第三步:切换到配置如下图:点击跳转到,配置如下图(相应地址要根据你自己的进行配置),点击确定退回到选项栏,进入第四步配置。
第四步:配置“Initialization File:”栏如下图:在红色框所圈的栏内填入如下路径:..\..\..\..\..\Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky\Dbg_RAM.ini然后点把第25行的”LOAD LED”改为你工程名。
自此就完全配置完成了,将程序编译后下载到单片机内,此时程序还没有跑起来,必须点击MDK的后程序才能跑起来,这点有点莫名其妙,我也不知道原因,可能是我其他选项配置问题。
声明:由于本文编写时间很短,没有进行更详细步骤编写(其实也没有必要再细了),但是绝对是验证可以在SRAM上跑程序。
本人也是菜鸟,如有错误请指教,虚心接受。
本人QQ:53004011,邮箱为53004011@;欢迎骚扰!。
Jlink在MDK下使用Cortex-m3-Jlink模式开发STM32的说明
Jlink V7在MDK下使用Cortex-M3-Jlink模式开发STM32的说明开发环境:STM32F103RB(128K Flash 20K RAM)+MDK3.50+JLINK V7(v4.04)mdk3.50 新增一种cortex-ms-Jlink调试模式,可以很好地支持Jlink、Jlink-SWD调试,无RDI需要按复位的缺点。
烧写速度比RDI慢一些。
1 软件安装1.1 安装Segger jlink V4.04驱动安装在c:\Program Files\SEGGER\JLinkARM_V404插上jlink V7,可自动安装上USB驱动。
执行J-link command,查看版本。
如果已经连上目标板,可显示目标处理器信息。
如果Jlink V7 Firmware版本较低,它会自动升级到新版本Firmware。
1.2 MDK3.50安装安装到c:\Keil中,使用Keil_Lic.exe生成合适的license码并注册。
其中c:\keil\ARM\Segger有V3.90d的Jlink驱动1.3 驱动修正1. 备份c:\keil\ARM\Segger\*.*2. 拷贝c:\Program Files\SEGGER\JLinkARM_V404\ JLinkRDI.dllJLinkARM.dllJlink.exe到c:\keil\ARM\Segger\ 目录,覆盖原文件目的是4.04版包含STM32 FLASH程序,3.90则没有。
JLinkARM.dll可以替换(不同与mdk3.40)。
3. .建立MDK工程(1)选择STM32F103RB 并加入STARTUP文件,这一步就不用细说了吧,用过keil的人都会。
(2)工程中选择Options for target ‘xxx’,选择器件STM32F103RB(3) 配置Jlink:按照下图配置即可点击Settings按钮,选Debug页选择USB接口,注意软件缺省是TCP/IP模式,需要改为USB。
KEIL下使用Jlink调试STM32 核心模块开发板
在Keil宣布支持Jlink后的MDK3.22版本中开始直接支持Jlink了,这对大家来说无疑 是一个好消息,因为在Keil中可以直接像使用Ulink2一样使用Jlink了。不过经过测试好像 还存在一些bug,测试情况详见:/bbs/viewthread.php?tid=8933&ex tra=page%3D3 最主要的问题就是:添加下载算法不能一一对应,完全是乱的,如下图所示:
¥150.00
07年EDNChina 设计专题... ¥12.00
HSDSP2407+CP 开... ¥550.00
/619/13599.aspx
2009-1-31
KEIL下使用Jlink调试STM32 核心模块开发板【转帖】 -- STM32团队 -- EDN电... Page 2 of 6
【添加到收藏夹】 【回复】
wangxing
小组等级:
E币:4577 (E币换礼)
#2
文章发表于:2008-08-27 14:17 需要用到的三个DLL文件可以到下面的地方下载!!! /bbs/viewthread.php?tid=9595&extra=page%3D1
复制JLinkARM.dll和JLinkRDI.dll两个文件到Keil的安装目录:\Keil\ARM\Segger下,替 换以前的文件,如下所示:
2、从keil网站下载JLTAgdi.dll文件也复制到:\Keil\ARM\Segger目录下,添加完成后如下 图所示:
/619/13599.aspx
被过滤广告 被过滤广告
小组首页
分 类
我的小组
建立小组
帮助中心
排行榜
小组精华 浏览该小组的用户还看过...
STM32在Keil MDK环境下RAM上代码调试
STM32 在Keil MDK 环境下RAM 上代码调试
自从51 后就没碰过了Keil 了~从昨天下午又开始再次使用Keil MDK~不过
这次是for ARM 的~前几天的STM32W108 调试统统是在IAR 上进行的~刚在STM32F103ZE-EK 上进行了一个例程的调试~就发现原来更有方法在RAM 中
进行代码调试的配置~以前在IAR 中知道有个iar- cfg.icf 文件是关于存储分配的~貌似也可以如此~不过没实际操作过不敢下结论~索性就在Keil 下来了个尝
试~比较坎坷~也学到不少东西~
废话少说,进入正题~(Keil4 下的画面~这个配置的方法跟是3 一样~)
步骤与图示:
1.先给个CPU 的数据,需要注意的是三个红圈的地方,架构,型号,Flash
和SRAM 大小~如图1
图1
2.Target 的设置
1)勾上可以用微库,减小生成代码的大小
2,3)分别定义ROM 区位置及大小和RAM 区位置和大小。
在这里需要说
明的是,Cortex-M3 的架构有4G 的寻址空间,而Flash 的起始地址在
0x08000000,RAM 地址在0x20000000,在这里进行了第一次相关地址的更改~ 如图2
0x1000 为4K~这里的0xc000 则为48K 的ROM 分配~RAM 的为16K~基本上移植个uCOS-II 都够用了~。
如何通过JLINK烧写STM32程序
如何通过JLINK烧写STM32程序JLink是一种常用的调试工具,可以用于烧写STM32芯片上的程序。
下面是使用JLink烧写STM32程序的步骤:1. 首先,确保你已经安装了JLink驱动程序并且JLink调试工具已经连接到了电脑上。
2. 打开JLink调试工具,并选择你要烧写的目标芯片。
如果你不知道目标芯片的型号,你可以通过查看芯片上的标识或者查询相关的文档来确定。
3.确定你的目标芯片的烧写模式。
一般情况下,有两种常见的模式可以选择:SWD和JTAG。
SWD是一种常用的调试接口,相对较快且占用较少的引脚。
JTAG是一种通用的调试接口,相对较慢且占用较多的引脚。
根据芯片的具体支持情况和你的需求,选择适当的模式。
4. 调整JLink调试工具的配置,以便与目标芯片进行通信。
你需要提供目标芯片的设备ID和速度等参数。
这些参数可以通过查询芯片型号相关的文档或者使用JLink提供的查询命令来获取。
5. 准备好要烧写的程序文件。
程序文件可能是一个.bin文件,也可能是一个.hex文件。
你可以使用Keil或者其他的编译器生成这些文件。
6. 在JLink调试工具中选择“烧写”或者类似的功能选项。
根据JLink调试工具的不同,这个选项的名称可能有所不同。
7. 在弹出的烧写对话框中,指定要烧写的程序文件,并选择烧写的目标地址。
通常情况下,程序文件将会烧写到芯片的Flash存储器中。
8. 确认配置无误后,点击“开始烧写”或者类似的按钮,开始烧写程序。
烧写过程可能会需要一些时间,具体的时间取决于程序文件的大小和JLink调试工具的速度。
9.等待烧写完成,检查是否有错误出现。
如果烧写过程没有出现错误,那么程序应该已经成功烧写到了芯片上。
10. 断开JLink调试工具的连接,重新启动目标芯片。
目标芯片应该能够正常运行烧写的程序。
请注意,上述步骤只是一个基本的烧写流程示例。
具体的步骤可能会因为你使用的JLink调试工具和编译器的不同而有所不同。
STM32调试方法
STM32调试方法STM32是一款非常受欢迎的单片机系列,广泛应用于各种嵌入式系统中。
在开发STM32项目时,调试是一个非常重要的环节,它能帮助开发者检测和解决程序中的问题。
本文将介绍STM32的调试方法,包括硬件调试和软件调试。
一、硬件调试硬件调试是通过硬件工具来实现的,通常使用的工具有JTAG、SWD和UART等。
下面将详细介绍这些调试工具的使用方法。
1.JTAG调试JTAG是一种用于测试和调试电子系统的接口标准,它能够提供对目标设备的非侵入式访问。
在STM32项目中,JTAG接口一般用于调试目的,下面是使用JTAG调试STM32的步骤:步骤1:连接JTAG调试器和目标设备。
将JTAG调试器的TCK、TMS、TDI、TDO和GND引脚分别连接到目标设备的相应引脚上。
步骤2:配置STM32的调试模式。
在STM32的配置文件中,将调试模式设置为JTAG模式。
步骤3:使用调试工具进行调试。
使用JTAG调试工具,如OpenOCD或J-Link等,连接到JTAG调试器,然后启动调试器进行调试。
调试工具会与STM32建立连接,并允许开发者对程序进行单步调试、断点设置等操作。
2.SWD调试SWD(Serial Wire Debug)是一种单线(加地线)调试接口,它是ARM公司推出的一种调试接口标准。
SWD相比JTAG接口更简洁、更省引脚,因此在STM32项目中被广泛应用。
下面是使用SWD调试STM32的步骤:步骤1:连接SWD调试器和目标设备。
将SWD调试器的SWCLK、SWDIO和GND引脚分别连接到目标设备的相应引脚上。
步骤2:配置STM32的调试模式。
在STM32的配置文件中,将调试模式设置为SWD模式。
步骤3:使用调试工具进行调试。
使用SWD调试工具,如ST-Link或J-Link等,连接到SWD调试器,然后启动调试器进行调试。
调试工具会与STM32建立连接,并允许开发者对程序进行单步调试、断点设置等操作。
JLINK调试STM32
源唻昰伱(258293314) 14:58:07飞哥,请问,J-Link仿真点击之后就一直到不了main()位置???按照视频都配置3遍了。
崩溃中。
源唻昰伱(258293314) 14:59:09用J-Flash ARM V4.04测试连着成功啊源唻昰伱(258293314) 14:59:58源唻昰伱(258293314) 15:00:14源唻昰伱(258293314) 15:01:15然后复位之后,流水灯就在跑。
可就是仿真不了,无法单步啊。
源唻昰伱(258293314) 15:02:19在吗?求助下呀!G!L.Gr!SSom<agilesargentees@> 15:02:43有个选项,run to main 勾选了吗?源唻昰伱(258293314) 15:02:48选了源唻昰伱(258293314) 15:03:01G!L.Gr!SSom<agilesargentees@> 15:03:18debug后不点run 程序也开始跑吗?源唻昰伱(258293314) 15:03:23对zzy(366012395) 15:03:35这个要先J-LINK的源唻昰伱(258293314) 15:03:59?zzy(366012395) 15:04:25你是用J-Link仿真器的吗源唻昰伱(258293314) 15:04:33是的源唻昰伱(258293314) 15:04:39就是USB的那个zzy(366012395) 15:04:40我的也是,zzy(366012395) 15:04:45对zzy(366012395) 15:04:57上面的图也要选J-LinkG!L.Gr!SSom<agilesargentees@> 15:05:13 RDI那个下拉列表里面找找有无JLINK的zzy(366012395) 15:05:14就可以了,不知道你的行不行源唻昰伱(258293314) 15:05:45源唻昰伱(258293314) 15:05:49是这个吗?zzy(366012395) 15:05:54对源唻昰伱(258293314) 15:06:08OK 我试试源唻昰伱(258293314) 15:08:30出现这个错误源唻昰伱(258293314) 15:09:21 是不是源唻昰伱(258293314) 15:09:28 需要配置下呢?zzy(366012395) 15:10:13zzy(366012395) 15:10:31zzy(366012395) 15:10:44zzy(366012395) 15:11:01我的是这样设置的源唻昰伱(258293314) 15:13:13我的好了。
STM32Jlink调试总结
STM32Jlink调试总结Cepark Jlink调试总结Wkuang 2011-7-9 上周三,电子园老李给我打电话,看我有没有时间调试下电子园的Jlink。
我回答没问题,最近比较闲一点。
周一就收到电子园老李给我发过来Jlink套件包裹,打开一看,里面东西真不少,有51,avr最小系统套件,USB转串口套件,一个成品USB转串口,一个烙铁。
老李说用这些东西来给我练手用,呵呵。
在这里先谢谢电子园。
说说Jlink调试吧,周四,我把PCB带到公司,首先检测一下几个电源和地有没有短路的情况,板子电源和地都正常。
第一次焊接QFP64器件时,芯片引脚处的焊锡就黏在一块不流动,我把温度调到400读都不行,没办法只能换换个位子换到另外一个焊台去。
不换不知道,一换吓一跳啊,新换的焊台非常给力,五分钟把两个贴片芯片搞定(后来才知道我用的第一个焊台是坏的),其他的事情留到周六来办。
周六开始Jlink的调试,首先把Jlink的最小系统焊接完后(焊接过程请看我的另外一个帖子《Jlink焊接调试一些小经验》),ERASE 跳线帽短路5s,擦除芯片,TST跳线帽短路20,芯片自动少些Boot。
重新上电,at90sam7s64最小系统正常工作了,设备管理器上出现图1所示USB设备。
图1最小系统工作正常,在将其他电容电阻焊接完毕,在测试,出现了一下几个问题:问题1:打开Segger的GDB Server,后提示以下错误WARNING: Out of sync , resynchronising...WARNING: Out of sync , resynchronising...WARNING: Out of sync , resynchronising...Can not connect to J-Link via USB.J-Link>问题1解决方法:在网上搜了很多久(网络不给力,打开一个网页要几分钟),发现这是Segger Jlink软件的一个bug,以下是官方的答复SEGGER - AlexSuper ModeratorHi,the problem has been fixed in V4.20d which is planned to be released today.Best regards问题2我打开MDK,进入仿真器调试模式,选择Jlink,开始调试,出现如下警告界面,TCK 必须为高电平,让我检测我的目标板问题2解决方法:这个问题让我很纳闷,因为我开发板没有问题,这个Jlink的警告是让我检测开发板的硬件。
STM32在SRAM中调试KEIL4
STM32在Keil4 J-link V8 中SRAM 调试方法说明:此文章大部分为/view/f39c0534eefdc8d376ee32bf.html 下名称为KeilMDK在STM32中SRAM调试步骤6(红色部分)为本人所加,正是因为没有这部分,导致我当时一直不正常。
故整理后共享给大家目的是避免FLASH擦写次数的限制,和避免新手学习很快让MCU结束生命。
以本人STM32F103VET6为例,512K flash,64K SRAM,借鉴前人ULINK下调试的方法。
把内存分为32K用做FLASH,32K用做内存使用,这里以GPIO点亮LED为例子1.copy Keil安装目录下,例如C:\Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky中的RAM.ini到项目目录,启动Keil。
2.单击启动下图对话框,在Project Targets一项单击New(Insert)按钮,增加一个目标,命名为SRAM,然后OK。
3.然后再Select Target中选择SRAM。
4.左侧项目栏中选择SRAM,单击右键选择Options for Target SRAM”,打开选项对话框。
如上图所示,在target选项中修改IROM1的Start值为:0x20000000,Size:0x8000 IRAM1的Start值为:0x20008000,Size:0x8000;即内存分为32K用做FLASH,32K用做内存使用。
5.OutPut选项卡中也选中Create HEX File,如下图所示:6.注意Linker选项卡中的地址要和步骤4的Target 选项卡配置7.在Debug选项中仿真器选择Cortex-M3 J-LINK,Initialization File中点击Edit按钮选择刚才copy过来的RAM.ini文件,取消Load Application at Startup复选框,设置如下:8.RAM.ini内容为:9.然后点击仿真器一栏,Settings按钮,进一步设置,如下图,注意Debug选项中Interface中选择USB,10.如下图所示,在选项设置对话框中Utilities中,Use Target Driver for Flash Programming中选择Cortex-M3 J-LINK或或相关选项,并点击setting进一步设置11.如下图所示,在Flash Download中配置,选中Do not Erase,在RAM for Algorithm中Start设置为0x20008000,Size设置为0x8000,设置STM32F10x Med-density Flash的地址Start:0x20000000,size:0x00008000,点击OK。
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程序啦。
使用keil进行stm32单片机开发的流程 -回复
使用keil进行stm32单片机开发的流程-回复使用Keil进行STM32单片机开发的流程Keil是一种常用的集成开发环境(Integrated Development Environment,IDE),它被广泛用于嵌入式系统的开发。
在STM32单片机开发过程中,Keil可以提供开发者所需的一切工具和资源,以提高开发效率和质量。
本文将按照以下步骤来介绍使用Keil进行STM32单片机开发的流程。
1. 环境搭建在开始使用Keil进行开发之前,我们需要先搭建好开发环境。
首先,需要下载并安装Keil开发环境,可以从官方网站进行下载。
接着,我们还需要下载STM32的支持软件包(STM32CubeMX),该软件可以自动生成STM32的初始化代码和底层驱动库。
安装完成后,打开Keil IDE并创建一个新的工程。
2. 工程配置在Keil中创建新工程后,需要进行一些基本的配置。
首先选择适配你的STM32芯片的芯片系列和型号,并指定一个工作目录来存放工程文件。
然后,选择适当的编译器和调试器,以及生成的工程类型(C/C++)。
接下来,选择合适的启动文件和系统文件作为工程的基础。
在这一步还可以设置其他的一些编译选项和调试选项,根据需要进行调整。
3. STM32CubeMX的使用STM32CubeMX是一个可视化工具,可以帮助我们快速、高效地配置和生成STM32单片机的初始化代码。
打开STM32CubeMX后,选择合适的芯片型号,并设置各种外设、时钟和引脚配置。
通过可视化界面的操作,可以快速生成初始化代码。
4. 生成代码通过STM32CubeMX生成的初始化代码可以包括各种驱动库和设备配置。
在Keil IDE中,我们可以导入生成的代码,将其添加到工程中。
这些代码将为我们提供底层驱动库和配置文件,方便我们进行硬件的访问和控制。
导入代码后,可以在工程中进行一些必要的调整和修改,以满足项目的需求。
5. 编写应用程序一旦生成了初始的代码框架,我们就可以开始编写自己的应用程序了。
在KeilMDK环境下使用STM32固件库
在Keil MDK环境下使用STM32固件库简介写这篇教程主要是和大家分享使用STM32的基本方法,也是给自己学习过程的总结、记录和备忘,避免重复学习之前明白但又忘记的知识和操作。
我现在也是刚开始接触学习STM32,我是在STM32的固件库V3基础上进行学习。
在这里我和大家分享一下使用V3.x库的方法,希望大家喜欢,如有错误请指出。
这篇教程分以下几个方面,一:建立工程,设置工程属性。
二:建立条理清晰的GROUP;三:使用JLINK仿真调试。
下面就分别逐个说明。
一、新建MDK工程1、首先,打开MDK软件,再点击Project->New uVision Project…,如下图所示:弹出如下对话框:新建一个文件夹MDK工程,然后把工程名字设为test,点击保存。
弹出选择器件的对话框,我们使用的是stm32单片机,所以选择STMicroelectronics下面的器件,如STM32F107VCT6,如图所示:点击OK,MDK会弹出一个对话框,如图所示:问是否加载启动代码到当前工程下面,如果选择是,则这个启动代码是旧版本库的启动代码,新版本的启动代码和这个不同,需要自己添加。
在这里我们使用的是新版本的库,所以点击否,自己添加启动代码。
启动代码是一段和硬件相关的汇编代码,是必不可少的!这个代码具体如何工作,感兴趣可以研究一下,现在可以不必关心它。
2、接下来我们需要对工程进行一些设置。
在工程区,右键点击Target1,选择Options for Target‘Target1’ 如图所示:弹出如下窗口,选择Output标签,设置目标文件的生成路径及其他相关参数。
如图点击Select Folder for Objects 在弹出的窗口中点空白处新建“Obj”文件夹,然后双击“Obj”文件夹,如图中所示的Path后,点击OK.点击Listing标签,新建“list”文件夹,设置链接文件的生成路径,及相关参数。
Keil MDK在STM32中SRAM 调试
图解Keil MDK 3.5/UV4beta Jlink V7 在STM32中SRAM 调试成功方法成功目的是避免FLASH擦写次数的限制,和避免新手学习很快让MCU结束生命。
以本人STM32F103RBT6为例,128K flash,20K SRAM,借鉴前人ULINK下调试的方法。
把内存分为16K用做FLASH,4K用做内存使用,这里以GPIO点亮LED为例子,项目为GPIO_OUT。
1、copy Keil安装目录下,例如C:\Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky中的RAM.ini到项目目录,然后双击GPIO_OUT.uvproj,启动Keil。
2、单击启动下图对话框,在Project Targets一项单击New(Insert)按钮,增加一个目标,命名为SRAM,然后OK。
3、然后再Select Target中选择SRAM。
4、左侧项目栏中选择SRAM,单击右键选择Options for Target “SRAM”,打开选项对话框。
5、如上图所示,在target选项中修改IROM1的Start值为:0x20000000,Size:0x4000IRAM1的Start值为:0x20004000,Size:0x1000;即内存分为16K用做FLASH,4K用做内存使用。
6、OutPut选项卡中也选中Create HEX File,如下图所示。
7、在Debug选项中仿真器选择Cortex-M3 J-LINK,Initialization File中点击Edit按钮选择刚才copy过来的RAM.ini文件,取消Load Application at Startup复选框,设置如下:并点击仿真器一栏,Settings按钮,进一步设置,如下图,注意Debug选项中Interface中选择USB,如下图所示,在Flash Download中配置,选中Do not Erase,在RAM for Algorithm中Start设置为0x20004000,Size设置为0x1000,设置STM32F10x Med-density Flash的地址Start:0x20000000,size:0x00004000,点击OK。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图解Keil MDK 3.5/UV4beta Jlink V7 在STM32中SRAM 调试成功方法成功
目的是避免FLASH擦写次数的限制,和避免新手学习很快让MCU结束生命。
以本人STM32F103RBT6为例,128K flash,20K SRAM,借鉴前人ULINK下调试的方法。
把内存分为16K用做FLASH,4K用做内存使用,这里以GPIO点亮LED为例子,项目为GPIO_OUT。
1、copy Keil安装目录下,例如C:\Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky中的RAM.ini
到项目目录,然后双击GPIO_OUT.uvproj,启动Keil。
2、单击启动下图对话框,在Project Targets一项单击New(Insert)按钮,增加一个目标,
命名为SRAM,然后OK。
3、然后再Select Target中选择SRAM。
4、左侧项目栏中选择SRAM,单击右键选择Options for Target “SRAM”,打开选项对话框。
5、如上图所示,在target选项中修改IROM1的Start值为:0x20000000,Size:0x4000
IRAM1的Start值为:0x20004000,Size:0x1000;
即内存分为16K用做FLASH,4K用做内存使用。
6、OutPut选项卡中也选中Create HEX File,如下图所示。
7、在Debug选项中仿真器选择Cortex-M3 J-LINK,Initialization File中点击Edit按钮选择刚
才copy过来的RAM.ini文件,取消Load Application at Startup复选框,设置如下:
并点击仿真器一栏,Settings按钮,进一步设置,如下图,注意Debug选项中Interface中选择USB,
如下图所示,在Flash Download中配置,选中Do not Erase,在RAM for Algorithm中Start
设置为0x20004000,Size设置为0x1000,设置STM32F10x Med-density Flash的地址Start:0x20000000,size:0x00004000,点击OK。
注意:如果在Programming Algoritm中没有STM32F10x Med-density Flash,就单击Add按钮添加,然后修改即可。
8、如下图所示,在选项设置对话框中Utilities中,Use Target Driver for Flash Programming
中选择Cortex-M3 J-LINK,并点击setting进一步设置,
可以看到设置同第7步中一样,不再更改。
9、到此为止设置完成,开始调试。
10、开始调试,重建项目(重新编译)。
11、然后启动Start/Stop Debug Session(或Crtl+F5),开始调试,进入调试模式后,单
击Run按钮或F5运行。
12、注意:再次过程中不要点击Flash菜单下面的下载。
13、最后记住几个数字:
0x20000000 为内部SRAM的起始地址
0x4000 为16K RAM大小,模拟FLASH
0x20004000 设定的4K大小RAM的起始地址,模拟RAM
0x1000 设定的4K大小RAM。