您当前的位置:首页 > 技术风向标

嵌入式软件开发流程及ARM的中断调试方法介绍

时间:2015-01-08  来源:扁平线圈电感厂家  点击:

1 嵌入式软件开发流程

  参照嵌入式软件的开发大功率电感流程。第一步:工程建立和配置。第二步:编辑源文件。第三步:工程编译和链接。第四步:软件的调试。第五步:执行文件的固化。

  在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,包括自己编写的汇编和C语言源程序,还有工程编译时需要编写的链接脚本文件,调试过程中需要编写存储区映像文件和命令脚本文件,以及上电复位时的程序运行入口的启动程序文件。

  对后四种文件的理解很重要,其作用解释如下。

  (1) 链接脚本文件:在程序编译时起作用。该文件描述代码链接定位的有关信息,包括代码段,数据段,地址段等,链接器必须使用该文件对整个系统的代码做正确的定位。在SDRAM中调试程序、在FLASH中调试或固化后运行的链接脚本文件应加以区分。(在I差模电感器DE开发环境中使用扩展名*.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;

  }

  (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])();

  // 调用具体某中断处理程序

  }

  采用动态的中断处理方法,在中断源较多的情况下,中断响应时间和程序性能得到优化。另外,在调试方面,此处理方法具有便于跟踪调试的优点,并且根据需要,可以方便变换中断处理函数。3 中断调试

  软件调试可以在SDRAM中或FLASH中进行。在SDRAM中,读写方便,访问速度快。一般软件调试应在RAM中完成,但当RAM空间小于FLASH程序空间,程序只能在FLASH运行和调试时,或者用户希望了解程序在FLASH中实际运行情况时,就可以在FLASH中进行程序调试。

  进行中断调试时,应注意中断入口位于SDRAM中或FLASH中0x18或0x1c地址,链接脚本文件必须使整个系统的代码正确定位于0x0起始处,但SDRAM或FLASH对应的链接脚本文件及工程配置注意区别。

大电流电感

[ADI]LTC4006充电电路,求大神帮助 本帖最后由 love44570510 于 2016-10-28 13:51 编辑 是这样的,我基于LTC4006-6做了一个8.4V锂电池充电电路,现在碰到一个问题,充电板加载有些电池不充电,电压为6.8V左右,有些就工作正常正常充电我用官方的DEMO板测试所有电池都可以正常检测并充电;用示波器量了一下发现没充电时候板卡的TGATE和BGATE一直都是PWM信号,充电电压8.4V没错,加载电池以后就变成一段一段的PWM信号,充电电压被拉到6.8V,好费解啊,能充电的电池所有板卡测试都没问题,20块,

新款 interAptiv 内核帮助实现 SoC 设计中的“ 性能和功耗/面积通常是相互冲突的设计目标,就像SoC 设计中的 阴 和 阳 。每一代的SoC 都必须不断地在这两个设计目标之间纠结,而就当你觉得终于取得完美的平衡时,新的设计目标又推动着你继

应用灵活的解决方案进行毫米波测量在30至300 GHz之间,毫米波测量的应用正在增加。从高数据速率到汽车行业再到射电天文学,灵活的测量解决方案正日益显现出它的优势。在这些应用中,毫米波测量解决方案就必须遵守很多规则。例如,探测环境中

注塑加工厂


上一篇基于FPGA的LED体三维显示设计方案

下一篇LED点阵书写显示屏的设计


  
  温馨提示
网站首页 | 产品展示 | 科技前沿 | 行业资讯
本公司专业研发、设计、生产、销售贴片电感、插件电感、功率电感、大电流电感、扁平线圈电感、一体成型电感。
专业电感生产制造商,品质优异、交期快。
在线客服
热线电话