OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4582|回复: 5

STM32F407 RTC 无法进行断点调试问题请教

[复制链接]

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-7-6
在线时间
8 小时
发表于 2018-6-25 11:20:08 | 显示全部楼层 |阅读模式
1金钱
硬件环境:STM32F407ZE(使用金点原子例程RTC工作正常)
软件环境:KEIL5
RTC配置如下:
static void RTC_Config(void)
{
  /* Enable the PWR clock */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

  /* Allow access to RTC */
  PWR_BackupAccessCmd(ENABLE);

  /* Reset RTC Domain */
  //RCC_BackupResetCmd(ENABLE);
  //RCC_BackupResetCmd(DISABLE);

  /* Enable the LSE OSC */
  RCC_LSEConfig(RCC_LSE_ON);

  /* Wait till LSE is ready */  
  while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
  {
  }

  /* Select the RTC Clock Source */
  RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);

  /* Configure the RTC data register and RTC prescaler */
  /* ck_spre(1Hz) = RTCCLK(LSI) /(AsynchPrediv + 1)*(SynchPrediv + 1)*/
  RTC_InitStructure.RTC_AsynchPrediv = 0x7F;
  RTC_InitStructure.RTC_SynchPrediv  = 0xFF;
  RTC_InitStructure.RTC_HourFormat   = RTC_HourFormat_24;
  RTC_Init(&RTC_InitStructure);

  /* Set the time to 00h 00mn 00s AM */
       
  RTC_TimeStruct.RTC_H12     = RTC_H12_AM;
  RTC_TimeStruct.RTC_Hours   = 0x11;
  RTC_TimeStruct.RTC_Minutes = 0x55;
  RTC_TimeStruct.RTC_Seconds = 0;  
  RTC_SetTime(RTC_Format_BCD, &RTC_TimeStruct);
       
        //RTC_GetTime(RTC_Format_BCD, &RTC_TimeStruct);       
}
问题如下:
1.png
388行  *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_ON;断点调试为灰色,单步调试整个switch语句跳过;
查看汇编如下:
2.png
请教该问题原因?




最佳答案

查看完整内容[请看2#楼]

问题解决,编译器设置问题,将优化等级由3级更改为0,如下图: 重新编译调试,查看汇编与C对应,如下: RTC工作正常,但是不理解为何优化等级会出现这样情况,按理说优化不应该出现这样的情况!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-7-6
在线时间
8 小时
 楼主| 发表于 2018-6-25 11:20:09 | 显示全部楼层
问题解决,编译器设置问题,将优化等级由3级更改为0,如下图:
1.png 重新编译调试,查看汇编与C对应,如下:
2.png

RTC工作正常,但是不理解为何优化等级会出现这样情况,按理说优化不应该出现这样的情况!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-26 01:17:40 | 显示全部楼层
没看出有什么问题,你设置断点不能设置么?
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-7-6
在线时间
8 小时
 楼主| 发表于 2018-6-26 09:05:14 | 显示全部楼层
正点原子 发表于 2018-6-26 01:17
没看出有什么问题,你设置断点不能设置么?

设置不了,断点处为灰色,且看汇编也无法与C对应,stlink单步调试,跳过整个switch语句,不知为何!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-27 02:05:21 | 显示全部楼层
remy911 发表于 2018-6-26 16:58
问题解决,编译器设置问题,将优化等级由3级更改为0,如下图:
重新编译调试,查看汇编与C对应,如下:

...

优化以后,调试效果很差!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-7-6
在线时间
8 小时
 楼主| 发表于 2018-6-28 09:06:44 | 显示全部楼层
正点原子 发表于 2018-6-27 02:05
优化以后,调试效果很差!

若是这样不敢轻易尝试优化,有些问题隐蔽了很难找了!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 11:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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