硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3969|回复: 4
收起左侧

[有问必答] IAR调试错误

[复制链接]

34

主题

83

回帖

185

积分

初级会员

积分
185
发表于 2016-9-4 18:19:36 | 显示全部楼层 |阅读模式
       程序刚移植到IAR上也解决了很多错误现在终于可以进入调试仿真了,但是当进入调试仿真后程序无法运行到main函数,停止运行后发现程序卡死在void HardFault_Handler()里面,无论是复位还是单步运行程序都无法到main里面(main里面有断点),请问一般是什么问题导致的?是不是IAR还需要设置哪里?基本的设置我都看过没有问题的。
void HardFault_Handler()
{
  while(1);
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2016-9-5 09:35:41 | 显示全部楼层
你的IAR用的,的确有点坎坷。
莫非你的下载器或者IAR安装的有问题,只要你曾经测试MDK工程没有问题,使用IAR基本也不会有问题的。
回复

使用道具 举报

34

主题

83

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2016-9-5 10:09:05 | 显示全部楼层

回 eric2013 的帖子

eric2013:你的IAR用的,的确有点坎坷。
莫非你的下载器或者IAR安装的有问题,只要你曾经测试MDK工程没有问题,使用IAR基本也不会有问题的。
(2016-09-05 09:35)
调试问题也解决了,原因竟然是IAR(我用的是7.0)不需要启动文件很奇怪,我把HD.s启动文件从工程中删去在编译竟然编译OK,而且可以正常调试单步调试都没问题,因为只是建立了一个简单的工程所以程序能不能在板子上跑还没测试,不过就现在来看就有一个大问题没了启动文件中断还能使用吗?
回复

使用道具 举报

34

主题

83

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2016-9-5 10:31:30 | 显示全部楼层

回 eric2013 的帖子

eric2013:你的IAR用的,的确有点坎坷。
莫非你的下载器或者IAR安装的有问题,只要你曾经测试MDK工程没有问题,使用IAR基本也不会有问题的。
(2016-09-05 09:35)
   程序可以运行,因为没有了启动文件中断就没有了向量表!测试了外部中断,按钮按下去就进入硬件错误,不按按键程序能正常运行要怎么办?自己能写中断向量部分吗?我不懂汇编。
回复

使用道具 举报

34

主题

83

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2016-9-5 11:42:56 | 显示全部楼层

回 eric2013 的帖子

eric2013:你的IAR用的,的确有点坎坷。
莫非你的下载器或者IAR安装的有问题,只要你曾经测试MDK工程没有问题,使用IAR基本也不会有问题的。
(2016-09-05 09:35)
        THUMB

       ; PUBWEAK Reset_Handler
       ; SECTION .text:CODE:REORDER(2)
Reset_Handler
      ;  LDR     R0, =SystemInit
      ;  BLX     R0
        LDR     R0, =__iar_program_start
        BX      R0

        我还是添加了.s启动文件,但是添加之后调试无法运行到main函数直接进入硬件错误,那么我直接将复位向量中的
; PUBWEAK Reset_Handler
; SECTION .text:CODE:REORDER(2)  
两条语句注释了,然后注释了所有中断向量中的 ; SECTION .text:CODE:REORDER(1)这条语句,现在程序编译正常/运行正常/中断也正常了,就是不知道这样改过后会不会有什么隐患?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 01:18 , Processed in 0.158573 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表