当前位置:文档之家› 分享:KEIL中配置J-Link在RAM中调试的方法

分享:KEIL中配置J-Link在RAM中调试的方法

分享:KEIL中配置J-Link在RAM中调试的方法
分享:KEIL中配置J-Link在RAM中调试的方法

Moses娄'的STM32学习笔记(一):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 都够用了~

图2

3.Output的设置

强调一下Name of Executable吧~这里默认的应该是project的名字,我习惯改成output~而且这与编译后产生的*.axf和*.sct文件名字都有关联~没勾选HEX~感觉选了也没用~写到SRAM中的是。。。见图3

图3

4.Listing Label~没啥说的~不上图了~默认~

https://www.doczj.com/doc/1117446967.html,er Label~更没啥说的~同上~

6.C/C++ Label~貌似都没啥说的我后面就不用写了~再同上。。。。~

7.真想罢手了~无语的Asm Label~

8.好啦~来活了~Linker Label

最上边打上勾~是这效果~不打勾~就反白了~然后呢~呵呵~慢慢说来~

先说说打勾的时候,如图4~非人为操作~你什么都不用管了~(很多人会发现~新建的项目~刚开始的时候下面的Scatter File后的内容是空的~当你把这勾去掉后会自动出现~然后随你勾与不勾~就都是存在的了~不过此时还只是个影子~没有实际的文件~什么时候出现这个文件呢~法一:自然你可以自己写~呵呵~法二:在出现影子后打上勾编译一次,此文件就产生了~在output的文件夹里~马上后文还会有对此文件内容的介绍~)

图4

再说说不打勾的时候会反白一些内容~如图5,需要修改两个地方~

图5

再来看看~output.sct文件内容~如图6~6行内容是ROM的地址和大小~11行事RAM的地址和大小~很是一目了然吧~内容根据Target自动生成的~不需要手动修改~

图6

9.Debug的配置

分成几部分,原界面和Setting界面

1)原界面,如图7~首先选好J-link~这里由于使用的是keil4~和keil3的选项会有不同~在

keil3下~选择“Cortex-M3 J-Link”,取消Load Application at Startup的勾选~

图7

再说说这个CouRAM.ini文件~内容如下~如图8~有注释~

首先LOAD output.axf~加载启动代码到RAM~关关于hex,bin文件和axf的关系~是在axf中存有Debug需要的一些调试语句~所以这文件与前2者内容上是不相同的~前两者属于其子集的关系~(这里的output.axf名字对应了我们上边设定的output的文件名设定~此文件在output中设定的文件夹下生成~跟output.sct在一起~)从文件内容可以看到~中断向量表已经被映射到0x20000000,PC也指向了0x20000004~说明在RAM中进行调试时理论上可以的了~

图8

2)进入setting如图9~首先要选对interface~有时候莫名其妙的会在keil死机后(我调程序总是把Keil弄挂了~真不是为何~难道说他是Keil~而我是Killer么~哈哈)~一定要注意~不然容易出现J-Link连接失败的效果~

图9

3)Trace label不用调整~默认就可以~如果需要使用~记得算好了选用的时钟Core Clock~这里是指PLL后的~

4)然后进入了Flash Download label,如图10~Flash的擦写有规矩~需要在有内容的情况下擦出一个扇区后方可写入,而此时的RAM自然不必要这样做~然后RAM for Algorithm需要改下~接着需要点击add添加Flash编程算法(我还不会写这算法,不过大概看了下,就是麻烦点的一堆调用和设置)~接着进入了选择界面~如图11

图10

在这里选择好属于自己的芯片Flash大小~我的这个挺大的~512K呢~呵呵~

add后还需要再更改最后一行红线上的内容~此时需要先点一下刚选好的变成算法就会反白可编辑~然后编程算法会自动更改其自身的地址~

图11

10.进入Utilities~同Debug一样~选择~其中的setting其实刚刚讲过~其实是同一个~如图12

图12

到此为止~这一天半的RAM调制研究之旅的总结画上了一个圆满的句号~

需要提醒大家注意的几点是:

