打印

JLink Info: Core is locked-up!

[复制链接]
11044|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huazhongwang|  楼主 | 2012-8-1 13:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天再给我的STM32配置时钟的时候出现了
* JLink Info: Core is locked-up!
* JLink Info: CPU halted
的错误,我百度了一下,按照一位网友的办法试了一下,发现不能下载程序了
该网友的办法如下: 看上去是LZ 的STM32芯片已经被读保护了,可以到segger去下载JLink的工具(比如我以前下载过 Setup_JLinkARM_V408l.zip)来进行解锁:安装后,从菜单 SEGGER->JLink Arm V4.08l->;Processor Specific Utilities->J-Link STM32 Unlock ,运行一下就行了
(网址如下 http://bbs.**/thread-254173-1-1.html)试完之后发现不能下载程序了,错误提示Errow:Flash Downed faild-"Cortex-M3"。换别人的仿真器试过之后发现还是不能下,但是用别人的板子却能下程序,再次强调,MDK的配置没问题,不然用别人的板子也应该下不进去对吧?我怀疑是不是运行的那个程序将芯片锁定了,导致芯片内部锁死程序下载失败。本人万分焦急,希望牛人能为我解惑,谢谢。我J-LINK的版本是V4081
沙发
5509| | 2012-8-1 13:31 | 只看该作者
你看看你的晶振还在起振不?
设置的频率对不?
我之前也遇到过这个问题,后来发现是频率设置错误

使用特权

评论回复
板凳
huazhongwang|  楼主 | 2012-8-1 13:54 | 只看该作者
#include "stm32f10x.h"          



void RCC_Configuration(void)
{
        ErrorStatus HSEStartUpStatus;
  /*将外设RCC寄存器重设为缺省值 */
  RCC_DeInit();

  /*设置外部高速晶振(HSE)*/
  RCC_HSEConfig(RCC_HSE_ON);   //RCC_HSE_ON——HSE晶振打开(ON)

  /*等待HSE起振*/
  HSEStartUpStatus = RCC_WaitForHSEStartUp();

  if(HSEStartUpStatus == SUCCESS)          //SUCCESS:HSE晶振稳定且就绪
  {
    /*设置AHB时钟(HCLK)*/
    RCC_HCLKConfig(RCC_SYSCLK_Div1);  //RCC_SYSCLK_Div1——AHB时钟 = 系统时钟

    /* 设置高速AHB时钟(PCLK2)*/
    RCC_PCLK2Config(RCC_HCLK_Div1);        //RCC_HCLK_Div1——APB2时钟 = HCLK

    /*设置低速AHB时钟(PCLK1)*/   
        RCC_PCLK1Config(RCC_HCLK_Div2);         //RCC_HCLK_Div2——APB1时钟 = HCLK / 2


    /*设置PLL时钟源及倍频系数*/       
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);       
        // PLL的输入时钟 = HSE时钟频率;RCC_PLLMul_9——PLL输入时钟x 9
   
          /*使能PLL */
    RCC_PLLCmd(ENABLE);

    /*检查指定的RCC标志位(PLL准备好标志)设置与否*/   
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)          
       {
       }

    /*设置系统时钟(SYSCLK) */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
       
    while(RCC_GetSYSCLKSource() != 0x08)          //0x08:PLL作为系统时钟
       {
       }
     }


}




// void Delay(u32);  
  int main()          
  {                 GPIO_InitTypeDef GPIO_InitStructure;
        // SystemInit();
                  RCC_Configuration();
           RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);

       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2|GPIO_Pin_5;       
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
       GPIO_Init(GPIOC, &GPIO_InitStructure);

          // GPIO_SetBits(GPIOA        , GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2);         // turn off all led
  
        while(1)
        {
                      GPIO_SetBits(GPIOC,GPIO_Pin_0);
                   //Delay(1);
                   GPIO_ResetBits(GPIOC,GPIO_Pin_0);
                   //Delay(1);
                  // GPIO_SetBits(GPIOA,GPIO_Pin_1);
                   //Delay(1);
                  // GPIO_ResetBits(GPIOA,GPIO_Pin_1);
                   //Delay(1);
                   // GPIO_SetBits(GPIOA,GPIO_Pin_2);
                   //Delay(1);
                   //GPIO_ResetBits(GPIOA,GPIO_Pin_2);
                   //Delay(1);         
        }

  }
/*          void Delay(u32 temp)
        {
           u32 a,b;         
           for(b=0;b<temp;b++)
       for(a=0;a<0x000fffef;a++);
}           */

                   源码如下,我8M晶振用的电容是10P的钽电容,PCB上用的是20p的,但是硬件开发手册上说5~25p都可以啊

使用特权

评论回复
地板
5509| | 2012-8-1 14:08 | 只看该作者
也不一定就是这个问题,只是我上次遇到的是这个,我8M晶振设置超过了72M
我只是说说我遇到过的情况,既然不是这个问题,就看看其他人怎么帮你了

使用特权

评论回复
5
huazhongwang|  楼主 | 2012-8-1 14:43 | 只看该作者
多谢楼上的回复。上面这个程序可以下载进去,但是仿真时一进入时钟配置函数就会出现
* JLink Info: Core is locked-up!
* JLink Info: CPU halted
错误,用示波器测晶振,发现晶振波形混乱,我就想是不是系统时钟出问题也会导致内核被锁啊?可是我感觉我这始终配置也没出问题?

使用特权

评论回复
6
bbqqbbqqbbq| | 2012-8-1 16:24 | 只看该作者
J-Link的控制台程序有一个un-lock的命令,你慢慢找找。

以前我的也被锁过

使用特权

评论回复
7
huazhongwang|  楼主 | 2012-8-1 18:47 | 只看该作者
问题解决,关闭Keil,再试SEGGER->JLink Arm V4.08l->rocessor Specific Utilities->J-Link STM32 Unlock ,多试几次就行,可能还是跟复位有关系。

使用特权

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

本版积分规则

个人签名:搞电子的,不解释

1

主题

118

帖子

0

粉丝