Jlink调试2440进不了中断

2024-05-09 21:38

本文主要是介绍Jlink调试2440进不了中断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 很多人学习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调试2440进不了中断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974577

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

起点中文网防止网页调试的代码展示

起点中文网对爬虫非常敏感。如图,想在页面启用调试后会显示“已在调试程序中暂停”。 选择停用断点并继续运行后会造成cpu占用率升高电脑卡顿。 经简单分析网站使用了js代码用于防止调试并在强制继续运行后造成电脑卡顿,代码如下: function A(A, B) {if (null != B && "undefined" != typeof Symbol && B[Symbol.hasInstan

php 7之PhpStorm + Nginx + Xdebug运行调试

操作环境: windows PHP 7.1.10 PhpStorm-2017.2.4 Xdebug 2.5.4 Xdebug helper 1.6.1 nginx-1.12.2 注意查看端口占用情况 netstat -ano //查看所以端口netstat -aon|findstr "80" //查看指定端口占用情况 比如80端口查询情况 TCP 0.0.0.0:8

FreeRTOS学习笔记(四)Freertos的中断管理及临界保护

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Cortex-M 中断管理1.1 中断优先级分组1.2 相关寄存器1.3 相关宏定义1.4 FreeRTOS 开关中断 二、临界段及其保护2.1 taskENTER_CRITICAL( ) 和 taskEXIT_CRITICAL( )2.2 taskENTER_CRITICAL_FROM_ISR( )

【2025】基于Python的空气质量综合分析系统的设计与实现(源码+文档+调试+答疑)

博主介绍:     ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围:     我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT