ARM的三种中断调试方法

操作方法

  • 01

    1嵌入式软件开发流程 参照嵌入式软件的开发流程第一步:工程建立和配置第二步:编辑源文件第三步:工程编译和链接第四步:软件的调试第五步:执行文件的固化 在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备编辑工程文件,包括自己编写的汇编和C语言源程序,还有工程编译时需要编写的链接脚本文件,调试过程中需要编写存储区映像文件和命令脚本文件,以及上电复位时的程序运行入口的启动程序文件 对后四种文件的理解很重要,其作用解释如下: (1) 链接脚本文件:在程序编译时起作用该文件描述代码链接定位的有关信息,包括代码段,数据段,地址段等,链接器必须使用该文件对整个系统的代码做正确的定位在SDRAM中调试程序、在FLASH中调试或固化后运行的链接脚本文件应加以区分(在IDE开发环境中使用扩展名*.ld) (2)命令脚本文件:在SDRAM中调试程序时起作用在集成环境与目标连接时、软件调试过程中以及目标板复位后,有时需要集成环境自动完成一些特定的操作,比如复位目标板、清除看门狗、屏蔽中断寄存器、存储区映射等这些操作可以通过执行一组命令序列来完成,保存一组命令序列的文本文件称为命令脚本文件(在 IDE开发环境中使用扩展名*.cs) (3)存储区映像文件:在SDRAM中调试程序时起作用在 软件调试过程中访问非法存储区在部分处理器和目标板上会产生异常,如果异常没有处理,则会导致软件调试过程无法继续,为了防止以上问题并调整仿真器访问速 度以达到最合适的水平,提供这样一种用于描述各个存储区性质的文件叫存储区映像文件(在IDE开发环境中使用扩展名*.map) 在程序的调试过程中可以选择使用存储区映像文件*.map和命令脚本文件*. cs配合程序的调试 (4) 启动文件:它主要是完成一些和硬件相关的初始化的工作,为应用程序做准备一 般,启动代码的第一步是设置中断和异常向量;第二步是完成系统启动所必须的寄存器配置;第三步设置看门狗及用户设计的部分外围电路;第四步是配置系统所使 用的存储区分配地址空间; 第五步是变量初始化;第六步是为处理器的每个工作模式设置栈指针;最后一步是进入高级语言入口函数(Main函数) 2 中断程序设计 中断调试方面可以采用类似矢量中断动态处理方式,让中断对应的确定地址代码调转到RAM的固定地址处,定义一个函数指针指向该固定地址,就可以随时通过替换RAM固定地址处的代码,实现动态改变中断处理函数 具体方法是: (1)将中断源函数指针定义在RAM中相对的固定地址,建立中断矢量表; void SetInterrupt (U32 vector, void (*handler)()) { InterruptHandlers[vector] = handler; } void SetInterrupt (U32 vector, void (*handler)()) { InterruptHandlers[vector] = handler; } (2)在程序中,调用具体某中断源的中断处理函数; 如: SetInterrupt(IIC_INT,IICWriteIsr); /* 声明IIC中断处理函数,其中IIC_INT为 IIC中断源序号,IICWriteIsr为 IIC的写中断处理函数 */ (3)在0x18处的IRQ或0x1C处的FIQ中断入口函数中,获取中断源、清除中断挂起标志、通过已定义的中断源函数指针进入用户具体某中断处理程序 void ISR_IrqHandler(void) { IntOffSet = (unsigned int)INTOFFSET; Clear_PendingBit(IntOffSet>>2) ; (*InterruptHandlers[IntOffSet>>2])(); // 调用具体某中断处理程序 } void ISR_IrqHandler(void) { IntOffSet = (unsigned int)INTOFFSET; Clear_PendingBit(IntOffSet>>2) ; (*InterruptHandlers[IntOffSet>>2])(); // 调用具体某中断处理程序 } 采用动态的中断处理方法,在中断源较多的情况下,中断响应时间和程序性能得到优化另外,在调试方面,此处理方法具有便于跟踪调试的优点,并且根据需要,可以方便变换中断处理函数 3 中断调试 软件调试可以在SDRAM中或FLASH中进行在SDRAM中,读写方便,访问速度快一般软件调试应在RAM中完成,但当RAM空间小于FLASH程序空间,程序只能在FLASH运行和调试时,或者用户希望了解程序在FLASH中实际运行情况时,就可以在FLASH中进行程序调试 进行中断调试时,应注意中断入口位于SDRAM中或FLASH中0x18或0x1c地址,链接脚本文件必须使整个系统的代码正确定位于0x0起始处,但SDRAM或FLASH对应的链接脚本文件及工程配置注意区别 (1)程序在SDRAM中运行 在SDRAM中调试,使用SDRAM对应的链接脚本文件调试过程需要以下几步:编译、链接工程;连接仿真器和电路板;下载程序(在IDE开发环境中使用扩展名*.elf);调试 下载程序前必须启动命令脚本文件完成前述的一些特定的操作,命令脚本文件的启动在连接仿真器时自动进行,其中存储区映射应与程序在SDRAM中运行时相同,保证整个系统的代码正确定位于0x0起始处下载程序的起始地址也为0x0,下载成功后便可进行调试工作 (2)程序在FLASH中运行 在FLASH中调试,使用FLASH对应的链接脚本文件调试过程需要以下几步:编译、链接工程;连接仿真器和电路板;程序格式转换(*.elf转换为*.bin);固化*.bin程序;调试 连接仿真器后不需要下载程序,存储区映射由本身工程中启动文件运行完成,不需要命令脚本文件在本环境调试过程中,可以设置两个硬件断点 (3)程序从FLASH中调到SDRAM中运行 在某些应用场合,强调程序运行速度的情况下,希望程序在SDRAM中运行,这样就需要将FLASH中存储的程序,在系统上电后搬运到SDRAM某空间位置,然后自动运行这种所谓的Bootloader技术,在DSP系统中常被采用 调试过程分两步: (a)首先将用户程序在SDRAM中调试通过,然后将*.bin文件固化到FLASH某一非0扇区地址空间; (b) 将自己编写的Bootloader搬运程序调试通过并将Bootloader.bin文件固化到FLASH的 0扇区地址空间,搬运程序在系统上电后,将(a)中FLASH某一非0扇区地址空间存储的程序,搬运到在SDRAM调试中同样的空间位置,实现程序在 SDRAM中运行的目的 另外注意,因为用户实际的程序中断入口必须位于FLASH的0x18或0x1c地址,所以Bootloader搬运程序还应具有中断入口的跳转功能,即把PC指针由此转向处于SDRAM空间的中断程序入口表,就是整个用户程序被搬运到SDRAM的那一位置 如:LDR PC, =HandleIRQ // HandleIRQ位于SDRAM空间中断程序入口表 以上内容均出自上嵌编辑发布、如需转载请联系上嵌。

(0)

相关推荐

  • Win10截图快捷键是什么?三种Win10截图方法介绍

    截图在电脑中经常要用到,尤其是向编辑以及一些喜欢分享的朋友,经常需要用到电脑截图.最近发现,很多新安装Win10是朋友,想要晒一晒Win10界面,但不知道Win10怎么截图,因此下面小编打算为大家详细 ...

  • Win10怎么截图 三种Win10截图方法

    截图在电脑中经常要用到,尤其是向百事网编辑以及一些喜欢分享的朋友,经常需要用到电脑截图.最近发现,很多新安装Win10是朋友,想要晒一晒Win10界面,但不知道Win10怎么截图,因此下面小编打算为大 ...

  • 迅雷下载完怎么自动关闭?迅雷下载完成后三种自动退出方法

    迅雷下载完成后三种自动退出方法 首先,我们在桌面双击迅雷快捷方式,启动迅雷,如下图所示: 打开迅雷之后,我们再点击一下:计划任务,如下图箭头所示: 点击之后就到了这里,我们选择下载完成后退出迅雷,如下 ...

  • 内存卡或U盘三种格式化的方法及优缺点

    新购买的内存卡或USB需要格式化,我们应该格式化为什么文件系统呢?在哪里进行格式化呢? 操作方法 01 内存卡和U盘与电脑的连接方法 新购买的内存卡,需要进行格式化时,必须插入读卡器,再插入电脑的US ...

  • 如何在word中输入分数(推荐) 三种万能的方法

    如何在word中输入分数(推荐) 三种万能的方法 操作方法 01 方法一: 插入=>域 1.弹出的窗口左边类别选"等式和公式"右边域名选"Eq" 2.点击 ...

  • matlab三种创建传递函数方法之比较

    s + 5 传递函数      G=     ------------------------ s^3 + 16 s^2 + 51 s + 36 1. TF对象构造法 num =[1  5]; den ...

  • 荣耀note 10怎么截屏 三种截屏方法教程

    荣耀note 10是华为手机里很受欢迎的一款,其截屏功能也是经常用到的,下面我们就一起来了解一下它的三种截屏方式: 操作方法 01 第一种:基本也是安卓手机通用的,同时按下电源键和音量下键即可截屏 0 ...

  • 三星S6的三种截屏方法

    三星s6截屏方法有三种,下面小编教大家分别怎么操作,供大家参考! 操作方法 01 安卓通用按键截屏: 在你要截屏的界面,同时按下home+电源键即可,如下图所示 02 设置菜单截屏: 在主页点击设置, ...

  • oppo R9s三种截图快捷方法

    现在都流行使用手机截图,将需要的手机信息截下来保存到手机中,既可以发给小伙伴,又可以用于以后查看,因此OPPO R9s就有三种截图方式,下面就给大家介绍. 操作方法 01 首先就是我们常用的一种方式, ...