STM32F103ZET6的FSMC总线上挂载一个512K*8bit的外部SRAM,想把堆栈指针放在该SRAM中,就是想在定义变量如int value,该变量value就自动存放在外部的SRAM中。我的开发软件是IAR,我使用了固件库中的例子稍作修改,因为固件库中的外部SRAM是针对16bit数据总线的,在配置FSMC的时候我给改成8Bit的了。在启动文件startup_stm32f10x_hd.s中有这么几句:
Reset_Handler
LDR R0, =SystemInit
BLX R0
LDR R0, =sfe(CSTACK) ; restore original stack pointer
MSR MSP, R0
LDR R0, =__iar_program_start
BX R0
也就是说在系统进入main函数之前就先调用了一次SystemInit()这个函数,我到这个函数里边去查看发现有初始化FSMC的部分:
#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
#ifdef DATA_IN_ExtSRAM
SystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSRAM */
#endif
在调用完SystemInit_ExtMemCtl();这个函数之后配置FSMC成功了,但是在最后从
SystemInit()函数结束返回后就立即进入了硬件错误中断void HardFault_Handler(void);求大神帮忙分析或者给指一条明路啊!!!
STM32F1xx设置外部SRAM为DataMemory的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
悬赏问题
- ¥15 MATLAB yalmip 可转移负荷的简单建模出错,如何解决?
- ¥15 数学的三元一次方程求解
- ¥20 iqoo11 如何下载安装工程模式
- ¥15 本题的答案是不是有问题
- ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
- ¥15 C++使用Gunplot
- ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
- ¥15 matlab数字图像处理频率域滤波
- ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
- ¥15 ELGamal和paillier计算效率谁快?