1.Debug开始后~不要点reset~因为这样后走的就是Flash的程序了~容易造成调试问题~结果是产生keil被kill掉的PC错误~

2.重新启动开发板后一定要build target一次~或者rebuild all一次再烧写程序~不然~很容易同上~原因是不太清楚~希望有人能告诉我~呵呵~

keil软件调试单片机程序

先说一个概念:调试,在企业程序设计里(我把企业商务类型的软件开发叫企业程序设计,把单片机与驱动程序这样接触底层汇编与硬件相关的程序设计叫底层程序设计),调试一般都用来跟踪变量的赋值过程,以及查看内存堆栈的内容,查看这些内容的目的在于观察变量的赋值过程与赋值情况从而达到调试的目的。由于企业程序的宿主就是开发它的计算机本身,因此企业程序设计比起底层程序设计,特别是单片机的程序设计调试来的更直观,调试也更方便。 单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样就可以在软件里看到真实的执行情况。不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。 图1:仿真器 总结一下两者的不同与相同: 相同点: 1:都可以检测单片机执行时序下的片内资源情况(如R0-R7 、PC计数器等) 2:可以实现断点、全速、单步、运行到光标等常规调试手段。 不同:

实验一 Keil软件的使用及简单程序的调试方法

实验一 Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下: 几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程

名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示 单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。

实验一-Keil软件的使用及简单程序的调试方法

实验一Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下:

几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示

单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。 (3)将文件添加到工程中 单击“T arget 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。

STMv3.5固件库在keil4中建立工程的具体过程

首先建立一个文件夹用来装工程(文件夹名自定,笔者建立的文件名为“ggyy_Proj”文件夹)。 在“ggyy_Proj”文件夹下,建立两个文件夹“User”和“Project”。 将库文件STM32F10x_StdPeriph_Lib_V3.5.0下的“Libraries”文件夹全部拷入“ggyy_Proj”文件夹下。 将“ggyy_Proj”文件夹下的“Project”文件夹下建立三个文件夹“List”、“Obj”和“Pro”。其中Pro用来存放工程。 将“ggyy_Proj”文件夹下的“User”文件夹下建立两个文件夹“inc”和“src”。

然后将需要用到的文件拷贝到相应的文件夹中: 将以下5个.h文件考进ggyy_Proj下User下的inc文件夹中: ···ggyy_Proj\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h ···ggyy_Proj\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h \stm32f10x.h 固件库中: ·STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h \stm32f10x_it.h 将以下2个.c文件考进ggyy_Proj下User下的src文件夹中: 固件库中: ···STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_it.c \main.c 现在打开keil,并点击在Project菜单栏下的New uVision Project…来新建工程。

Keil软件及其调试功能简介

Keil软件及其调试功能简介 目前流行的51系列单片机开发软件是德国Keil公司推出的Keil C51软件,它是一个基于32位Windows环境的应用程序,支持C 语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:μVision IDE集成开发环境(包括工程管理器①、源程序编辑器②、程序调试器③,见图2)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。 应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单File-New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File-O pen…,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project-New Project…,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group ‘Source Group1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project-Option for Target‘Target1’(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex Fi”;其它选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。 成功编译/汇编、连接后,选择菜单Debug-Start/Stop Debug Session(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。Keil能以单步执行(按F11或选择Debug-Step)、过程单步执行(按F10或选择Debug-Step Over)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug-Inline Assambly…),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug-Insert/Remove Breakpoint或Debug-Breakpoints…等)。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。 Keil软件Eval版(免费产品)的功能与商业版相同,只是程序的最大代码量不得超过2kB,但对初学者而言已是足够。Keil软件由于其

keil调试经验

KEIL调试高级技巧 在调试状态,Debug 菜单项中的命令可以使用了,有关编译的工具栏按钮消失了,出现了一个用于运行和调试的工具栏,Debug 菜单上的大部份命令都有相应的快捷按钮。 从左到右依次是复位、运行、暂停、单步跟踪、单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮命令; 然后按一下图示第二个“运行”按钮。连接上相关的实验资源,本实验用一条 8PIN的数据排线把实验仪的CPU部份的P1口(JP44)连接到八路指示灯部份的JP32。这时你会看到实验仪的八个红色LED,轮流点亮,表示运行成功,也可以查看相关的变量和参数,非常方便。 ⒈单步跟踪运行 使用菜单Debug->Step 或上图第四个单步运行按钮或使用快捷键 F11 可以单 步跟踪执行程序,在这里我们按下 F11 键,即可执行该箭头所指程序行,每按一次 F11,可以看到源程序窗口的左边黄色调试箭头指向下一行,如果程序中有Delay延时子程序,则会进入延时程序中运行。 ⒉单步运行 如果Delay 程序有错误,可以通过单步跟踪执行来查找错误,但是如果 Delay 程序已正确,每次进行程序调试都要反复执行这些程序行,会使得调试效率很低,为此,可以在调试时使用 F10 来替代 F11(也可使用菜单 Step Over 或相应的命令按钮),在 main 函数中执行到 Delay时将该行作为一条语句快速执行完

毕。为了更好的进行对比,我们重新进入仿真环境,将反汇编窗口关闭,不断按F10 键,可以看到在源程序窗口中的左边黄色调试箭头不会进入到延时子程序。 ⒊全速运行 点击工具栏上的“运行”按钮或按F5 键启动全速运行,全速执行程序,此时用户板上的 P1 口所接 LED 以流水灯状态显示。 ⒋暂停 点击工具栏上的按钮,此时用户板上的P1 口所接 LED 停止以流水灯状态显示,只有一个 LED 灯点亮(取决于暂停前的 P1 的值)。 ⒌观察/修改寄存器的值 Project 窗口在进入调试状态后显示 Regs 页的内容,包括工作寄存器 R0~R7 的内容和累加器 A、寄存器 B、堆栈指针 SP 的内容。 用户除了可以观察以外还可自行修改,例如将寄存器a 的值 0x62 改为 0x85。方法一:用鼠标点击选中单元a,然后再单击其数值位置,出现文字框后输入0x85 按回车键即可; 方法二:在命令行窗口,输入A=0x85,按回车键将把 A 的数值设置为 0x85

GD32 Keil5工程创建步骤

第一步:安装DFP软件包 (1)按照Keil uVision5, 步骤略。我的keil版本如下: (2)下载GD3210X的DFP软件包。 下载地址: 插件包下载完成后,有3个文件。 (3)安装DFP软件包。双击.pack文件进行安装,如下图所示:

点击next,将包文件复制到上面的路径位置。如下图: GigaDevice文件夹就是安装好的软件包。 第二步:创建Keil工程 (1)通常要新建3个文件夹。如下图所示: (2)打开keil5,新建project.将工程文件放到Mdk-Arm目录下面。弹出器件选择界面:在Device下拉框,选择Software Packs,选择GD32F103RB,点击OK

接着弹出Mannage RTM界面,选中CMSIS的CORE和设备外围库文件,如下所示: 点击OK,CMSIS工具自动添加库文件到./Mdk-Arm/RTE目录中,工程目录如下所示:

(3)在Keil5中,打开文件管理界面: 依次创建文件组:Application/Utilites/Documents (4)将main.c gd32f10x_it.c sysstick.c相关文件拷贝到userr文件夹,并添加到Application 文件组中。 (5)设置编译的头文件目录:将DFP包的CMSIS相关头文件路径都加进去,将 RTE_Components.h配置头文件路径加进去。如下图所示:

