基于MDK的软件开发调试解析

上传人:最**** 文档编号:117155779 上传时间:2019-11-18 格式:PPT 页数:130 大小:10.15MB
返回 下载 相关 举报
基于MDK的软件开发调试解析_第1页
第1页 / 共130页
基于MDK的软件开发调试解析_第2页
第2页 / 共130页
基于MDK的软件开发调试解析_第3页
第3页 / 共130页
基于MDK的软件开发调试解析_第4页
第4页 / 共130页
基于MDK的软件开发调试解析_第5页
第5页 / 共130页
点击查看更多>>
资源描述

《基于MDK的软件开发调试解析》由会员分享,可在线阅读,更多相关《基于MDK的软件开发调试解析(130页珍藏版)》请在金锄头文库上搜索。

1、 基于MDK的软件开发调试 英蓓特培训中心 2009. 11 主要内容 n嵌入式软件开发模型 nMDK开发环境介绍 nMDK窗口与对话框 n新建工程、编译、调试、下载 n设备仿真实例 n调试命令/函数、分散加载文件 n基于硬件的开发调试 n程序固化 嵌入式软件开发模型 内容一 嵌入式软件开发模型 n宿主机开发模式 nPC、IDE开发环境、仿真器、评估板、串口线、网线 n在线仿真、Trace、LED、Printf 宿主机仿真器评估板 IDE开发环境 ULINK是Keil公司提供的USB-JTAG接口仿 真器,目前最新的版本是2.0。它支持诸多芯 片厂商的8051、ARM7、ARM9、Cortex

2、-M3、 Infineon C16x、Infineon XC16x、 InfineonXC8xx、STMicroelectronics PSD等 多个系列的处理器。 图图图图4-2 ULINK24-2 ULINK2仿真器仿真器 ULINK2的主要功能如下: (1)下载目标程序; (2)检查内存和寄存器; (3)片上调试,整个程序的单步执行; (4)插入多个断点; (5)运行实时程序; (6)对Flash存储器进行编程。 ULINK2的新特点包括: (1)标准Windows USB驱动支持,也就是 ULINK2即插即用; (2)支持基于ARM Cortex-M3的串行线调 试; (3)支持程序运

3、行期间的存储器读写、 终端仿真和串行调试输出; (4)支持10/20针连接器。 MDK开发环境介绍 内容二 ARM RealView MDK开发环境 n业内领先的技术 nRealView 编译器 nKeil Vision 集成开发环境 nMCU支持 nARM7/9 与Cortex-M3 核的 MCUs n启动代码, Flash 算法, etc n设备 Simulation n可选硬件产品 nULINK2 USB-JTAG 仿真器 nRTX 实时内核 n为小系统打造的高效RTOS n第三方RTOS支持 基于ARM微控制器的完整的软件开发环境. 易学易使用! MDK开发套件构成 Evaluatio

4、n Boards ARM7, ARM9 and Cortex-M3 based MCU devices Target Debug ULINK2 USB-JTAG Adapter with Real-Time Agent RealView RTX Source Code TCP/IP Suite Flash File System USB Device Interface CAN Interface Examples and Templates Real-Time Library Third Party Utilities RealView Microcontroller Development

5、 Kit Examples and Templates Vision Device Database n添加启动代码。 新建工程 添加管理源文件 n组织源码结构; n添加源文件: n从C:KeilARMExamplesMeasure拷贝源文件。 n建立软仿真工程: nSimulator为设备仿真工程。 Startup启动代码 Source实验源文件 System系统调用源文件 IniFile初始化命令文件 ReadMe说明文件 添加管理源文件 n点击工具栏“ ”管理工程,添加源码。 注:为了说明操作,直接拷贝附带例程源码。 设置RTX库 设置ROM设置RAM 设置使用微库 创建HEX文件 设置

6、目标文件路径 设置头文件路径 配置工程 n点击工具栏“ ”打开工程配置窗口。 设置分散加载 设置初始化文件 配置启动代码 n图形化配置 图形化对话框,直观方便 免除手写几百行汇编代码 快速生成启动代码 编译链接工程 n点击工具栏“ ”编译链接工程 Build target Simulator assembling Startup.s. compiling Measure.c. compiling Mcommand.c. compiling Getline.c. compiling Retarget.c. compiling Serial.c. linking. Program Size: Co

7、de=9402 RO-data=958 RW-data=48 ZI-data=1272 “First.axf“ - 0 Error(s), 0 Warning(s). Debug调试 n点击工具栏“ ”下载程序到目标板进入调试状态 单步、查看各个窗口 n单步、断点、全速运行: n查看Debug状态下各个窗口: 设置编程工具 Flash下载 nFlash - Configure Flash Tools: Flash芯片型号 设备仿真实例 内容五 MDK的设备仿真 目标设备的所有组件都可仿真.代码可在整个设备上运行 n完全的目标硬件仿真 n完整的目标 n高效指令集仿真 n中断仿真 n片内外围设备

