文档库 最新最全的文档下载
当前位置:文档库 › 基于KEIL的STM32F103系统的开发与调试

基于KEIL的STM32F103系统的开发与调试

基于KEIL的STM32F103系统的开发与调试
基于KEIL的STM32F103系统的开发与调试

微处理器系统原理与设计课程实践参考文档之基于KEIL的STM32F103系统的开发与调试

1、建立工程

2、选择工作目录,输入项目名test1。

3、选择器件,选择STMicroelectronics的STM32F1 Series中的器件后确定。

对于KEIL5来说,若没有该器件,需要装PACKE,选择Pack Installer后选择相应PACK安装即可。

4、运行环境选择。暂不选,按确定。

5、建立了一个空项目。

6、设置OPTION,右键点击TARTGET1

左键点击Options for tartget 'target 1'

7、构建软仿真环境,在Ddbug栏设置。

8、添加汇编文件startup.s

9、添加代码

10、先编译,再链接,最后调试。(底部有编译和链接信息,出错的话会提示)

DEBUG时,左边是寄存器组信息,右边通常会出现“上面机器码与汇编-下面程序”结构。上方的黄箭头表时当前取指地址(PC值),下面的双三角表示即将执行的程序代码。

实际操作一步步执行;单行是指完成该指令所到实现的功能,并不关心该指令所导致的实际操作过程。

单步执行后,执行过的指令前面由深灰变深绿。

调试中经常需要观察存储器,点相应图标

输入地址后即可显示后续的存储空间的内容。

在存储区间点击右键可以选择显示类型,如无符号32位

若修改代码,再按

退出调试界面。

图形界面中有时可以自由摆放所用的工具。

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

STM32最小系统电路

STM32最小系统电路 原创文章,转载请注明出处: 1.电源供电方案 ● VDD = ~:VDD管脚为I/O管脚和内部调压器的供电。 ● VSSA,VDDA = ~:为ADC、复位模块、RC振荡器和PLL的模拟部分提供供电。使用ADC时,VDD不得小于。VDDA和VSSA必须分别连接到VDD和VSS。 ● VBAT = ~:当关闭VDD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电。 采用(AMS1117)供电 ]

2.晶振 STM32上电复位后默认使用内部[精度8MHz左右]晶振,如果外部接了8MHz 的晶振,可以切换使用外部的8MHz晶振,并最终PLL倍频到72MHz。 3.JTAG接口 ~ 在官方给出的原理图基本是结合STM32三合一套件赠送的ST-Link II给出的JTAG接口。

ST-Link II SK-STM32F学习评估套件原理图的JTAG连接 很多时候为了省钱,所以很多人采用wiggler + H-JTAG的方案。H-JTAG其实是twentyone大侠开发的调试仿真烧写软件,界面很清新很简洁。 ) H-JTAG界面

H-JTAG软件的下载: H-JTAG官网:大侠的blog: 关于STM32 H-JTAG的使用,请看下一篇博文 Wiggler其实是一个并口下载方案,其实电路图有很多种,不过一些有可能不能使用,所以要注意。你可以在taobao上买人家现成做好的这种Wiggler下载线,最简便的方法是自己动手做一条,其实很简单,用面包板焊一个74HC244就可以了。 ! Wiggler电路图下载: 电路图中”RESET SELECT”和”RST JUMPER”不接,如果接上的话会识别不了芯片。

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.wendangku.net/doc/be61584.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组下。

相关文档
相关文档 最新文档