Main文件内容如下: 注意: (1)此项目是用MDK CMSIS配置工具建立的,CMSIS配置工具会自动将选用的标准库源码的C文件从Kiel5的DFP包标准库目录下拷贝到当前的项目中:./Mdk-Arm/RTE路径下,但是没有将头文件拷贝过来。所以此项目的编译依赖实际的Keil5安装环境:没有安装DFP包或头文件目录跟工程设置的包含路径不对应的话,就会出现编译失败。也就是说,将一个项目拷贝到另一台电脑时,编译可能失败。 (2)main.c/systick.c和gd32f10x_it.c是从例程中拷贝过来的. (3)头文件的前面出现感叹号,表示没有正确的引用。 (4)也可以不用MDK CMSIS配置工具,手动拷贝相应的CMSIS库文件,进入DFP软件包目录下,将GD32F10x_DFP文件夹整体拷贝到过来。再将 C:\Keil_v5\ARM\PACK\ARM\CMSIS\4.5.0\CMSIS目录下的Include目录拷贝过来。再将启动文件也拷贝过来,(注:位置应该是GD32F10x_DFP\2.0.0\Device\Source\ARM, 此处我选的MCU 是GD32F103RB,所以用md.s),将其拷贝到过来。手动拷贝库文件建立工程的方法跟用CMSIS 配置工具建立工程的方法大同小异,只是工程里面添加了标准库文件之后,记得要手动配置对应的头文件。而借助CMSIS工具,则会自动通过更改RTE_Components.h文件实现。

怎么样在KEIL_C软件中调试程序

首先建立工程。选[Project\New Project],选择工程保存的路径,及为工程命名。例如将其存放在D:\新建文件夹(2),命名为123。输入完工程名后会打开一个如下图所示的对话框,在这里我们选择CPU的型号,根据我们选用的CPU芯片的不同,这里的设置不同。在这里我们选用 Atmel\AT89C51。 接下来弹出一个如下图的对话框。该对话框提示你是否要把标准8051的启动代码添加到工程中去。如用C语言写程序,一般选“否”,但是,如果用到了某些增强功能需要初始化配置时,则可选“是”。在这里,我们选“否”,即不添加启动代码。 新建文件。在[File\New]建一个文件,将程序写入。这里以一个00-99秒计时器程序为例。程序如下 #include unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90}; //共阳数码管段0-9 unsigned char Second; delay10ms() //延时10毫秒 { unsigned int i,j; for(i=0;i<10;i++) for(j=0;j<120;j++); } leds() //显示子函数 { P0_0=0; //选通P0_0数码管 P2=table[Second/10]; //送段值 delay10ms(); //延时 P2=0xff; //消影 P0_0=1; //消除P0_0选通状态 P0_1=0; //选通P0_0数码管 P2=table[Second%10]; //送段值 delay10ms(); //延时 P2=0xff; //消影 P0_1=1; //消除P0_0选通状态 } void delay1s(void) //延时1秒 { unsigned char j; for(j=50;j>0;j--) leds(); } void main(void) { Second=0; //显示置0 while(1) //主循环 { delay1s();// 延时 Second++; //自加 if(Second==60) //判断是否到60

keil c 的在线调试与断点设置

Keil 的调试命令、在线汇编与断点设置 上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。 一、常用调试命令 在对工程成功地进行汇编、连接以后,按Ctrl+F5 或者使用菜单 Debug->Start/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真CPU 用来模拟执行程序,该仿真CPU 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。 进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图1 所示,Debug 菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。 接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该 段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难 以确认错误出现在哪些程序行。单步执行是每次执行一行程序,执行完该行 程序以后即停止,等待命令执行下一行程序,此时可以观察该行程序执行完 以后得到的结果,是否与我们写该行程序所想要得到的结果相同,借此可以 找到程序中问题所在。程序调试中,这两种运行方式都要用到。 使用菜单STEP 或相应的命令按钮或使用快捷键F11 可以单步执行程序, 使用菜单STEP OVER 或功能键F10 可以以过程单步形式执行命令,所谓 过程单步,是指将汇编语言中的子程序或高级语言中的函数作为一个语句来

keil编程步骤

-、双击打开keil编程软件,图标如下图所示 二、新建工程:在“菜单栏”-“Project”-“New”-“μvision Project”-输入要保存的工程名。

根据单片机的型号选择CPU,然后点击“确定”。 选择“否”。 三、新建文件 点击新建文件。 四、保存文件 注意:文件名要带扩展名。用C语言编写的程序,扩展名为“.c”;用汇编语言编写的程序,扩展名为“.asm”。点击“保存”。

