Jlink调试2440进不了中断的看这里

最新更新时间:2022-04-21来源: eefocus关键字:Jlink调试  中断 手机看文章 扫描二维码
随时随地手机看文章

很多人学习2440都是从裸机开始的。刚开始的小菜LED,然后定时器、按键这些常用内部外设,最后则是LCD、Nand等复杂外设。


用Jlink裸机调试2440小程序时,中断的调试是一个重要内容。像定时器、按键等外设调试都需要用到中断。


今天在调试以前写的定时器测试工程时活见鬼的总是不成功。因为是以前调试ok的工程,所以可以肯定代码没有错的,应该是调试方面的错误。于是乎:

(1)换了下MDK的版本,从4.1.2降到之前的3.5,一样不行。

(2)调试时单步执行,在Memory栏内输入SRCPND和INTPND寄存器的地址,单步时通过观察这两个寄存器的值,确定中断是否真的发生。结果中断确实发生,证明程序真的是无误的,那一定就是中断发生了而没有被正确响应。

(3)怀疑是Jlink的问题,于是将链接地址设置到0x0开始,编译得到bin后,使用Jlink Commander的loadbin setpc等命令加载到0x0地址(即内部SRAM)运行。ok,结果中断被响应了。彻底证明了程序是正确的,而是中断发生后没有被正确响应。

(4)将链接地址修改为0x0的工程再次用JLink单路调试。OK的,中断也可以被响应。到这里问题就已经明了了。之前我用Jlink调试程序时都是直接加载到0x30000000开始的地址的(SDRAM中),这样在不适用中断的例程中没有问题,而在使用了中断时,因为0x0地址开始的硬件中断向量表是空的,因此发生中断时程序便会跑飞。


结论:

一级中断向量表在0x0位置开始,因此不管代码加载到哪里执行,这个向量表都得链接到0x0地址才行。但是0x0地址开始只有4k字节大小,如果工程太大放不下呢?这就需要合理设置ROM,或者是编排一个scatter文件,时加载时boot部分加载到0x开始的4k范围内,而其他部分再加载到SDRAM内,就可以正确响应中断了。


关键字:Jlink调试  中断 编辑:什么鱼 引用地址:Jlink调试2440进不了中断的看这里

上一篇:S3C2440 cp15协处理器详解
下一篇:S3C2440 外部按键中断解析

推荐阅读最新更新时间:2023-11-30 20:29

C51编程19-中断篇(串行通讯3)
MCS-51单片机提供了4种串口的方式,但是我们只有方式1最常用(可变的10位串行通讯方式),下面就方式1的使用进行讲解。 在开始之前先明确一个概念,中断会产生中断标志位,而CPU检测到中断标志位后,如果没有其他更高的中断在执行,CPU会响应该中断,并进入中断服务函数。串行通讯属于中断方式的一种,它服从这个概念。此外串行通讯并不是需要进入串行通讯的时候,会产生中断标志位;而是发送或者接收成功后,会产生中断标志位。 通过中断向量,可以知道串行通讯只有一个中断号4,也就是说当进入无论是发送或者接收成功,都会触发中断服务函数,因此如果需要区分发送与接收需要在中断服务函数中实现区分,可以通过判断中断标志位(TI == 1或者RI
[单片机]
【ARM裸板】S3C2440 时钟设置与分析
由时钟树分析,时钟源通过选择器接入给MPLL(Main PLL)与UPLL(USB PLL) 经过MPLL得到FCLK提供给CPU FCLK分别通过HDIVN与PDIVN分频得到HCLK与PCLK HCLK接入给AHB总线,再给各种高速设备(Nand Flash、内存控制器、中断控制器…) PCLK接入给APB总线,再给各种低速设别(I2C、PWM、GPIO、UART…) 1.时钟源最大值 2.时钟源 2.1 两种时钟源 1.晶振 2.外部引脚时钟输入 2.2 选择时钟源 通过改变OM 引脚来选择时钟源 JZ2440 OM 接入GND,则主时钟源与USB时钟源都选择外部晶振 3.上电时钟分析 复位等待,
[单片机]
【ARM裸板】S3C<font color='red'>2440</font> 时钟设置与分析
MCS-51中断系统中的复位问题
  MCS-51系列单片机提供了多个 中断 源(8051提供5个,8052提供了6个中断源),每个中断源可编程两种级别的中断,高级中断请求和低级中断请求,因此可实现两级中断服务嵌套。即使同一级别的中断源,在同时请求中断时,CPU响应也有先后顺序的区别。因此MCS-51在实时系统,仪器仪表中使用十分广泛,中断系统的设计则是软件设计中的一个关键点,处理不好往往使软件达不到设计效果。   下面是笔者在应用过程中曾遇到过的一个问题。   我们设计的一台电力测量仪含有键盘和秒时钟,键盘中断采用INT0,秒时钟用T0,INT0设置为高优先级别中断,T0为低级别,秒中断服务占有约750ms。要求CPU对键盘具有很高的响应速度,而
[单片机]
MCS-51<font color='red'>中断</font>系统中的复位问题
STM32学习笔记一一定时器中断
1.STM32 通用定时器简介 STM32 的通用定时器是一个通过可编程预分频器( PSC)驱动的 16 位自动装载计数器( CNT)构成。使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。 STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。 TIMER主要是由三部分组成: 时基单元; 输入捕获;输出比较。 2.ST32 的通用定时器功能 通用定时器有TIMx (TIM2、 TIM3、 TIM4 和 TIM5),具体功能如下: 1)16 位向上、向下、向上/向下自动装载计数器( TIMx_CNT); 2)16 位可编程(可以实时修改)预分频
[单片机]
STM32学习笔记一一定时器<font color='red'>中断</font>
神舟IV学习笔记(七)定时器中断流水灯
通用定时器的功能非常强大,能够测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM),也能够用于定时中断任务。其实系统滴答和实时时钟功能类似于定时器。51单片机也有定时器,可以使用软件的方式实现实时时钟的功能,就是断电后会到初始状态了。 神舟IV开发板采用的是STM32F107VCT,内部含有多达10个定时器,其中TIM1和TIM8是高级控制定时器在APB2总线上,TIM2—TIM7是挂在APB1上的,所以使用起来要注意的是,开启不同的时钟。 我们就用通用定时器TIM2实现LED以1s速度流水灯的功能。首先我们看看时钟,TIM2挂在APB1总线上,而APB1的最大时钟速度为36MHZ。由于系统初始化将APB1的分
[单片机]
神舟IV学习笔记(七)定时器<font color='red'>中断</font>流水灯
51单片机第二讲(定时器中断)
1.中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断产生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A中断的地方继续处理事件A(中断返回),这一过程称为中断。 2.中断的优先级 51单片机里一共有5个中断源,分别是外部中断0,定时器0,外部中断1,定时器1,串口中断,中断优先级从大到小分别是0,1,2,3,4。 3.中断的优点 分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率; 实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强; 可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,
[单片机]
51单片机第二讲(定时器<font color='red'>中断</font>)
2440裸机编程之五 定时器
S3C2440A 具有5 个16 位定时器,每个定时器可以按照中断模式或DMA 模式工作。定时器0,1,2,3 具有PWM 功能。定时器4 是一个内部定时器,不具有对外输出口线。定时器0 还具有死区发生器,通常用于大电流设备。 定时器特性总结如下。 ● 5 个16 位定时器可以工作在中断模式或DMA 模式。 ● 包括2 个8 位预分频器、2 个4 位分割器。 ● 输出波形的占空比可用编程控制(即进行脉宽调制)。 ● 具有自动重载模式或单次触发模式。 ● 具有死区发生器。 与定时器相关的寄存器有:TCFG0、TCFG1、TCON、TCMPBn、TCNTBn、TCNTOn 定时器的频率由PCLK分频而来,即Ftimer = P
[单片机]
<font color='red'>2440</font>裸机编程之五 定时器
整合MCU和DSP优势的DSC推动绿色革命
  数字信号控制器(DSC)是一种集微控制器(MCU)和数字信号处理器(DSP)专长于一身的新型处理器。与MCU一样,DSC具有快速中断响应、提供面向控制的外设(如脉宽调制器和看门狗定时器)、用C编程等特性。DSC还集成了诸如单周期乘累加(MAC)单元、桶式移位器(barrel shifter)和大的累加器等功能。   DSC适合多种应用,但主要领域还是马达控制、电源转换和传感器处理。在这些应用中使用DSC的主要动机是降低功耗。采用DSC来降低功耗的最显著成果来自将变速马达转为恒速马达。变速驱动(需DSC提供的DSP马力来实现)的能耗大约只相当恒速驱动的一半。   节能潜力巨大   由于恒速驱动的应用广泛,因此,
