3933|7

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32启动后都干了些什么? [复制链接]

在MDK环境,从上电启动运行到MAIN()之间都干了些什么?
看反汇编,好像有一些初始化RAM,设置堆栈,和中断向量.
请香版主详细解释一下,或者参考那些资料;
另,怎么指定堆栈的位置?
此帖出自stm32/stm8论坛

最新回复

                                 自己写一个来学习也不错,不要使用LIBC    PRESERVE8     THUMB ; Vector Table Mapped to Address 0 at Reset                 AREA    RESET, DATA, READONLY                 EXPORT  __Vectors __Vectors       DCD     (0x20000000+8192)          ; Top of Stack                 DCD     Reset_Handler              ; Reset Handler                 AREA    |.text|, CODE, READONLY ; Reset handler routine Reset_Handler   PROC                 IMPORT  main                 LDR     R0, =main                 BX      R0                         ;jump to main()                 ENDP                 ;ALIGN                 ;END of file                 END复制代码这样,就直接跳 main函数了 也可以用的,只是没有做楼上的工作  详情 回复 发表于 2009-10-20 16:05
点赞 关注
 

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 大家在应用中不关心这些东东吗?自己顶
此帖出自stm32/stm8论坛
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 我也是一知半解,期待高人指点
此帖出自stm32/stm8论坛
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
你研究下cortex-M3内核吧。
我还是菜鸟,还是继续去“点灯”
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 我没有看过这些程序,但相信程序里有注释吧,应该很容易看懂的。如果看不懂,说明你目前还不需要这些内容,学习是可以暂时先把这部分跳过去。
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

6
 
                                 这个跟STM32关系不大,跟编译器、连接器有很大关系,不同的编译器会有不同的初始化代码。
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 

修改

1、初始化系统的堆栈;
2、底层的初始化(举例:如用户将变量定义在外部RAM中时,就需要先对FSMC进行初始化;
3、对变初始值为0的变量清0;
4、对初试值不为0的变量进行初始化(从Flash中将相应的值读出,并填充到相应的地址);
5、跳转到main().
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
自己写一个来学习也不错,不要使用LIBC
  1.     PRESERVE8
  2.     THUMB


  3. ; Vector Table Mapped to Address 0 at Reset
  4.                 AREA    RESET, DATA, READONLY
  5.                 EXPORT  __Vectors

  6. __Vectors       DCD     (0x20000000+8192)          ; Top of Stack
  7.                 DCD     Reset_Handler              ; Reset Handler


  8.                 AREA    |.text|, CODE, READONLY

  9. ; Reset handler routine
  10. Reset_Handler   PROC
  11.                 IMPORT  main

  12.                 LDR     R0, =main
  13.                 BX      R0                         ;jump to main()
  14.                 ENDP

  15.                 ;ALIGN

  16.                 ;END of file
  17.                 END
复制代码
这样,就直接跳
main函数了

也可以用的,只是没有做楼上的工作
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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