五、添加文件到工程 在工程管理器中,用鼠标右键点击“Source Group 1”,选择“Add File to Group ‘Source Groutp 1’”,如果要添加的文件是汇编文件,文件类型选择如下图所示的类型;如果是C语言文件,文件类型选择“*.c”。双击要添加文件,然后点击”close”。

在工程管理器中,可以看到刚刚添加的文件 六、编写程序 七、编译当前文件 点击按钮 八、修改错误 根据输出框里的提示信息修改程序中的错误 九、生成烧录文件 在工程管理器中,鼠标右键单击,按下图操作。

将“create HEX file”前复选框前选上。“02”是文件名,可以改成其他的名,文件名前“select folder for objects”是此文件要保存的位置,默认情况下和当前工程保存在同一目录下,如果要保存在其他位置,可以点击此外进行修改。 点击编译工程图标,在输出框里会有提示信息 ,说明生成了hex文件。注意:必须在编译当前 文件没有错误的情况下才能生成hex文件。 十、将程序下载到单片机

双击烧录软件图标,打开软件。按下图所示设置“编程器及接口”、“编程”。“选择芯片”:根据你当前的单片机选择型号。 点击图标, 找到生成的HEX文件打开。点击图标,将程序烧录到单片机。

实验一keil软件的使用及简单程序的调试方法

实验一Keil软件的使用及简单程序的调 试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1. Keil的使用方法。 2 ?建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1. Keil的使用方法。Keil C51软件是众多单片机应用幵发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C语言的程序设计,界面友好,易学易用。启动Keil后的界面如下:

几秒钟后即进入Keil 的编辑界面。用户便 可建立项目及应用程序。 2 ?简单程序的调试方法 Keil 是通过项目工程来管理汇编程 序的。因此在调试程序前必须建立一个工 程,工程名称及保存位置由用户来指定, 注意每位同学的工程名称用“学号姓名实 验* ”来命名。 (1)建立一工程 单击Project 菜单,在弹出的下拉菜单 中选中New Project 选项。并在弹出的对 话框中确定保存的位置及工程名称。 硬又弹出U 及相关设置要求用户选tmef 公

司的 AT89C51单片机。如下图所示 单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2 )建一文件 单击“ File” / “ NeW'命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“ File” / “Save” 命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。

ARM的KEIL工程建立及编译过程

ARM 的KEIL 工程建立及编译过程 精简: 1)添加:Ext_RAM.ini 和RuninRAM.sct; 2)选中 ,去掉 3)注意LOAD 1.axf INCREMENTAL // Download program 这个名要与工程名保持一致。 第一步:新建工程 点击Project-new uvision Project 新建工程,注意工程名没有后缀。 点是,自动生成启动代码,否,要自己写启动代码。 第二步:自己写c 程序(用户程序): 点击File-New 新建文件:注意文件名尾缀为.c。 U n R e g i s t e r e d

第三步:添加C 文件 选中Source Group1点击右键,进行文件添加。 第四步:COPY 三个文件:(第一个是用户程序,自己写就不需要添加,最后一个如果自动生成启动代码也不需要添加)Ext_RAM.ini 和RuninRAM.sct 必须添加。 Ext_RAM.ini :J-LINK 初始化脚本,必须添加。 代码执行前必须要初始化CPU 内部的一些寄存器。该文件就是做初始化工作,给J-LINK 用。J-LINK 通过读取该配置文件,初始化目标板主CPU 相关的寄存器。 RuninRAM.sct:代码编译时需要的链接文件,其主要作用就是组织代码的到该脚本指定的地址。 S3C2440A.s:初始化代码(启动代码) 小知识点:RuninRAM.sct:代码分析 U n R e g i s t e r e d

; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* ; Run in RAM LR_ROM1 0x30000000 { ; load region 程序运行起始地址。内存起始地址固定0x30000000 ER_ROM1 0x30000000 0x0040000 { // 0100 ; load address = execution address 程序的下载地址,及程序容量 *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_RAM1 0x30040000 0x0040000 { ; RW data RW 段起始地址 .ANY (+RW +ZI) } RW_IRAM1 0x40000000 0x00001000 { //芯片内部4k sram 空间,固定式0x40000000开始。 .ANY (+RW +ZI) } } 第五步:配置 U n R e g i s t e r e d

第2课 keil软件及工程文件的建立

第2 课keil 软件及工程文件的建立 单片机系统设计主要包括硬件设计和软件设计,对于单片机初者来说主要在于软件的学习,也就是程序设计,等大家程序这块掌握得差不多了,再去结合具体的项目学习做硬件,最终掌握单片机系统设计的方法。而在进行软件学习的时候需要用到单片机实验板进行实验验证,实验板建议直接购买,当然如果电子技术基础好的话,自己做板也是可以的。这次教程开发程序所用到的软件为keil uVision2,该软件大家可以到实验室的下载中心进行下载;硬件实验平台主要采用我们实验室自行设计的实验板,有需要的请直接与我们联系。下面分别介绍这keil uVision2 和实验板的使用方法,在程序编写完成后需把程序烧写到单片机中,我们是用ISP 在线下载工具,这里一并进行介绍。为了便于大家学习,这里我们写一个以1602 液晶为显示器件的可显示时、分、秒的电子时钟 程序为例介绍整体程序从编辑、编译到下载的全过程。(具休程序已事先写好 并经正常调试无误,后面课程会具体介绍,这里暂不作讲解)在正式的写程序之前,需进行keil uVision2 软件的安装和实验板驱动程序的安装,相关的软件及驱动程序请大家直接在实验室网站下载中心进行下载,这里给出下载地址。keil uVision2 软件件及安装方法、实验板驱动程序及安装方法。安装安成后,即可按下面的步骤进行。1、KEIL 软件的使用及工程文件的建立51 单片机程 序设计所用到的开发软件主要是keil uVision,它是由德国Keil Software 公司开发的,2005 年Keil 公司被ARM 公司收购,并于2009 年发布了keil uVision4,这个版本的软件支持ARM 系列的芯片,如现目前流行的STM32 等芯片,我们这里使用的是uVision2 版本。(1)、打开KEIL 软件双击keil 快捷方式图标(软件安装好后,一般在桌面上会有快捷方式,双击即可),出现启动界面如 图1,紧接着出现编辑界面如图2。图1启动keil 软件时的界面图2进入

在KEIL C中调试程序

在KEIL C中调试程序 首先建立工程。选[Project\New Project],选择工程保存的路径,及为工程命名。例如将其存放在D:\新建文件夹(2),命名为123。输入完工程名后会打开一个如下图所示的对话框,在这里我们选择CPU的型号,根据我们选用的CPU芯片的不同,这里的设置不同。在这里我们选用Atmel\AT89C51。 接下来弹出一个如下图的对话框。该对话框提示你是否要把标准8051的启动代码添加到工程中去。如用C 语言写程序,一般选“否”,但是,如果用到了某些增强功能需要初始化配置时,则可选“是”。在这里,我们选“否”,即不添加启动代码。 新建文件。 在[File\New]建一个文件,将程序写入。这里以一个00-99秒计时器程序为例。程序如下 #include unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90}; //共阳数码管段0-9 unsigned char Second; delay10ms() //延时10毫秒

for(j=0;j<120;j++); } leds() //显示子函数 { 0_0=0; //选通P0_0数码管 P2=table[Second/10]; //送段值 delay10ms(); //延时 P2=0xff; //消影 P0_0=1; //消除P0_0选通状态 P0_1=0; //选通P0_0数码管 P2=table[Second%10]; //送段值 delay10ms(); //延时 P2=0xff; //消影 P0_1=1; //消除P0_0选通状态 } void delay1s(void) //延时1秒 { unsigned char j; for(j=50;j>0;j--) leds(); } void main(void) { Second=0; //显示置0 while(1) //主循环 { delay1s();// 延时 Second++; //自加 if(Second==60) //判断是否到60 { Second=0; //到60置0 } leds(); //显示子程序 } } 保存文件。选[File\Save],将其保存在刚建的工程下。这里是用的C语言编程,所以后缀名要加上”.C”。这里我们将其命名为“Text1.c“。注意扩展名“.C”不可省略。打开工程[Project\Open Project],在左窗口中单击右键,选“Add files to Group “Source Gropu 1“,将程序Text1.c加载到工程。只有经过这一步才能对程序进行下面的编译及调试。

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 Pointer PC = _RDWORD(0x20000004); // Setup Program Counter _WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register } LOAD XXX.axf INCREMENTAL // Download,红色代表工程文件名.axf Setup(); // Setup for Running g, main Utilities下Update Target before Debugging不选 这样添加后就可以在RAM中调试了。 >>>>>>我们需要在代码中设置正确的中断向量表位置。中断向量表通常被放置在用户程序的开始,所以flash中运行时,向量表位于0x08000000处,而当代码被放置在SRAM中运行时,他的位置就成了 0x20000000。在初始化NVIC时,我们可以放置如下代码,定义向量表的位置 NVIC_SetVectorTable(0x20000000 , 0x0); 或 NVIC_SetVectorTable(0x08000000 , 0x0); >>>>>工程选项中Debug项,Download选项卡中,去掉所有钩子,不下载代码到flash,这样就可以在RAM中调试程序了! 2. Flash中调试

keil5如何建工程

北京科技大学 Keil5工程创建及程序 下载 创建工程;下载程序 北京科技大学MEI团队 作者:解乃颖联系方式:ny_xie@https://www.doczj.com/doc/1117446967.html,日期:2014-08-20

目录内容 创建工程: __________________________________________________________________ 步骤一:创建文件夹和相应的库文件________________________________________ 1步骤二:创建工程文件__________________________________________________ 1步骤三:添加库函数____________________________________________________ 3步骤四:选择输出路径__________________________________________________ 7步骤五:添加路径和定义_________________________________________________ 9 程序下载: ________________________________________________________________ 联系信息 __________________________________________________________________ 12

创建工程: 步骤一:创建文件夹和相应的库文件 新建工程文件夹目录如下 其中,文件夹Prj 包含以下文件夹: 之后添加常用文件,如main.c bsp.c function.c Global.h Config.h 等 步骤二:创建工程文件 打开keil5,创建新工程。 “需要向您的读者 指出某些极其重要的内容吗?请使用边栏突出该内容。”

Keil-C51程序调试过程

如何使用Keil C软件调试单片机程序 调试一般都是在发生错误与意外的情况下使用的。如果程序能正常执行,调试很多时候都是用不上的。所以,最高效率的程序开发还是程序员自己做好规范,而不是指望调试来解决问题。 单片机的程序调试分为两种,一种是使用软件模拟调试,第二种是硬件调试。 使用软件模拟调试,就是用计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的。但是软件调试存在一些问题,不可能像真正的单片机运行环境那样执行的指令能在同一个时间完成(往往比单片机慢)。软件调试只能是一种初步的,小型工程的调试,比如一个只有几百上千行的代码的程序,软件调试能很好的完成。 硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到仿真器,然后与单片机一样执行。仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出)。仿真器会将单片机内部内存与时序等情况返回给计算机,这样就可以在计算机里看到单片机程序真实的执行情况。不仅如此,还可以通过计算机的软件实现单步、全速、运行到光标的常规调试手段。仿真器可以接入实际的电路中。 图1:仿真器 下面将具体介绍如何使用Keil uVision 软件来调试单片机程序。 首先:打开一个已经编译通过的单片机项目。选择Debug下面的Start/Stop Debug Session,这个选项可以打开调试也可以关闭调试。

接下来看到的窗口就是调试窗口了: 下面具体说说相关子窗口的功能: 1、左侧的ProjectWorkspace Regs是片内内存的相关情况值;Sys是系统一些累加器、计数器等。Regs

MDK5新建工程步骤

首先,打开MDK(以下将MDK5简称为MDK)软件。然后点击Project New uVision Project 桌面新建一个TEST的文件夹,然后在TEST 文件夹里面新建USER文件夹,将工程名字设为test,保存在这个USER文件夹里面。 STM32F103 所使用的STM32 型号为STM32F103ZET6(如果使用的是其他系列的芯片,选择相应的型号就可以了)。

点击OK,MDK会弹出Manage Run-Time Environment对话框,直接点击Cancel,即可。此时我们只是建立了一个框架结构。 还需要添加启动代码,以及.c 文件等这代码主要作用如下: 1、堆栈(SP)的初始化; 2、初始化程序计数器(PC); 3、设置向量表异常事件的入口地址; 4、调用main函数。 ST公司提供了3个启动文件给我们,分别用于不同容量的STM32芯片,这三个文件是: startup_stm32f10x_ld.s startup_stm32f10x_md.s startup_stm32f10x_hd.s 其中,ld.s适用于小容量产品;md.s适用于中等容量产品;hd适用于大容量产品; 这里我们把startup_stm32f10x_hd.s 拷贝到刚刚新建的USER 文件夹里面。 我们找到Target1→Source Group1→双击→设置打开文件类型为Asm Source file→选择startup_stm32f10x_hd.s→点击Add,

