打印

CPU halted问题

[复制链接]
4551|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiepengchenghn|  楼主 | 2010-5-26 14:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xiepengchenghn 于 2010-5-26 18:18 编辑

本人新入手stm32f107,之前也未有过arm开发经验。遇到几个问题,实在找不到原因,请坛里的兄弟指点一二。
首先说一下我的开发工具,金牛开发板+mdk4.11+Jlink。我使用ST固件库3.2.0,写了一个GPIO的跑马灯程序,编译通过,但是用Jlink调试的时候,出现了cpu halted以及MMU的错误,换成其他程序依然可以正常运行,调试和下载。现将程序代码贴在下面

#include "stm32f10x.h"
//#include "stm32f10x_conf.h"

GPIO_InitTypeDef GPIO_InitStructure;
void GPIO_Delay()
{
__IO uint32_t i;
for(i=0xAFFFF;i>0;i--)
{
// for(j=10;j>0;j--);
}
}
int main(void)
{   


SystemInit();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
// RCC_DeInit();

GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&GPIO_InitStructure);

// SysTick_Config(SystemFrequency / 1000);

while(1)
{
GPIO_SetBits(GPIOD,GPIO_Pin_2);
GPIO_Delay();
// GPIO_ResetBits(GPIOD,GPIO_Pin_2);
GPIO_SetBits(GPIOD,GPIO_Pin_3 | GPIO_Pin_4);
GPIO_ResetBits(GPIOD,GPIO_Pin_3 | GPIO_Pin_4);
GPIO_Delay();

// GPIO_SetBits(GPIOD,GPIO_Pin_4);
// GPIO_Delay();

GPIO_SetBits(GPIOD,GPIO_Pin_7);
GPIO_ResetBits(GPIOD,GPIO_Pin_4 | GPIO_Pin_3);
GPIO_Delay();
GPIO_ResetBits(GPIOD,GPIO_Pin_7);
GPIO_Delay();
}
}

请知情者告知原因,指点下我这个门外汉,谢谢。
另外金牛自带的GPIO例程,单步运行还OK,但是一全速运行就出现了硬件fault。
请问下该如何查找出现硬件fault的原因呢?按照Cortex M3权威指南中所说,是否用汇编语言来进行调试呢?
沙发
ST_ARM| | 2010-5-27 10:08 | 只看该作者
while(1)
{
GPIO_SetBits(GPIOD,GPIO_Pin_2);  ???????????? --- PD.2好像没有配置吧!
GPIO_Delay();
// GPIO_ResetBits(GPIOD,GPIO_Pin_2);

使用特权

评论回复
板凳
xiepengchenghn|  楼主 | 2010-5-30 11:36 | 只看该作者
2# ST_ARM
找到原因了,不是你说的那个问题,是前面要加NVIC_SetTableVector.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

267

帖子

1

粉丝