8、ADC, DAC, EBI, Timers UART, CAN, I2C. 包含外部信号和 I/O n包含外部信号和 I/O n充足的仿真信息 n包含在设备数据库里 nSupports 250 ARM based MCUs nIncluded in RealView MDK Measure程序介绍 n默认路径: C:KeilARMExamplesMeasure; nuVision Simulator for LPC2129; n该例程描述了如何使用uVision的信号函数功能来仿 真LPC21XX一个模拟量的输入。 编译、链接、调试 n打开Measure工程,编译、链接程序,点击Debug 进

9、入调试状态。 编译、链接 Debug 虚拟串口 n打开虚拟串口2,全速运行程序查看结果; Retarget库文件 / Serial.c int sendchar (int ch) if (ch = n) while (!(U1LSR U1THR = CR; while (!(U1LSR return (U1THR = ch); int getkey (void) while (!(U1LSR return (U1RBR); / Retarget.c int fputc(int ch, FILE *f) return (sendchar(ch); nRealView微控制器开发工具集带有一个预定

10、义的 retarget库文件,它是许多例程的一部分。 nretarget文件修改了底层的I/O 程序,并禁止了semi- hosting SWI 中断的使用。 查看程序代码 n代码块彩色显示 n显示混合的源代码与反汇编代码 n改变显示模式并且使用context menu 中的其他命令 (在Disassembly窗口中 点击右键) 调用栈 nView - Watch printf (“ Analog-Input-0: %fn“, ain0); printf (“ Analog-Input-1: %fn“, ain1); printf (“ Analog-Input-2: %fn“, ain2);

11、 printf (“ Analog-Input-3: %fn“, ain3); printf (“ Port 0: %08Xn“, port0); printf (“=n“); /* MEASURE.INI: Measure Debug Init File */ Signal void analog0 (float limit) float volts; printf (“Analog0 (%f) entered.n“, limit); while (1) /* forever */ volts = 0; while (volts = 0.0) ain0 = volts; swatch (0.

12、01); /* wait 0.01 seconds */ volts -= 0.1; /* decrease voltage */ 初始化文件 信 号 函 数 Toolbox nView - Toolbox; DEFINE BUTTON “My Status Info“, “MyStatus()“ DEFINE BUTTON “Analog0 03V“, “analog0(3)“ DEFINE BUTTON “Stop Analog0“, “signal kill analog0“ nToolbox中包含用户可配置的按钮。 n点击工具箱上的按钮可以执行相关的调试命令或调试函数。 n工具箱按钮可

13、以在任何时间执行,甚至是运行测试程序时。 n添加按钮语法: n删除按钮语法: DEFINE BUTTON “button_label“, “command“ Kill Button num 逻辑分析仪 nDebug - Logic Analyzer Window 可以是变量或VTREGs值 综合 n全速运行程序,串口输入“d”,在终端显示ADC采样值; n点击Toolbox的“Analog0 03”按钮,输出外部信号; n查看各个调试窗口状态。 调试命令/函数、分散加载文件 内容六 调试命令 nVision3支持大量命令,可以通过 Output Window Command Line 键入命令

14、 n在命令入口处,语法生成器会显示命令,选项和参数。 n仅需键入命令名单词的首字符。 类别描述 断点命令 允许创建和删除断点。当遇到一个特定指令时可以使用断点 停止程序执行或执行Vision3 命令或用户函数。 普通命令可以执行一些混合的调试操作。 存储器命令显示和改变存储器内容 程序命令执行目标程序并分析其性能 调试命令-断点命令 命令 描述 BreakAccess添加一个指定长度(地址域)的访问断点到断点列表。 BreakDisable使一个或多个断点不可用。 BreakEnable使能一个或多个断点。 BreakKill从断点列表中移除一个或多个断点。 BreakList列出当前断点。

15、BreakSet添加一个断点表达式到断点列表。 调试命令-普通命令 命令 描述 ASSIGN为串行窗口分配输入输出源。 DEFINE创建一个工具箱按钮。 DIR生成一个符号名目录。 EXIT退出Vision3 调试模式。 INCLUDE读取并执行命令文件中的命令。 KILL删除Vision3 调试函数和工具箱按钮。 LOAD载入目标模块和十六进制文件。 LOG为调试窗口生成日志文件,查询日志状态及关闭日志文件。 MODE为PC机的COM口设置波特率,奇偶位和停止位。 RESET重启Vision3, 重设存储映射分配及重置预定义变量。 SAVE在Intel HEX386文件中保存一个存储域。 S

16、COPE显示目标程序的模块和函数的地址分配。 SET为预定义变量设备字符串值。 SIGNAL显示信号函数的状态和移除有效信号函数。 SLOG为串行窗口生成日志文件,查询日志状态及关闭日志文件。 调试命令-存储器命令 命令 描述 ASM汇编内嵌代码。 DEFINE定义可能在Vision3中使用的符号。 DISPLAY显示存储器的内容。 ENTER把值键入到指定的存储域。 EVALuate求表达式的值并输出结果。 MAP为存储域指定访问参数。 Unassemble反汇编程序存储域。 WatchSet向观测窗口中添加一个观测变量。 WatchKill删除观测窗口中的所有观测变量 调试命令-程序命令 命令 描述 COVERAGE显示代码统计信息 Go启动程序执行 LogicAnalyze初始化逻辑分析仪 PerformanceA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号