OpenEdv-开源电子网

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

移植F103ZGt6和ucos到C8t6出现bug,仿真run要点5次才能跑起来,只下程序上电后不运行

[复制链接]

3

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-5-8
在线时间
27 小时
发表于 2019-5-27 15:15:47 | 显示全部楼层 |阅读模式
10金钱
移植完成后,下载程序完成,板子上电不能自己运行,仿真时要点5次RUN,才能进行仿真,看寄存器也是点一次变一次,求助是什么原因?
截图三次按run之后的情形,然后有一个图还很怪 寄存器里出现FFFFE这些东西,不正常吧

3.png
2.png
1.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2019-5-27 20:41:20 | 显示全部楼层
一分耕耘一分收获。
回复

使用道具 举报

3

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-5-8
在线时间
27 小时
 楼主| 发表于 2019-5-27 20:46:10 | 显示全部楼层

没有用printf,这是仿真第一步,进来之后要点run开始运行,正常情况下没有断点,点一次run,程序就跑起来了。我这边没有设置断点,点run要点5次才能跑起来,而且每次点run之后寄存器里的值都会变,感觉像系统没找到启动的地方,5次之后才能正常跑起来。
回复

使用道具 举报

4

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-5-5
在线时间
13 小时
发表于 2019-5-27 21:19:52 | 显示全部楼层
程序呢,会不会是程序里停了,你的PC后两次指向的都是同一条指令,有问题啊
回复

使用道具 举报

3

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-5-8
在线时间
27 小时
 楼主| 发表于 2019-5-28 09:40:52 | 显示全部楼层
MXA 发表于 2019-5-27 21:19
程序呢,会不会是程序里停了,你的PC后两次指向的都是同一条指令,有问题啊

就是这样,开始仿真是从这里走的,感觉要点5次才能去正确的启动的地方
回复

使用道具 举报

3

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-5-8
在线时间
27 小时
 楼主| 发表于 2019-5-28 09:41:43 | 显示全部楼层
hope0116 发表于 2019-5-28 09:40
就是这样,开始仿真是从这里走的,感觉要点5次才能去正确的启动的地方

[img][/img]
4.png
回复

使用道具 举报

4

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-5-5
在线时间
13 小时
发表于 2019-5-28 10:03:51 | 显示全部楼层

你把这两个函数发出来看看
回复

使用道具 举报

3

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-5-8
在线时间
27 小时
 楼主| 发表于 2019-5-28 10:27:45 | 显示全部楼层
MXA 发表于 2019-5-28 10:03
你把这两个函数发出来看看

void SystemInit (void)
{
  /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  /* Set HSION bit */
  RCC->CR |= (uint32_t)0x00000001;

  /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
#ifndef STM32F10X_CL
  RCC->CFGR &= (uint32_t)0xF8FF0000;
#else
  RCC->CFGR &= (uint32_t)0xF0FF0000;
#endif /* STM32F10X_CL */   
  
  /* Reset HSEON, CSSON and PLLON bits */
  RCC->CR &= (uint32_t)0xFEF6FFFF;

  /* Reset HSEBYP bit */
  RCC->CR &= (uint32_t)0xFFFBFFFF;

  /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
  RCC->CFGR &= (uint32_t)0xFF80FFFF;

#ifdef STM32F10X_CL
  /* Reset PLL2ON and PLL3ON bits */
  RCC->CR &= (uint32_t)0xEBFFFFFF;

  /* Disable all interrupts and clear pending bits  */
  RCC->CIR = 0x00FF0000;

  /* Reset CFGR2 register */
  RCC->CFGR2 = 0x00000000;
#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
  /* Disable all interrupts and clear pending bits  */
  RCC->CIR = 0x009F0000;

  /* Reset CFGR2 register */
  RCC->CFGR2 = 0x00000000;      
#else
  /* Disable all interrupts and clear pending bits  */
  RCC->CIR = 0x009F0000;
#endif /* STM32F10X_CL */
   
#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
  #ifdef DATA_IN_ExtSRAM
    SystemInit_ExtMemCtl();
  #endif /* DATA_IN_ExtSRAM */
#endif

  /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */
  /* Configure the Flash Latency cycles and enable prefetch buffer */
  SetSysClock();

#ifdef VECT_TAB_SRAM
  SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#else
  SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#endif
}
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 21:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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