社区导航

 

搜索
查看: 1527|回复: 6

[求助] Access to register of unclocked peripheral at 0x40010C00 cause BUS_FAULT 什么...

[复制链接]

43

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-4-7 17:49 | 显示全部楼层 |阅读模式
同一个原理图,分别装载了  stm32f103test.hex  、10.hex  文件,装载stm32f103test.hex 文件能正常仿真,装载10.hex文件,报错如下:Access to register of unclocked peripheral at 0x40010C00 cause BUS_FAULT,是什么原因?应当怎样解决?仿真信息提示如下:
PROSPICE 8.07.02 (Build 25463) (C) Labcenter Electronics 1993-2018.
Loading HEX file '..\12-LED\Project\Objects\10.hex'. [U1_CM3CORE]
Read total of 1152 bytes from file '..\12-LED\Project\Objects\10.hex'. [U1_CM3CORE]
Access to register of unclocked peripheral at 0x40010C00 cause BUS_FAULT [U1_CM3CORE]
PC13.png

PB0.png


此帖出自stm32/stm8论坛


回复

使用道具 举报

5609

TA的帖子

207

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-4-7 21:49 | 显示全部楼层
提示你没使能相应时钟就去操作对应的外设了

点评

感谢你,原因找到了。  详情 回复 发表于 2019-4-7 21:58
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,虽然在群里买不到板子,但是可以学会开车;虽然学不到技术,但是可以学会开车;商家勿入!加群暗号:喵


回复

使用道具 举报

43

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-4-7 21:57 | 显示全部楼层
原因找到了:
错误程序:
#include "bsp_led.h"

void LED_GPIO_Config(void)                                                                                        //LED_用到的GPIO0配置函数,
{
GPIO_InitTypeDef                 GPIO_InitStruct;                                                        //按照GPIO_InitTypeDef这种结构体(表格)的格式,定义了一个新的结构体,名字叫GPIO_InitStruct
       
GPIO_InitStruct.GPIO_Pin     =     LED_G_GPIO_PIN;                                        //把具体的参数输入到表格中,
GPIO_InitStruct.GPIO_Mode    =     GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed   =     GPIO_Speed_50MHz;
GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);                                                //利用初始化函数,把初始化GPIO需要用到的参数分别装载到对应的寄存器中,
RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);                                                //APB2时钟使能函数,打开GPIOB的时钟

}


正确程序:
#include "bsp_led.h"

void LED_GPIO_Config(void)                                                                                        //LED_用到的GPIO0配置函数,
{
GPIO_InitTypeDef                 GPIO_InitStruct;                                                        //按照GPIO_InitTypeDef这种结构体(表格)的格式,定义了一个新的结构体,名字叫GPIO_InitStruct
       
GPIO_InitStruct.GPIO_Pin     =     LED_G_GPIO_PIN;                                        //把具体的参数输入到表格中,
GPIO_InitStruct.GPIO_Mode    =     GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed   =     GPIO_Speed_50MHz;
       
RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);                                                //APB2时钟使能函数,打开GPIOB的时钟

GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);                                                //利用初始化函数,把初始化GPIO需要用到的参数分别装载到对应的寄存器中,
}

原因:应当先开时钟,再初始化 SPIO。


回复

使用道具 举报

43

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-4-7 21:58 | 显示全部楼层
lcofjp 发表于 2019-4-7 21:49
提示你没使能相应时钟就去操作对应的外设了

感谢你,原因找到了。


回复

使用道具 举报

43

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-4-7 21:59 | 显示全部楼层
lcofjp 发表于 2019-4-7 21:49
提示你没使能相应时钟就去操作对应的外设了

另外请教:
ISIS Release 8.08.01 (Build 27031) (C) Labcenter Electronics 1990- 2018.
Compiling design 'E:\STM32 lianxi\12-LED\stm32f103test\stm32f103test.pdsprj'.
Netlist compilation completed OK.
Netlist linking completed OK.
Partition analysis completed OK.
Simulating partition [63C862C5]
PROSPICE 8.07.02 (Build 25463) (C) Labcenter Electronics 1993-2018.
Loaded netlist 'C:\Users\ADMINI~1\AppData\Local\Temp\LISA5070.SDF' for design 'stm32f103test.pdsprj'
Loading HEX file '..\Project\Objects\10 155555.hex'. [U1_CM3CORE]
Read total of 1152 bytes from file '..\Project\Objects\10 155555.hex'. [U1_CM3CORE]
Simulation is not running in real time due to excessive CPU load.

这个警告是什么原因?应当怎样解决?

点评

这个不是错误,警告:由于计算机负载过重,仿真无法按照实时的速度运行。不过其实是按实际速度的比例进行的,效果上没有问题。 如果想按实际速度运行,在计算机不升级的前提下,可以关闭一些示波器、调试界面等,速  详情 回复 发表于 2019-4-8 19:41


回复

使用道具 举报

43

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-4-8 19:41 | 显示全部楼层
csz9981 发表于 2019-4-7 21:59
另外请教:
ISIS Release 8.08.01 (Build 27031) (C) Labcenter Electronics 1990- 2018.
Compiling de ...

这个不是错误,警告:由于计算机负载过重,仿真无法按照实时的速度运行。不过其实是按实际速度的比例进行的,效果上没有问题。
如果想按实际速度运行,在计算机不升级的前提下,可以关闭一些示波器、调试界面等,速度会快点。
因为你要仿真的是ARM,需要实现的功能比普通51更多的多,所以proteus会很耗资源的。


回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-4-29 15:50 | 显示全部楼层
在protuec仿真出现Access to register of unclocked peripheral at 0x40000400 cause BUS_FAULT [U1_CM3CORE]
也是用32的,硬件已经做出来了其功能也实现了,程序是没错的,就是仿真出错了,求大神解决


回复

使用道具 举报

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

关闭

站长推荐上一条 /1 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-7-21 23:37 , Processed in 0.222863 second(s), 17 queries , Gzip On, MemCache On.

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