STM32启动后都干了些什么?

[复制链接]
3504|7
 楼主| 贾斯文 发表于 2009-10-20 13:38 | 显示全部楼层 |阅读模式
在MDK环境,从上电启动运行到MAIN()之间都干了些什么?
看反汇编,好像有一些初始化RAM,设置堆栈,和中断向量.
请香版主详细解释一下,或者参考那些资料;
另,怎么指定堆栈的位置?
 楼主| 贾斯文 发表于 2009-10-20 14:12 | 显示全部楼层
大家在应用中不关心这些东东吗?自己顶
neuq521 发表于 2009-10-20 14:28 | 显示全部楼层
我也是一知半解,期待高人指点
playzhp 发表于 2009-10-20 14:45 | 显示全部楼层
你研究下cortex-M3内核吧。
我还是菜鸟,还是继续去“点灯”:lol
香水城 发表于 2009-10-20 14:52 | 显示全部楼层
我没有看过这些程序,但相信程序里有注释吧,应该很容易看懂的。如果看不懂,说明你目前还不需要这些内容,学习是可以暂时先把这部分跳过去。
arm_fan168 发表于 2009-10-20 15:21 | 显示全部楼层
这个跟STM32关系不大,跟编译器、连接器有很大关系,不同的编译器会有不同的初始化代码。
ST_ARM 发表于 2009-10-20 15:59 | 显示全部楼层

修改

1、初始化系统的堆栈;
2、底层的初始化(举例:如用户将变量定义在外部RAM中时,就需要先对FSMC进行初始化;
3、对变初始值为0的变量清0;
4、对初试值不为0的变量进行初始化(从Flash中将相应的值读出,并填充到相应的地址);
5、跳转到main().
aozima 发表于 2009-10-20 16:05 | 显示全部楼层
自己写一个来学习也不错,不要使用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函数了

也可以用的,只是没有做楼上的工作
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

24

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部