STM32 ARM调试问题总结
文章转载自:http://xfjane.spaces.eepw.com.cn/articles/article/item/77908
基于ADS的ARM调试有关问题总结
1.
在添加文件的过程中你可能已经发现了CodeWarrior IDE 为用户建立了三个
Target,分别是“DebugRel”、“Realse”、“Debug”,这三个Target 分别表示三种
调试方式。
DebugRel 表示在生成目标的时候会为每一个源文件生成调试信息;Debug 表示为每一个源文件生成最完全的调试信息;Release 表示不生成任何调试信息。一般默认选择“DebugRel”。同时从图6 可以发现每次添加文件的时候都会询问添加到哪个“Target”,一般默认三个都添加,点击确定。
2.
我在编译程序的时候出现了这样的错误,请问是什么问题啊
Error : (Fatal)
L6002U: Could not open file D:\...\tmmgrsp\周力功\ARM嵌入式系统实验教程\FlashDown.mcp
re:
别用中文名路径,换成英文的;
点击Project下的Remove Object Code..,然后在重新编译下就OK了。
3.
刚买了一块2131开发板,不管怎样擦除都不能在AXD下仿真
错误显示:Error, FLASH is protected by user configation!
re:
1:请使用EasyJTAG V1.06的版本;
2:在JTAG配置中选中“当需要的时候擦除”。
4.
在AXD中提示error 0x40001e00! FLASH Sector 0 write failed!
re:
1. 使用EasyJTAG写外部FLASH要注意,需使用16位总线方式,需要使用SST39VF106芯片.
2. 如果是自己做的板子,需要先在内部RAM调试通过,保证EasyJTAG与板子已经连通.
3. 如果有外部RAM,要先通过(测试)外部RAM来测试总线.
5.
在AXD中提示RDI Warning 00254:Unimplemented RDI message.
re:
是JTAG的问题.可以先使用ISP操作试试就知道了,如果能 ISP,说明 LPC2104 没有损坏,还能正常运行程序
JTAG的nRST、TDI、TMS、RTCK等引脚注意要接上下拉电阻,以确保JTAG在上电时有一个稳定的初始状态,具体参看ARM公司给出的JTAG参考电路。
对于有的PC 机,EasyJTAG 不能正确连接开发板,总是弹出错误对话框,这时可以检查并口连接是否可靠,检查并口上是否接有软件狗,或者重新给开发板上下电。另外,在PC 机的CMOS 设置里将并口模式设为SPP 模式,设置并口的资源为378H~37FH。
6.
错误显示:No disassembly could be read at the requested address.
re:
1.有可能被加密了,请使用ISP软件(FlashMagic),看看能否对Flash进行擦除。
2.也可能芯片被烧坏。
7.
错误显示:RDI Severe Error 00602: Can't halt target and make it enter DEBUG state.
re:
当在非GPIO模式下操作IOnDIR时,会出现JTAG调试中无法暂停的情况,并且AXD会弹出以下信息的窗口并被迫关闭:"RDI Severe Error 00602:Can't halt target and make it enter DEBUG state."简单翻译一下就是:“RDI严重错误00602: 无法暂停目标并使它进入调试状态。”当出现这种情况后,就要复位2131(或者重新上电),然后重新打开H-JTAG软件和AXD等。
8.
SDT JTAG和Wiggler JTAG有什么区别?
re:
SDT JTAG和WIGGLER JTAG的区别只是在与并口的接法不一样。功能是一样的。你在OPENOCD里,应该能找到JTAG信号与并口的连接的定义,做相应的修改应该就可以了。
9.
错误显示:RDI Severe Error 00616: Failed to access instruction register.
re:
1.可能是并口驱动能力不够强, 影响JTAG信号质量, 造成不稳定.
2.可能是你flash中的程序有问题,先往flash中烧一个能正常跑的程序,再试试看。
10.
关于JTAG接口:
P1.20/TRACESYNC应该加上拉电阻以禁止TRACE功能。PINSEL2一定要在程序开始时初始化一下。
LPC2210 JTAG
注
1,2/VDD3.3V
P1.31/nTRST, input 3/nTRST, output EasyJTAG中有上拉电阻。
P1.28/TDI, input 5/TDI, output EasyJTAG中有上拉电阻。
P1.30/TMS, input 7/TMS,output EasyJTAG中有上拉电阻。
P1.29/TCK, input/output 9/TCK, input/output EasyJTAG中有上拉电阻。
P1.26/RTCK, input 11/RTCK, output P1.26外接下拉电阻。
P1.26有内部上拉电阻,故测量时该引脚会呈现高电平。但是在复位时,它的上拉电阻不起作用,只有外部的下拉电阻起作用,P1.26 = 0V, 所以上电后PINSEL2的D3~D0会是0x04(B0100),JTAG有效。
若将P1.26接到3.3V再复位,此时PINSEL2的D3~D0将会是0x00,JTAG无效。
P1.27/TDO, output 13/TDO, input EasyJTAG中有上拉电阻。
nRESET, input 15/nRST, output EasyJTAG中有上拉电阻。
4,6,8,10,12,14,16,18,20/GND
17,19/NC
11.
错误显示:DBE Warning 00041: An unspecified Debug Toolbox call faied.
re:
1. 先使用ISP软件对板上的LPC2000系列芯片进行全片擦除。因为如果芯片加密了,则无法进行JTAG调试。
2. 检查并口线、JTAG仿真头的连接是否可靠。
3. 检查并口模式设置,并口上不要接其它硬件(如软件狗)。
12.
错误显示:RDI Warning 00148: Can't set point.
re:
原因是仿真器在ROM中设置的断点数是有限的,且单步运行时内部还要占用断点。
解决方案:1.清除所有断点。
2.使用“Option->Config Processor”打开“Processor Properties-ARM7TDMI”窗口,点击Clear ALL即可。
13.
错误显示:DBE Warning 00056: The statement into which was stepped is singular (i.e. it has no exit).
re:
表明CPU在死循环,检查你的RAM,总线配置等。
14.
出现取数据中止
re:
进入取数据中止和取指中止的根本原因在于,对非法地址进行访问(未分配给您使用的地址空间您不能访问,保留作它用的地址空间您不能访问)。常见的触发取数中止和取指中止的原因之一是利用指针操作缓存时越界了。
如果用了周的模板,请修改配置文件里的参数,周的模板默认都是该种芯片最小型号的,主要是修改RAM起始地址和RAM最高端的地址。
请查数据手册!
mem_a.scf __RelInFlash
mem_b.scf __DebugInRam
mem_c.scf __DebugInFlash
15.
出现Warring : L6329W: .\src\mem_b.scf Pattern *(RW) only matches removed unused sections.
re
连接警告的原因是你定义的全局变量并同时进行了初始化,但是这个全局变量在你的程序中并没有被使用!
并不是没有RW属性的段,一般程序都有堆“heap”,全局变量都在heap中,heap有一个明显的属性都是可读可写的。
16.
出现Error : C2933E : type disagreement for 'rcvmcu'.
re
将A函数的实现,剪切到B函数实现的前面,就可以了.
17.
SPI时序的设定主要由外接从机决定,应用时您可以按照从机要求的输入时序图,再对照书上的四种模式下的输出时序图来选择当前模式即可。如果从机是上升沿输入,下降沿输出,此时选CPHA = 1, CPOL = 1,如果从机是上升沿输出,下降沿输入的话则选CPHA = 0, CPOL = 1.
当然SPI主机时序的选择还与从机是否在片选时,是否有数据输出有关。以上两个例子,均假设片选时没有数据输出。
1、SPI是全双工的通讯方式,即发送数据的同时会接收到一帧数据;
2、至于返回的数据的作用:当需要从机给主机发送数据时,该返回值就是从机需要发送的数据;
3、SPI读取从机数据时,主机发送数据是因为SPI通讯时时钟由主机来提供,主机数据给从机提供时钟信号。
SPI通信本来就要由主机来产生时钟,所以读取数据的时候也要由1138来产生时钟,要产生时钟就要发送数据,所以一般读取数据的时候1138就发送0xFF,处理器会自动把Rx线上的数据存到FIFO,而存储器知道是读取数据,不会理会1138发送的数据。 不过之前1138发送命令的时候虽然存储器没有往Rx发送数据,但是1138还是会认为上面是有效数据,会把Rx上的高电平当成0xFF放到接收FIFO,所以在接收数据前最好先把FIFO清空。
18.
出现Error : (Fatal)L6002U : Could not open file E:\TEST for ARM\recorder_arm\recorder_arm_Data\DebuInRAM\ObjectCode\Startup.o.
re:
点击Project下的Remove Object Code..,然后在重新编译下就OK了
STM32 ARM调试问题总结的更多相关文章
- STM32硬件调试详解
STM32的基本系统主要涉及下面几个部分: 一.电源 1).无论是否使用模拟部分和AD部分,MCU外围出去VCC和GND,VDDA.VSSA.Vref(如果封装有该引脚)都必需要连接,不可悬空: 2) ...
- 安装ARM调试器
一.概述 1.调试ARM应用程序的软硬件组成 硬件JTAG/SWD仿真器 Eclipse调试插件 GDB调试客户端 GDB服务器端 JTAG/SWD需要的硬件驱动 2.GNU ARM Eclipse推 ...
- stm32 smartcard调试--不用st8024
关于stm32 smartcard功能调试,官方提供的例程是配合8024芯片进行控制的.程序可从地址:http://www.pudn.com/downloads420/sourcecode/embed ...
- stm32 HardFault_Handler调试及问题查找方法
STM32出现HardFault_Handler故障的原因主要有两个方面: 1.内存溢出或者访问越界.这个需要自己写程序的时候规范代码,遇到了需要慢慢排查. 2.堆栈溢出.增加堆栈的大小. 出现问题时 ...
- ARM调试器只能偶尔连接成功问题
这里分析一个ARM板子JTAG调试器经常连接失败,只能偶尔连上目标板问题. 背景 这是原先另一个部门的板子,在部门合并之后,最近要对这个板子的代码体系进行转移,在过问开发进度时,工程师反映这个板子调试 ...
- STM32下载调试驱动问题
No Cortex-m SW device found解决办法 16.07.14 今天工作,遇到一个问题:用jlink采用SW下载模式时,一直显示No Cortex-m SW device found ...
- stm32 ARM中的RO、RW和ZI DATA
一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将 ...
- STM32 低功耗 调试心得
MCU在进入STOP模式的时候,GPIO的状态都是保持在进入低功耗模式之前的状态,在最小系统中,MCU的GPIO都是悬空的,所以设置为何种状态都不会影响到功耗.但当连接到外设后,外设的电平状态和所连接 ...
- stm32 HardFault_Handler调试及问题查找方法——飞思卡尔
看到有朋友遇到Hard Fault 异常错误,特地找到一篇飞思卡尔工程师写的一片经验帖,定位Hard Fault 异常. Kinetis MCU 采用 Cortex-M4 的内核,该内核的 Fault ...
随机推荐
- Linux命令集锦:crontab命令
Linux crontab是用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作. 而 ...
- React Native使用react-navigation时,设置navigationOptions中Static中使用this注意点
使用react-navigation时,单页面设置navigationOptions中,进行Static中调用方法,不能像以下设置 onPress = {()=>this.clickFinish ...
- python-Web-django-后台
url: # member 处理 re_path('member/list/', member.list, name='member/list/'), re_path('member/list_par ...
- javaweb期末项目-项目结构
相关链接: 项目结构:https://www.cnblogs.com/formyfish/p/10828672.html 需求分析:https://www.cnblogs.com/formyfish/ ...
- 教你如何在Ubuntu上安装最新的Python版本
参考链接:https://cloud.tencent.com/developer/news/343104
- rtsp学习参考资料1
转载于:http://itindex.net/detail/51966-%E6%B5%B7%E5%BA%B7-rtsp-%E5%AE%A2%E6%88%B7%E7%AB%AF 海康相机RTSP连接代码 ...
- 解决Another app is currently holding the yum lock; waiting for it to exit...问题
在下载安装nginx时出现 Another app is currently holding the yum lock; waiting for it to exit...问题 yum被锁定了 可以使 ...
- 剑指offer4:重建二叉树(后序遍历)
1. 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4 ...
- Smarty内置函数之capture
capture的作用是: 捕获模板输出的数据并将其存储到一个变量,而不是把它们输出到页面,任何在 {capture name="foo"}和{/capture}之间的数据将被存储到 ...
- IDEA 中git的分支管理和使用说明
1. 为什么要建立分支 git默认的主分支名字为master,一般团队开发时,都不会在master主分支上修改代码,而是建立新分支,测试完毕后,在将分支的代码合并到master主分支上. 2.操作如下 ...