在USER 文件夹下,startup_stm32f10x_hd.s(启动文件)和test.uvprojx(MDK5工程文件)是我们必须用到的2个文件,然后Listings和Objects文件夹是MDK5自动生成的,如果打开Listings和Objects文件夹,就可以看到里面多了一些文件,这就是MDK编译过程产生的中间文件,如果工程量大,产生的文件更多(多的可达100 MB 以上!!)。MDK5.14 已经默认将这些文件生成在了Listings和Objects文件夹里面,但是MDK5.11A及之前版本是不会自动生成这两个文件夹的,所有中间文件都是生成在工程同面目录下,也就是USER 文件夹下,这样会显得比较混乱。 这里,我们不用MDK5 自己生成的这两个文件夹来存放中间文件,而是在TEST 目录下新建一个新的OBJ 文件夹来存放这些中间文件。 然后在Target目录树上点击右键 Manage Project Items,在上面对话框的中间栏,点新建(用红圈标出)按钮(也可以通过双击下面的空白处实现),新建USER和SYSTEM两个组。然后点击Add Files按钮,把SYSTEM文件夹三个子文件夹里 面的:sys.c、usart.c、delay.c加入到SYSTEM组中。 接着,我们新建一个test.c文件,并保存在USER文件夹下。然后双击USER组,会弹出加载文件的对话框,此时我们在USER目录下选择test.c文件,加入到USER组下。

keil创建arm工程操作步骤

Keil创建ARM工程操作步骤 1、双击keil uvision4,打开keil开发环境 2、选择project—> new uvision project 创建新项目,在创建新项目时,最好先新建一个文件夹,把新项目创建在新文件夹里,这样项目所生产的文件都在该文件夹下,便于项目的管理。 3、在弹出的对话框中选择芯片类型 芯片选择好后,点击OK退出。这时弹出一个对话框,询问是否添加启动代码到新项目中,选择“是”。 4、选择file-->new,新建文件。在文件输入主函数程序代码。输入完

后,点击保存,假设命名为main.c 。注意保存路径,要和项目在同一文件夹下。 5、右键点击source group1,选择add file to source group1. 添加mail.c文件。若项目中包含文件较多,均可采用该方法添加文件。 6、配置相关选项。点击红框的target options 弹出

选择output标签 然后点击“select folder objects”,弹出一对话框,在这里新建一个文

件夹,命名为“obj”,然后双击进入obj文件夹。然后点击ok退出。本步骤的目的是将生产的目标文件都放在obj文件夹里。 7、选择listing标签,点击select folder for listings ,新建文件夹list,并双击进入该文件夹,然后点击ok直接退出。 8、选择linker标签,勾掉use memory layout from target dialog,选择Scaterfile 后面的第一个按钮,选择文件。然后点击编辑。

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