[MM32软件] 求助:mm32link调试中死机问题

[复制链接]
541|12
 楼主 | 2019-6-1 11:17 | 显示全部楼层 |阅读模式
用 keil uv5.18a版本,调试中执行RCC->CFGR设置PLLSRC后就死机,强行退出keil后就一直连不上核心板;mm32link之前在插上电脑后一般会间隔响两次声音,现在只响一次;重装mm32link的驱动也不行

使用特权

评论回复
| 2019-6-1 14:55 | 显示全部楼层
请问一下Flash的等待是怎样设置的?时钟是怎样设置的?
以下是设置参考(适用于早期代码):
                /* Enable Prefetch Buffer */
                FLASH->ACR |= FLASH_ACR_PRFTBE;
               
                /* Flash 0 wait state ,bit0~2*/
                FLASH->ACR &= ~0x07;
                FLASH->ACR |=  0x03;
               
                /* HCLK = SYSCLK */
                RCC->CFGR |= (u32)RCC_CFGR_HPRE_DIV2;                                                                        // 48MHz                HCLK = SystemCoreClock / 2
               
                /* PCLK2 = HCLK */
                RCC->CFGR |= (u32)RCC_CFGR_PPRE2_DIV1;                                                                        // 48MHz                APB2 CLK = HCLK / 1
               
                /* PCLK1 = HCLK */
                RCC->CFGR |= (u32)RCC_CFGR_PPRE1_DIV2;                                                                        // 24MHz                APB1 CLK = HCLK / 2
               
                /* USBCLK = HCLK / 2 */
                RCC->CFGR |= (u32)RCC_CFGR_USBPRE_0;                                                                        // 48MHz                SystemCoreClock / 2
               
                /*  PLL configuration: */
               
                RCC->CFGR &= (u32)~RCC_CFGR_PLLXTPRE;                                                                        // PLL (HSE divider for PLL entry)
                RCC->CFGR |= (u32 ) RCC_CFGR_PLLSRC ;                                                                        // PLL Source: HSE
               
                /*  PLL Control Register  */
                RCC->CR &= (u32)0x000FFFFF;                                                                                          // PLL DN = 0, PLLDM = 0, PLL ON = 0
                RCC->CR |=  RCC_CR_PLLDN_3  | RCC_CR_PLLDN_1  | RCC_CR_PLLDN_0;                        // 0x2C03xxxx  // pll = 12 / 1 RCC->CR |= 0x14000000;                // pll = 6/1
                                                                                                                                                                // PLLDN = 11 + 1 = 12
                                                                                                                                                                // PLLDM = 00 + 1 = 1
                                                                                                                                                                // (8MHx * 12) / 1  = 96MHz

使用特权

评论回复
| 2019-6-1 15:10 | 显示全部楼层
mm32 fds代码:
// Step 1:  Setting System Clock     ------------------>>>>>
        /* ====  System Clock & SysTick & AppTaskTick Setting  ==== */
        /* When the parameter is not NULL, AppTaskTick function used */
        MCUID = SetSystemClock(emSYSTICK_On, (u32*)&AppTaskTick);
        /* When the parameter is not NULL, AppTaskTick function not be used */
//        MCUID = SetSystemClock(emSYSTICK_On, NULL);

使用特权

评论回复
| 2019-6-1 15:16 | 显示全部楼层
其实,如您所说:在程序运行到执行RCC->CFGR设置PLLSRC“执行RCC->CFGR设置PLLSRC”前仿真都是正常的,那么最有可能的是:
1. PLL倍频是不是太高了
2. Flash插入等待不够
请参考FDS的设置比较好。谢谢!

使用特权

评论回复
 楼主 | 2019-6-1 15:30 | 显示全部楼层
zhu^zhu 发表于 2019-6-1 15:16
其实,如您所说:在程序运行到执行RCC->CFGR设置PLLSRC“执行RCC->CFGR设置PLLSRC”前仿真都是正常的,那么 ...

多谢版主回复,现在主要是我的MM32LINK用不了,也连不上核心板;请问是link问题还是核心板问题?怎么才能恢复使用?我之前按操作恢复出产设置但由于连不上核心板也无法恢复。

使用特权

评论回复
| 2019-6-1 15:59 | 显示全部楼层
能把连接时的提示发出来吗?我需要了解的是调试口的信息:能不能发现芯片。

使用特权

评论回复
 楼主 | 2019-6-1 18:42 | 显示全部楼层

option

option

点击 erase

点击 erase
1.bmp

使用特权

评论回复
 楼主 | 2019-6-1 18:44 | 显示全部楼层
link能连上,但找不到核心板

使用特权

评论回复
 楼主 | 2019-6-1 18:46 | 显示全部楼层
我更新了V1.39的升级包,但依然连不上核心板

使用特权

评论回复
| 2019-6-3 11:51 | 显示全部楼层
这种问题我也遇到过,RCC配置不对导致了程序上电运行就跑飞了,所以连不上SWD;正确的做法是按住复位键,在KEIL界面上点Flash\Erase后马上松开复位按键就可以擦除Flash数据;
2019-06-03_114836.png

使用特权

评论回复
 楼主 | 2019-6-3 12:13 | 显示全部楼层
坏孩纸 发表于 2019-6-3 11:51
这种问题我也遇到过,RCC配置不对导致了程序上电运行就跑飞了,所以连不上SWD;正确的做法是按住复位键,在 ...

谢谢兄弟指点! 我按你的方法试了但还是擦除不了,也连不上.我怀疑LINK有问题了,正常时插上电脑会间隔发两次声音,现在只能响一声,重装驱动也一样

使用特权

评论回复
| 2019-6-3 13:29 | 显示全部楼层
jumpio 发表于 2019-6-3 12:13
谢谢兄弟指点! 我按你的方法试了但还是擦除不了,也连不上.我怀疑LINK有问题了,正常时插上电脑会间隔发两 ...

如果该芯片有Boot0  Pin引出,把Boot0  Pin拉高,再上电。再连接,如果可以连接,再按上述方法 Erase看看能否恢复。

使用特权

评论回复
 楼主 | 2019-6-3 14:55 | 显示全部楼层
问题已解决。楼上" 坏孩纸"方法是对的,不过在插上link之前就要按住RESET才行,然后运行erase再松开按键就可以了.谢谢各位指点。特别是" 坏孩纸"!

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表