打印

STM32启动后都干了些什么?

[复制链接]
2110|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

使用特权

评论回复
5
香水城| | 2009-10-20 14:52 | 只看该作者
我没有看过这些程序,但相信程序里有注释吧,应该很容易看懂的。如果看不懂,说明你目前还不需要这些内容,学习是可以暂时先把这部分跳过去。

使用特权

评论回复
6
arm_fan168| | 2009-10-20 15:21 | 只看该作者
这个跟STM32关系不大,跟编译器、连接器有很大关系,不同的编译器会有不同的初始化代码。

使用特权

评论回复
7
ST_ARM| | 2009-10-20 15:59 | 只看该作者

修改

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

使用特权

评论回复
8
aozima| | 2009-10-20 16:05 | 只看该作者
自己写一个来学习也不错,不要使用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函数了

也可以用的,只是没有做楼上的工作

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

24

帖子

0

粉丝