KEIL下使用Jlink调试STM32
在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。
Keil MDK 3.5 Jlink V8 在STM32中SRAM 调试成功方法成功.pdf
图解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。
STM32 RVMDK JLINK下flash和RAM调试方法
STM32 RVMDK JLINK 下flash 和RAM 调试方法stm32f107vc 开发板,uvision V4.00u,JLINK V8,J-Link ARMV4.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 和断点。
看汇编。
Keil MDK 3.5 Jlink V7 在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。
在Keil MDK环境下使用STM32v3.4
写这篇“小”教程主要是和大家分享使用STM32的基本方法。
在一年以前,我开始接触并开始使用STM32。
STM32价格便宜,外设丰富,开发和仿真环境使用方便,一下子便爱上了它。
我当时使用了IAR编译环境,固件库也是以前的V2版本。
由于ST公司更新了STM32的固件库,所以想试着使用新固件库。
刚开始使用新库时也遇到了一些问题,但是慢慢熟悉不但觉得不难不烦,反而觉得V3比V2更好用。
在这里我和大家分享一下使用V3.4库的方法,希望大家喜欢,如有错误请指出,在下不慎感激。
这篇“小”教程分以下四步来说,第一步,获得库文件,并进行适当的整理;第二步,建立工程,并建立条理清晰的GROUP;第三步,修改工程的Option属性;第四步:使用JLINK 仿真调试。
下面就分这四大步来逐个说明。
第一步获得库文件,并进行适当的整理第一步非常的简单,访问ST的官网上就可以获得最新的固件库,在我写“小”教程的时候最新的固件库是V3.4。
除了获得固件库之外还可以获得和固件库相关的说明文档。
在以前的官网上可以下载到一篇名为《如何从 STM32F10xxx 固件库 V2.0.3 升级为 STM32F10xxx标准外设库 V3.0.0》的应用手册,但是在现在的ST官网上却找不到这篇十分有用的应用文档,不过却可以在百度文库中找到,这篇文档详细说明了新固件库的文件结构,在Keil工程建立之前,值得一看。
图1是新固件库改动比较大的部分,ST称为CMSIS。
在这个文件夹下面出现了一些新的源文件、头文件和启动代码,新的源文件如core_cm.c system_stm32f10x.c,也有新的启动代码如start_stm32f10x_h/m/ld.s。
在第二部分会详细介绍这些文件到底有什么作用,以及和V2版本的区别。
在这里我也补充一句,V3.4还是和V3.0有点区别,V3.4又比V3.0多出了几个启动代码。
我个人觉得这些文件“埋”的太深,使用起来有点不方便,所以我一般对这些文件进行一些整理,把相关文件放在一起,并取上一个标准化的名字,这些文件夹的名字一般和原始固件库文件夹的名字相同,只是把需要的文件放在一起。
STM32在keil下使用jlink时产生错误的解决方法 (1)
最近一段时间一直在学习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退出。
STM32 keil iar 区别 j-link调试
STM32 keil iar 区别j-link调试哪位朋友比较熟悉STM32的,请问STM32用KEIL和IAR编程的区别有哪些方面,最好能够列点分说。
谢谢!其实区别不大。
KEIL的例子会比较多,keil个人感觉界面更友好。
自带RTX系统IAR开发板多数喜欢给IAR的例程,其实和KEIL没什么区别。
追问不是啊,编程的时候KEIL的main.c文件中加载的头文件是stm32f10x.h,而IAR的头文件是stm32fl0x_lib.h还有其他方面的不同,就像这样的不同点,你还能举点例子吗回答这是库的问题。
stm32f10x.h使用的是3.0的以上库stm32fl0x_lib.h是2.0以上的库库是ST官网提供的与编译环境无关提问者评价你真棒,学习了为什么stm32在keil和iar建立一个新的工程差别这么大?keil上还要什么startup,m3,而iar则不需要?这是ST公司的问题,因为官网的模板本身就很乱。
其实两个工程效果是一样的,建议你用已经编译通过的工程进行裁剪。
追问哦,其实是我弄错了,不是iar和keil差别,而是iar用的是2.03的库,而keil用的3.5的库,然后发现这两个库的文件命名有很多都改变了,然后就搞不清楚了谁对应谁提问者评价谢谢!stm32如何设置keil一键下载/view/7e96e262783e0912a2162ac0.html KEIL下使用Jlink调试STM32 核心模块开发板【转帖】/view/426a8818227916888486d7b0.htm l 关于keil与iar的辩论/forum.php?mod=viewthread&tid= 5526053&highlight=stm32+keil+iarhttp://www.amobbs.co m/forum.php?mod=viewthread&tid=4435802&highli ght=stm32+keil+iar STM32 IAR工程->Keil MDK转换详解【恢复/forum.php?mod=viewthread&tid= 1845004&highlight=stm32+keil+iar IAR下用JLINK 调试STM32心得/view/38ae04254b35eefdc8d3337a.html。
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 MDK3.20 在ULINK下调试stm32方法
Keil MDK3.20 在ULINK下调试stm32方法1. 程序在RAM中运行要点:(1)程序的下载地址改到RAM空间中(2)程序的debug之前要设定SP,PC指针到Ram空间新建工程,选择STM32 的具体型号,我买的万利的开发板,选择stm32f103Vb。
?设定程序下载地址,如下图所示,IROM1的地址指向了STM32的ram空间。
?空间大小如何分配取决于自己的需求。
本款处理器内部ram大小为20K,分配16K给只读区,4K给可读可写区。
这样IROM设定的大小为0x4000,IRAM1的起始就变为0X20004000,大小只剩下0X1000。
Debug标签选择ULINK1 Cortex Debugger(软件采用yjgyiysbcc兄crack 方法)。
不选Load Application at Start,在Initialization中加入启动脚本RAM.ini。
?RAM.ini中具体内容如下:FUNC void Setup (void) {SP = _RDWORD(0x20000000); // Setup Stack PointerPC = _RDWORD(0x20000004); // Setup Program Counter_WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table OffsetRegister}LOAD XXX.axf INCREMENTAL // Download,红色代表工程文件名.axfSetup(); // Setup for Runningg, mainUtilities下Update Target before Debugging不选这样添加后就可以在RAM中调试了。
>>>>>>我们需要在代码中设置正确的中断向量表位置。
中断向量表通常被放置在用户程序的开始,所以flash中运行时,向量表位于0x08000000处,而当代码被放置在SRAM中运行时,他的位置就成了0x20000000。
IAR下用JLINK调试STM32心得
IAR下用JLINK调试STM32心得IAR开发环境下使用JLINK来调试STM32芯片是一种常见的调试方法。
以下是我在实际使用中总结的一些经验和心得。
首先,在使用JLINK进行调试之前,我们需要按照JLINK提供的说明书正确连接好硬件设备。
通常,我们需要将JLINK与STM32芯片之间连接好,并确保连接的正确性。
此外,我们还需将JTAG/SWD接口正确地连接到STM32的相应引脚上。
接下来,在IAR环境下进行配置。
在打开IAR工程之前,我们需要确保IAR和JLINK驱动软件已经正确地安装到电脑上。
然后,我们可以打开IAR并打开相关的工程文件,然后进入调试模式。
在调试模式下,我们需要在IAR的"Options"菜单中选择"Debugger"选项。
在"Driver"栏中,我们需要选择使用JLINK进行调试。
在"Setup"选项卡下,我们可以进一步配置JLINK的一些参数,比如连接速度和复位方式等。
根据实际需求,我们可以对这些参数进行相应的调整。
在调试过程中,我们可以使用IAR提供的各种调试工具来观察和分析程序的运行状态。
比如,我们可以使用"Watch"窗口来监视变量的值,或者使用"Memory"窗口来查看内存的内容等。
此外,我们还可以使用"Breakpoints"来设置断点,使程序在特定的位置停止执行,方便我们进行代码的调试和分析。
从实践中,我发现在使用JLINK调试STM32时,一些常见的问题可能会出现。
比如,由于硬件连接出错或者参数配置不当,导致与JLINK的连接失败。
此时,我们需要仔细检查硬件连接,并重新配置JLINK的参数。
另外,有时候程序可能会卡死或者出现异常,导致调试失败。
这时,我们可以使用IAR提供的复位工具来重新启动STM32芯片,然后重新开始调试。
如何通过JLINK烧写STM32程序
百为技术有限公司
7、 此时打开要烧写到 STM32 的 hex 文件
打开后如下图示:
百为技术有限公司
8、 然后点击 Target->Program & Verify 进行烧写
9、 弹出如下界面表示完成烧写
百为技术有限公司
3、 点击 Options->Project settings
百为技术有限公司
4、 弹出如下界面,进入 CPU 页面,选择 Device ST STM32F103ZE,点击确定
百为技术有限公司
5、 用 JLINK 连接开发板和 PC,点击 Target->Connet 进行连接。
百为技术有限公司
6、 连接完成后,可以看到类似如下信息: - J-Link found 2 JTAG devices. Core ID: 0x3BA00477 (Cortex-M3) - Connected successfully
百为技术有限公司
பைடு நூலகம்
如何通过 JLINK 烧写 STM32 程序
1、 首先安装 JLINK 驱动,Setup_JLinkARM_V420p.exe
2、 从开始程序菜单打开 J-FLASH 程序, 所有程序->SEGGER->J-Link ARM V4.20p->J-Flash ARM
Keil 下配置stm32库开发环境
Keil MDK下配置stm32库开发环境(包括J-Link调试环境设置)准备:1.stm32官方固件库2.Keil MDK一、建立stm32工程当出现提示是否要添加启动文件时,选择否(因为在官方固件库中包含有启动文件)工程建立完成!二、添加官方固件库右键工程目录,选择Manage Components..第一栏表示工程名称,第二栏表示工程包含的文件夹,第三栏表示各个文件夹中包含的文件通过Add Files将固件库中的文件添加进工程中,添加过后如下这么整理是为了让工程开起来层次清晰,对于工程编译没有影响,也就是说即使工程里文件不是按照目录这么整理的,也可以正常编译,只是习惯上如此整理。
三、工程设置右键工程,选择Options for Target…需要设置的有C/C++标签页中的Include Paths,如下:点击最右边的三个点按钮,这里设置的意思是把整个工程中所有.h文件所在的目录添加进来,只有这样,编译器在编译程序时才会从这些路径中寻找头文件。
点击这个方框按钮,添加目录,本例中将./sys ./inc ./src ./usr都添加进来四、J-Link调试器在keil中的设置接着第三步,在Debug标签中选择J-Link调试器选择完成后,点击右侧Setting按钮,如下:提示:必须正确连接J-Link后才会显示这样选择Flash Downlade标签页,点击Add按钮,将对应CPU型号的flash点击ok在Utilities标签页中,选择J-Link后点击ok即完成所有工程设置在main.c中写入main函数后编译未提示错误可以直接使用下图中红色标记按钮直接下载程序,不用再打开J-Flash下载程序了。
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我的好了。
一个JLINK同时烧多个STM32具性价比的方法
简介
本想买脱机烧录器来作为量产的STM32F0烧录器,发现都是600元以上,价格太贵,而J-LINK才70元左右,但目前很少人用J-LINK来量产ARM,希望这份文档能给你这方面的思路。
用J-LINK量产STM32的优点:
1)目标板不上电也能烧,
2)下载一个JFlashLite.exe,并加入keil的Segger目录下即可
3)可用一个J-LINK,快速烧写PCB上的多个STM32F0(其他基于ARM核的MCU也是可以的)
缺点:
1)不能实现脱机烧录(其实如果你是大牛,也有时间,是可以实现的,但那样,STM32脱机烧录就都卖不出去了,呵呵。
)
2)需要一台PC,
第一次在电脑中使用J-Link的操作和注意事项
第一步:装驱动
第二步:插入”J-LINK烧写器”,系统自动安装驱动
烧写程序
以烧写X板为例
第一步:运行”JFlashLite.exe”
第二步:选择芯片
第三步:选择烧写文件
烧写注意事项
同时烧写两个单片机(M0)说明
该板用的是主从单片机(M0)结构,所以需要烧写两个芯片,高效率的烧写方式是同时打开两个烧写程序(JFlashLite.exe),分别对应主芯片和从芯片,如下图所示:
烧写时要注意的问题
芯写烧写时要扣紧接口,在看到完成提示才能拨出接头,防止“烧写失败”
在烧写时一定要先把目标板的电源关掉,J-Link给目标板提供电源。
目录图示说明
J-LINK烧写线的图示。
如何在Keil4下通过J-Link下载文件数据到STM32外部的Nor Flash
如何在Keil4下通过J-Link下载文件数据到STM32外部的Nor Flash实验目的:把一张320*240像素的图片文件,通过J-Link下载到STM32外部的Nor Flash里去,然后再读到LCD显示屏显示出来。
用LCD转换图片工具把图片搞成一个C文件。
准备烧写算法:声明:图例中用到的地址需要根据你自己的情况作相应调整。
Keil单片机开发平台是根据预先设定好的Flash烧写算法将用户程序烧到单片机的Flash内部的,那么由于这个算法是固定的,我们往往不关心,所以我们对其原理不是很了解,实际上,我们都知道,要将程序烧进去,需要在工程选项中选择对应的单片机型号,如下图所示。
这个过程就是准备Flash的烧写算法,选中了某个单片机型号,就确定了其使用的Flash特征,那么这些算法藏在什么地方呢。
这些算法就藏在Keil安装的根目录下X:\Keil\ARM\Flash目下,该目录下有很多的文件夹,每个文件夹里有对应的工程,每个工程都是某种型号单片机的Flash烧写算法,他们具体的内容不同,但是具有统一的接口,以便被Keil调用。
现在我们要烧写STM32的外部Nor Flash,所以我们要新建一个算法:新建一个文件夹,如Test。
将X:\Keil\ARM\Flash\STM32F10x\下的所有文件拷进Test文件夹来,将X:\Keil\ARM\Flash\SST39x160x\下的FlashPrg.c文件也拷进Test文件夹来并覆盖同名文件,将X:\Keil\ARM\Flash\下的FlashOS.h 文件也拷进Test文件夹来。
如果你使用的Nor Flash不在MDK自带驱动的范围内,那么需要根据FlashPrg.c文件自行编写相关函数。
打开工程文件STM32Fx.uvproj,此时会报一个错误,提示没有选择STM32的Device型号。
这时你根据你的STM32的型号选择相应的就OK了,如下图所示。
在Keil MDK环境下使用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与Jlink的使用
第三章、开发前的准备工作概述本章对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出现下图界面MINI-STM32 超牛组合学习套装用户手册图3.2按Next继续下一步操作图3.3选择安装目录后按Next继续下一步MINI-STM32 超牛组合学习套装用户手册图3.4如果你还在以前装了IAR的集成开发环境将出现下面图3.5的提示,提示你选择更新IAR下的JLINK仿真器的动态链接库文件,一般选上后按OK完成JLINK仿真器的安装。
图3.53.2、如何使用JLINK仿真器软件3.2.1、使用J-FLASH ARM 烧写程序到芯片FLASHMINI-STM32 超牛组合学习套装用户手册MINI-STM32 超牛组合学习套装用户手册运行J-FLASH ARM 出现图3.6图3.6进行烧写前的必要设置如:图3.7图3.7MINI-STM32 超牛组合学习套装用户手册选择MINI-STM32开发板的CPU型号,选择完成后按确定退出设置。
图3.8设置完成后左边显示烧写信息图3.9MINI-STM32 超牛组合学习套装用户手册连接目标板,连上后会有提示信息,见下边的状态拦。
图3.10连接成功后如图3.11图3.11MINI-STM32 超牛组合学习套装用户手册接着File->open打开烧录文件,如图3.12图3.12加载完成后选择Target->Auto或快捷键F7进行自动烧录。
在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”文件夹,设置链接文件的生成路径,及相关参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大家知道,之前在Keil下可以通过RDI方式使用全功能版Jlink来调试LPC2000、STR912等很多芯片的,不过唯独是无法用Jlink的RDI方式来调试STM32系列,因为在Jlink RDI Configuration中的Flash设置中没有STM32芯片的选项,如下图所示。
jlink_jflash_1.jpg
在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目录(默认安装目录),如下图所示,
copy_jlinkv388.jpg
复制JLinkARM.dll和JLinkRDI.dll两个文件到Keil的安装目录:\Keil\ARM\Segger下,替换以前的文件,如下所示:
copy_jlinkv388_2.jpg
2、从keil网站下载JL TAgdi.dll文件也复制到:\Keil\ARM\Segger目录下,添加完成后如下图所示:
copy_jlinkv388_3.jpg
完成上面两步后,现在我们打开Keil软件来进行一个验证。
任意打开一个STM32的程序,本文打开时Keil自带的USBMem例程,在:\Keil\ARM\Boards\Keil\MCBSTM32\USBMem目录下。
工程打开后,打开设置对话框来进行Jlink调试设置,点击Debug标签,选择调试工具“J-LINK/J-TRACE”如下所示:
keil_jlink_set1.jpg
点击Settings,如下所示:
keil_jlink_set2.jpg
点击Utilities标签,选择编程工具“J-LINK/J-TRACE”,并在Update Target before Debugging 前打勾,如下所示:
keil_jlink_set3.jpg
然后点击Settings设置编程算法,如下所示:
keil_jlink_set4.jpg
选择好算法后点击Add完成添加,如下图所示:
keil_jlink_set5.jpg
完成以上所有设置后,可以开始调试,点击Debug,程序会下载进去,下载完毕后即出现调试界面如下所示:
keil_jlink_set6.jpg
至此,在KEIL下就可以用JLINK来调试STM32了,亲自动手试一试吧,哈,祝大家开发顺利,没事儿常去网站和论坛看看,大家多多交流,一起进步!。