[嵌入式]

推荐帖子

编译vdw_wdm.lib是出现以下问题
我在编译vdw_wdm.lib时出现以下问题,还请多多指教我在生成lib库的时候,kndiswdm.lib和vdw.lib都没有问题但在生成vdw_wdm.lib时--------------------Configuration:VdwLibs-Win32WDMChecked--------------------CompilingwithDDKcompiler...khidaux.cppC:\\ProgramFiles\\Compuware\\DriverSt
小粉果 嵌入式系统
关于PCB地的问题
各位前辈好,我是刚学PCB一直有个问题搞不明白,就是PCB板上所有的地是怎么相互连起来的,如果只是用线的话那地线岂不是得很长,因为需要接地的引脚太多,我看见有的人在(比如一个贴片电容的接地端)放置了一些不知道是通孔焊盘还是过孔(这个也不明白)作为接地,那么这些过孔或者焊盘又是怎么和其他地是相连的,是通过铺铜吗?如果用了这些通孔焊盘或是过孔为什么在制成的板子上面看不见关于PCB地的问题
lym1210 PCB设计
隔离变压器的作用到底是什么?我有点看不懂啊
隔离变压器的作用到底是什么?有点看不懂。。。隔离变压器的作用到底是什么?我有点看不懂啊
secondlife110 模拟电子
实用晶闸管电路大全
很实用的一本书实用晶闸管电路大全
sh-caideqing 模拟电子
【空气净化器评测】-松下F-30C3PD完全拆解+使用感受
响应论坛号召,趁着周日有空把用了两年多的空气净化器拆开看看。今天的主角,两年前公司发的周年庆礼品。当时售价大概699,一款松下低档空气净化器。自带简单的PM2.5传感器,空气污染重时指示灯红色,好时显示蓝色。缺点是不能定量测量PM2.5值。所以有了先前的一篇DIYPM2.5空气质量检测仪的帖子http://bbs.eeworld.com.cn/thread-492618-1-1.html。背面照身份证标识拿下正面的挡板,滤尘网已经有些灰了,大概两个月没有清理了,家里
mcu200689 DIY/开源硬件专区
STM32F429IGT6移植micropython如何挂载NAND FLASH
如题,用的是正点原子的开发板,现在已经可以运行,但是文件系统只能识别到flash翻了原理图,发现有一个512MB的NANDFLASH可以用,如图不知道如何挂载,不知道是不是在mpconfigboard.h文件里,新人发帖,求助各位大大STM32F429IGT6移植micropython如何挂载NANDFLASH
yyyzyyyz MicroPython开源版块
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved