版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
12ARM开发工具的使用12ARM开发工具的使用(1)
开发工具概述(2)MDK开发工具(3)固件库及MDK工程模板创建(4)
软件模拟仿真(5)
编程下载(6)
硬件仿真12.1开发工具概述开发过程编译链接a.hexa.o集成开发环境:编辑软件编译软件汇编软件链接软件调试软件工程管理及函数库的集成开发环境(IDE,类似VC、KeilC51等)12.1开发工具概述调试方法嵌入式调试系统应含调试主机、仿真器和目标板3个部分。调试方法一般有如下4种:1指令集模拟器(软调试)2驻留监控软件3JTAG仿真器4在线仿真器(仿真头)
12.1开发工具概述调试方法1指令集模拟器(软调试)
指令集模拟器可方便用户在PC机上完成一部分简单的软件调试工作,它只是将源代码在PC机上的开发环境中模拟运行,通过集成开发环境提供的寄存器查看、存储器查看、断点执行、单步执行等功能,能检测用户开发的软件在语法和功能上是否正确,它无法在电路板上运行。与真实的硬件环境相差很大,因此即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发。12.1开发工具概述调试方法2驻留监控软件(ResidentMonitors:交互式硬件调试)
驻留监控软件是一段运行在目标板(用户所开发的硬件电路板)上的程序,
集成开发环境中的调试软件通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。
驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。ARM公司所提供的Angel调试软件属于该类工具。它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿真,所以对一些要求严格的情况不是很适合。12.1开发工具概述调试方法3JTAG仿真器
JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器在价格上比较便宜,与PC机相连接比较方便,通过现有的JTAG边界扫描口与ARMCPU内核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标板上存储器资源,不占用目标系统的任何端口。
另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此许多接口问题,如程序的实时性限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。用户所购买的嵌入式系统开发套件一般都附带有JTAG仿真器。12.1开发工具概述基于JTAG的调试方法—简易JTAG接口(基于并口)基于USB口的仿真器支持的器件:带SWIM接口的STM8所有带JTAG/SWD接口的STM32支持的CPUs:ARM7/9/11Cortex-A5/A7/A8/A9Cortex-M0/M1/M3/M4/M7Cortex-R4仿真频率:12MHz仿真频率:
18MHzST-LINKJ-LINK调试方法4在线仿真器在线仿真器使用仿真头完全取代目标板上的CPU,可以完全仿真ARM芯片的功能,提供更加深入的调试功能。
但这类仿真器为了能够全速仿真时钟速度高于100MHz的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵。
在线仿真器通常用在ARM的硬件开发中,在软件的开发中较少使用,其价格高昂也是在线仿真器难以普及的因素。
12.1开发工具概述集成开发工具简介1
SDTSDT的英文全称是SoftwareDevelopmentKit,是ARM公司为方便用户在ARM芯片上进行应用软件开发而推出的一整套集成开发工具。SDT经过ARM公司逐年的维护和更新,目前的最新版本是6.5.2,但从版本6.5.1开始,ARM公司宣布推出一套新的集成开发工具ARMADS取而代之,今后将不会再看到ARMSDT的新版本。
12.1开发工具概述集成开发工具简介2
ADSADS的英文全称为ARMDeveloperSuite,是ARM公司推出的新一代ARM集成开发工具,用来取代ARM公司以前推出的开发工具SDT。ADS起源于ARMSDT,对一些SDT的模块进行了增强并替换了一些SDT的组成部分,用户可以感受到的最强烈的变化是ADS使用CodeWarriorIDE集成开发环境替代了SDT的APM,使用AXD替换了ADW,现代集成开发环境的一些基本特性如源文件编辑器语法高亮度显示,窗口驻留程序执行等功能在ADS中得以体现。
ADS支持所有ARM系列处理器包括ARM9E和ARM11等,除了SDT支持的运行操作系统外,还可以在Windows以及RedHatLinux上运行。12.1开发工具概述集成开发工具简介3Multi2000Multi2000是美国GreenHills软件公司开发的集成开发环境,支持C/C++/EmbeddedC++/Ada95/Fortran编程语言的开发和调试,可运行于Windows平台和Unix平台,并支持各类设备的远程调试。Multi2000支持GreenHills公司的各类编译器以及其它遵循EABI标准的编译器,同时Multi2000支持众多流行的16位、32位和64位处理器和DSP,如PowerPC、ARM、MIPS、x86、Sparc、TriCore、SH-DSP等,并支持多处理器调试。Multi2000包含完成一个软件工程所需要的所有工具,这些工具可以单独使用,也可集成第三方系统工具。
12.1开发工具概述集成开发工具简介4EmbestIDEEmbestIDE英文全称是EmbestIntegratedDevelopmentEnvironment,是深圳市英蓓特信息技术有限公司推出的一套应用于嵌入式软件开发的新一代集成开发环境。EmbestIDE是一个高度集成的图形界面操作环境,包含编辑器、编译器、汇编器、链接器、调试器等工具,其界面同MicrosoftVisualStudio类似。EmbestIDE支持ARM、Motorola等多家公司不同系列的处理器,对于ARM系列处理器,目前支持到ARM9系列,包括ARM7、ARM5等低系列芯片。EmbestIDE运行的主机环境为Windows95/98/NT/Me/2000,支持的开发语言包括标准C、EmbeddedC和汇编语言。EmbestIDE包括编辑器、编译器、连接器、调试器、工程管理器等功能模块,用户同时可选配EmbestJTAG仿真器。
12.1开发工具概述集成开发工具简介5HitoolforARM
HitoolInternationalInc.推出,是一种较新的ARM嵌入式应用软件开发系统。
主要包括hitool/ARMDebugger、GNUCompiler(内建)、JTAGcable、评估板以及嵌入式实时操作系统ThreadX等模块。
其中编译器模块可以替换成ARMADSCompiler或ARMSDTCompiler。
12.1开发工具概述集成开发工具简介6JEENI仿真器
JEENI仿真器是美国EPI公司生产的专门用于调试ARM7系列的开发工具。
它与PC之间通过以太网口或串口连接,与ARM7目标板之间通过JTAG口连接。
该仿真器使用独立电源。JEENI仿真器支持ARM/THUMB指令,支持汇编/高级语言调试。
12.1开发工具概述集成开发工具简介7Multi-ICEMulti-ICE是ARM公司自己的JTAG在线仿真器。Multi-ICE的JTAG链时钟可以设置为5kHz到10MHz,实现JTAG操作的一些简单逻辑由FPGA实现,使得并行口的通信量最小,以提高系统的性能。Multi-ICE硬件支持低至1V的电压。Multi-ICE6.1还可以外部供电,不需要消耗目标系统的电源,这对调试类似手机等便携式、电池供电设备是很重要的。Multi-ICE6.x支持该公司的实时调试工具MultiTrace,MultiTrace包含一个处理器,因此可以跟踪触发点前后的轨迹,并且可以在不终止后台任务的同时对前台任务进行调试,在微处理器运行时改变存储器的内容,所有这些特性使延时降到最低。
Multi-ICE6.x支持ARM7、ARM9、ARM9E、ARM10和IntelXscale微结构系列。
12.1开发工具概述12ARM开发工具的使用(1)
开发工具概述(2)MDK开发工具(3)固件库及MDK工程模板创建(4)
软件模拟仿真(5)
编程下载(6)
硬件仿真12.2MDK开发工具
1、简介KeilMDK-ARM是适用于ARM7、ARM9、Cortex等处理器的设备的完整软件开发环境。主要特点如下:完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。行业领先的ARMC/C++编译工具链确定的KeilRTX,小封装实时操作系统(带源码)μVisionIDE集成开发环境,调试器和仿真环境TCP/IP网络套件提供多种的协议和各种应用提供带标准驱动类的USB设备和USB主机栈为带图形用户接口的嵌入式系统提供了完善的GUI库支持ULINKpro可实时分析运行中的应用程序,且能记录Cortex-M指令的每一次执行关于程序运行的完整代码覆盖率信息执行分析工具和性能分析器可使程序得到最优化大量的项目例程帮助你快速熟悉MDK-ARM强大的内置特征符合CMSIS(Cortex微控制器软件接口标准)2、MDK开发环境的安装(1)安装好MDK:KeiluVision5/MDK开发环境的安装(2)下载并安装芯片包文件“Keil.STM32F1xx_DFP.2.3.0.PACK”下载、安装步骤:访问Keil官网下载后双击.pack文件MDK开发环境的安装3、下载(复制)固件库文件(步骤见下节)LOGO图标库函数与启动文件驱动示例工程模板ST官方开发板例程更新说明帮助文件12ARM开发工具的使用(1)
开发工具概述(2)MDK开发工具(3)固件库及MDK工程模板创建(4)
软件模拟仿真(5)
编程下载(6)
硬件仿真12.3.1STM32固件库ST公司提供的STM32F10x标准外设库是基于STM32F1系列微控制器的固件库进行STM32F103开发的一把利器。可以像在标准C语言编程中调用printf()一样,在STM32F10x的开发中调用标准外设库的库函数,进行应用开发。STM32固件库是根据CMSIS标准(CortexMicrocontrollersoftwareInterfaceStandard,ARMCortex微控制器软件接口标准)而设计的。CMSIS标准由ARM和芯片生产商共同提出,让不同的芯片公司生产的CortexM3微控制器能在软件上基本兼容。1.STM32固件库概述2.STM32固件库下载第一步:输入网址,打开ST官方网站,在首页搜索栏输入“stm32f10x”。点击搜索2.STM32固件库下载STM32F1的标准外设库。点击“GetSoftware”按钮,登陆、著作权确认之后,即可将该固件库下载到的本机上3.STM32固件库目录结构LOGO图标库函数与启动文件驱动示例工程模板ST官方开发板例程更新说明帮助文件
(1)Libraries文件夹Libraries文件夹存放STM32F10x开发要用到的各种库函数和启动文件,其目录下包括CMSIS和STM32F10x_StdPeriph_Driver两个子文件夹1)CMSIS子文件夹STM32F10x的内核库文件夹,其核心是CM3子文件夹,在CM3子目录下有CoreSupport和DeviceSupport等两个文件夹。a)CorcSupport文件夹Cortex-M3核内外设函数文件夹,Cortcx-M3内核通用源文件core_cm3.c和Cortcx-M3内核通用头文core_cm3.hb)DeviccSupport文件夹设备外设支持函数文件夹,其核心是ST子文件夹,ST文件夹下有STM32F10x子文件夹。STM32F10x子文件夹下有STM32F10x头文件stm32f10x.h和系统初始化文件system_stm32f10x.c,以及startup子文件夹。STM32F103ZET6微控制器属于STM32F103的大容量产品,因此,它对应的启动代码文件为startup_stm32f10x_hd.sstartup子文件夹下有arm子文件夹、gcc_ride7子文件夹、iar子文件夹、TrueSTUDIO子文件夹,含有启动代码文件。在arm子文件夹下可以看到相应的汇编语言编写的启动代码文件。2)STM32F10x_StdPeriph_Driver文件夹STM32F10x_StdPeriph_Driver子文件夹为STM32Fl0x标准外设驱动库函数目录,包括了所有STM32F10x微控制器的外设驱动。src子目录:src是source的缩写,存放ST为STM32F10x每个外设而编写的库函数源代码文件inc子目录:inc是include的缩写存放STM32F10x每个外设库函数的头文件
(2)Project文件夹Project文件夹对应STM32F10x标准外设库体系架构中的用户层,用来存放ST官方提供的STM32F10x工程模板和外设驱动示例1)STM32F10x_stdPeriph_Template子文件夹TM32F10x_stdPeriph_Template子文件夹,是ST提供的STM32F10x工程模板目录2)STM32F10x_StdPeriph_Examples子文件夹STM32F10x_StdPeriph_Examples子文件夹,是ST提供的STM32F10x外设驱动示例目录。
(3)Utilities文件夹Utilities文件夹用于存放ST官方评估板的BSP(BoardSupportPackage,板级支持包)和额外的第三方固件。12.3.2工程模板的创建1)创建工程模板素材创建工程模板素材主要是内核固件库,另外还有两个重要的预定义命令。2)工程模板创建步骤第一步:创建或复制文件夹1、在桌面(或其他文件夹)创建“工程模板”(或其他名称)文件夹。2、复制固件库(文件夹名称:F10x_Lib_V3.5)中的“Libraries”文件夹到刚建立的工程模板文件夹。3、创建“Startup”文件夹,用于存放启动文件,并复制“startup_stm32f10x_hd.s”到该文件夹中,此文件为大容量芯片的启动文件。文件路径为F10x_Lib_V3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm4、创建“User”文件夹,并复制“main.c”、“stm32f10x_conf.h”、“stm32f10x_it.c”、“stm32f10x_it.h”到该文件夹中。路径为F10x_Lib_V3.5\Project\STM32F10x_StdPeriph_Template5、创建“APP”文件夹,用于存放用户编写的外设驱动程序。工程模板文件夹目录:Startup文件夹目录:User文件夹目录:第二步:建工程模板文件,建立文档分组1、在开始/程序或桌面快捷方式中启动KeiluVision软件2、依次单击菜单栏“Project/newμvisionProject3.给出工程文件名4、点保存后弹出目标器件选择对话框,如果先前安装过芯片包文件“Keil.STM32F1xx_DFP.2.3.0.PACK”,会出现STM32芯片列表:5、建立分组并添加文件依次单击“Project/Manage/components,Environment”或直接单击工具栏图标打开图所示的ManageProjectItems窗口。建立分组:在分组中添加文件:◆User::“main.c”
,“stm32f10x_it.c”(已有)◆Cmsis:“core_cm3.c”,“system_stm32f10x.c”◆Startup:“startup_stm32f10x_hd.s”(已有)◆ST_driver:“stm32f10x_gpio.c”、“stm32f10x_rcc.c”◆APP:此分组下面还没有文件,由用户编写!建立分组和添加文件操作完成之后,Keil软件界面第三步:设置输出文件夹,添加预编译变量,包含头文件路径1、依次单击菜单“Project/Optionsfortarget”或直接单击工具栏图标,可以打开如图所示“Optionsfortarget‘target1’”对话框。2、在“Output”选项卡中勾选“CreateHEXFile”,并选择输出文件夹为工程模板目录下的“output”文件夹。3、在“Listing”选项卡中单击“SelectFolderforListing”,并选择输出文件夹为工程模板目录下的“output”文件夹。4、在“C/C++”选项卡中,在“Define”区域添加两个重要的预编译命令:“USE_STDPERIPH_DRIVER,STM32F10X_HD”5、在“C/C++”选项卡中,单击“IncludePath”后面的“…”按钮,6、在“Debug”选项卡中选中“UseSimulator”单选按钮(软件仿真)如果要做硬件仿真,在“Debug”选项卡中选中“Use”单选按钮,然后下拉框选择对应的仿真器类型选完仿真器后,点击“Settings”按钮查看仿真器状态信息(ST-Link)选完仿真器后,点击“Settings”按钮查看仿真器状态信息(J-LINK)第四步:创建public.h文件,重写main.c文件,编译调试1、在KeiluVision工程文件界面中,依次单击File\New新一个空白文件,并将其以文件名“public.h”保存到工程模板的User文件夹下,在public.h文件中输入以下代码:#ifndef_public_H#define_public_H#include"stm32f10x.h"
#endif第四步:创建public.h文件,重写main.c文件,编译调试2、将原main.c中的程序删除,写一个main的空函数。3、对整个工程进行编译。工程模板创建完毕接下来可在main.c中写用户的主程序一个简单工程的实现:继续努力!在main.c中写:/*Includes------------------------------------------------------------------*/#include"public.h"intmain(){
u32i; RCC->APB2ENR=0x0010;//??? GPIOC->CRL=0x11111111;//???? while(1) { GPIOC->ODR=0x0000;//PC0???? for(i=0;i<6000000;i++);//?? GPIOC->ODR=0xFFFF;//PC0???? for(i=0;i<6000000;i++); }}编译12.3.3工程创建的另一种方法------CubeMXST官网/content/st_com/en.html下载STM32Cubeinitializationcodegenerator安装SetupSTM32CubeMX并运行点击后自动下载MCU文件:选CPU后点击“开始工程”(1)设置外设和引脚功能1)GPIO
2)ADC3)时钟引脚4)配置调试方式5)配置中间件和外设6)配置时钟倍频(2)能耗估计(3)设置工程名字、工程保存的路径、所使用的编译器软件(Keil5)只把用到的库文件拷贝到工程中去。为每一个外设建立一个单独的.c和.h文件。(4)设置代码生成器MDK中自动生成的外设文件和代码选择是否使用HAL固件库(ST为开发者提供了标准外设库(STD库)、HAL库、LL库三种。前两者都是常用的库,后面的LL库是ST新添加的,随HAL源码包一起提供,目前支持的芯片也偏少。)
每个外设在main函数中调用的先后顺序
(5)选择HAL固件库以及外设在调用顺序(6)生成代码如果没有装固件库,则会提示需要下载和安装,点“Yes”进行下载。生成代码完成后点击“OpenProject”就可以在MDK中打开刚生成的工程:打开工程,可以接着在while(1)里面写我们的逻辑代码了(7)HAL固件库使用手册
在USER文件夹的固件库安装文件夹里面:12ARM开发工具的使用(1)
开发工具概述(2)MDK开发工具(3)固件库及MDK工程模板创建(4)
软件模拟仿真(5)
编程下载(6)
硬件仿真第一步:创建项目工程,并编译生成目标文件12.4软件模拟仿真在创建的工程中的main.c文件中输入需要仿真的源程序用于将PC端口数据定时清零和全部置1第二步:将调试方式设置为软件模拟仿真方式在“OptionsforTarget‘Target1'”里的“Debug”里将调试方式设置为软件模拟仿真方式第三步:进入软件模拟调试模式选择菜单Debug→start/stopDebugsession命令或者单击工具栏中的Debug按钮,进入软件模拟调试模式。第四步:打开相关窗口添加监测变量或信号菜单View→AnalysisWindows→LogicAnalyzer命令或者直接单击工具栏的LogicAnalyzer按钮,打开逻辑分析仪窗口单击逻辑分析仪窗口的Setup按钮,打开SetupLogicAnalyzer对话框,单击右上角的New按钮,在空白框中输入PORTC.0新增一个观测信号。第五步:软件模拟运行程序,观察仿真结果选择菜单Debug→Run命令或者单击工具栏中的Run按钮,开始仿真。运行后打开逻辑分析仪可以看到波形,鼠标右键可以选择显示的数据类型:第六步:退出模拟仿真调试模式选择菜单Debug→start/stopDebugsession命令或者单击工具栏中的Debug按钮,即可退出模拟仿真调试模式。12ARM开发工具的使用(1)
开发工具概述(2)MDK开发工具(3)固件库及MDK工程模板创建(4)
软件模拟仿真(5)
编程下载(6)
硬件仿真基于USB口的仿真器支持的器件:带SWIM接口的STM8所有带JTAG/SWD接口的STM32支持的CPUs:ARM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于大数据的医院人力资源管理研究
- 护理工作创新思维
- 快递公司中层管理面试问题
- 护理安全管理中的安全政策与程序
- 无人化智能仓储场站整体建设方案
- 护理环境礼仪要求
- 护理职称评审答辩答辩技巧
- 护理健康教育要点
- 智能控制就业前景分析
- 2025年自动驾驶地图数据压缩方法
- 脑梗塞的症状及前兆课件
- 春龙节课件教学课件
- 医学伦理知情同意书
- 等和线定理课件
- 百合花介绍教学课件
- 个人信息保护合规性检查清单
- Amfori BSCI社会责任验厂全套管理手册及程序文件(可编辑)
- 口腔X线检查的防护
- 2026年池州职业技术学院单招职业技能考试题库附答案
- 脊柱外科患者宣教
- 2026年正德职业技术学院单招综合素质考试必刷测试卷及答案1套
评论
0/150
提交评论