6488|5

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32从SRAM启动遇到的问题 [复制链接]



用汇编写了一个小程序,测试STM32从SRAM启动,似乎启动不了,过程是这样的:
1、从flash启动,程序把flash中的一段代码拷贝到SRAM中(该代码是点亮LED的)
2、跳线设置为从SRAM启动,
3、按复位键,这时程序应该在SRAM中执行(LED被点亮),但结果LED灯不亮。

可是从flash中直接跳转到SRAM中执行(即把下面程序的中的注释语句激活),LED灯会亮。
也用Jlink仔细查看过,SRAM中的数据是正确的,复位也不会导致SRAM中的数据发生变化。

程序有什么问题吗?请高手指点一下!

;================================================================
... 地址调整,把SRAM_begin后的代码、文字池拷贝到0x2000 0000开始的SRAM中,代码略...

;    LDR     r0,=0x20000009
;    MOV     PC,r0
; xxx
;    B    xxx

SRAM_begin
     DCD     0x20000200                ;栈顶            
     DCD     0x20000009                ;复位向量

     LDR     r0,=0x40021018               
     LDR     r1,=0x00000080          ;enable GPIO时钟         
     STR     r1,[r0]
     LDR     r4,=0x40011c00               
     LDR     r5,=0x24444444          ;输出设置为推挽
     STR     r5,[r4]                         ;IO的复位值为0,LED亮

;==================================================================
此帖出自stm32/stm8论坛

最新回复

                                 不敢肯定是什么问题,但看到2点不合理: 1)为什么没有等待振荡器稳定工作再开启各部分时钟? 2)程序没有结尾,执行完你自己的最后一条指令后会继续执行未知的指令,你又没有设置异常处理,整个系统即使正常开始运行后,也会跑乱。  详情 回复 发表于 2009-10-15 10:04
点赞 关注
 

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
实在没看懂。。。。

你在用IO之前要先开时钟吧。。。。
此帖出自stm32/stm8论坛
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 可能之前说得不是很清楚,编辑了一下。希望各位汇编高手指点!
此帖出自stm32/stm8论坛
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 按复位键后ram中的内容全丢了!无法运行!
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 


楼上,复位只是把ARM的寄存器和STM32的外设初始化,对SRAM中的内容没有影响。我写了一个程序验证过这一点。
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
不敢肯定是什么问题,但看到2点不合理:
1)为什么没有等待振荡器稳定工作再开启各部分时钟?
2)程序没有结尾,执行完你自己的最后一条指令后会继续执行未知的指令,你又没有设置异常处理,整个系统即使正常开始运行后,也会跑乱。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表