fire 发表于 2015-10-13 17:59:40

【F1-启动文件】STM32启动文件详解,不是简单的翻译注释,已完结

我们这里以大容量产品的启动文件来讲解:startup_stm32f10x_hd.s

直接下载PDF版本吧: 教程里面是以F429的启动文件来讲解的,但是CM3跟CM4差不多,基本上一样
初始化栈:STACK
栈的大小决定了程序中能定义多少局部变量,如果编写的程序比较大,定义的局部变量很多的话,那么就需要修改这个值。
如果某一天,你在写程序的时候突然出现了莫名奇妙的错误,并进入了硬fault的时候,这时你就要考虑下是不是栈不够大,溢出了。
默认情况下,栈的大小设置成 1KB,栈的大小最大不能超过内部SRAM的大小。
Stack_Size      EQU   0x00000400初始化堆:HEAP
堆的大小决定了我们使用内存申请函数:malloc()可以申请多大的内存,这个在STM32里面使用的比较少。
默认情况下,堆的大小设置成512个字节
Heap_Size       EQU   0x00000200
已完结


十一月的萧邦 发表于 2015-10-13 18:49:49

但是如果都放全局 耦合性大了,移植性也差了

fire 发表于 2015-10-13 19:30:39

十一月的萧邦 发表于 2015-10-13 18:49
但是如果都放全局 耦合性大了,移植性也差了

可以这么理解

fire 发表于 2015-10-13 19:30:45

十一月的萧邦 发表于 2015-10-13 18:49
但是如果都放全局 耦合性大了,移植性也差了

可以这么理解

fire 发表于 2015-10-13 19:30:52

十一月的萧邦 发表于 2015-10-13 18:49
但是如果都放全局 耦合性大了,移植性也差了

可以这么理解

Dream_Chaser 发表于 2015-10-13 20:17:02

火哥,任务堆栈和启动时定义的堆栈不同且同时存在,它们分别在内存的静态区和堆栈区,运行任务时sp指向的是静态区,我这样理解对吗?

梦幻世界wjl 发表于 2015-10-20 12:58:16

火哥,想问下我理解的栈区就是会自动释放的区域,通常是局部变量存放的地区,但是堆区是不是要通过我们自己写一个类似于malloc()这样的函数来分配内存的区域,而全局变量和static修饰的变量都是分配到静态区,会不会也能够分配到堆区呢,这个我就不是很清楚了。:):)

fire 发表于 2015-10-20 14:14:32

Dream_Chaser 发表于 2015-10-13 20:17
火哥,任务堆栈和启动时定义的堆栈不同且同时存在,它们分别在内存的静态区和堆栈区,运行任务时sp指向的是 ...
你这样问我还真不会,我找找资料再回答你

fire 发表于 2015-10-20 14:16:46

梦幻世界wjl 发表于 2015-10-20 12:58
火哥,想问下我理解的栈区就是会自动释放的区域,通常是局部变量存放的地区,但是堆区是不是要通过我们自己 ...

前面你理解的都对,无论是全局的还是static修饰的,栈或者堆都是在sram里面

Dream_Chaser 发表于 2015-10-20 17:30:54

fire 发表于 2015-10-20 14:14
你这样问我还真不会,我找找资料再回答你

期待火哥解答

pk20144 发表于 2015-10-25 19:44:00

:D, 太好了,谢谢火哥对额外的内容进行分解。 期待继续

Just_Beat_It 发表于 2015-10-28 09:17:12

启动文件MARK...

望着你发槑 发表于 2015-10-28 11:06:56

看看                           

土拨鼠 发表于 2015-10-28 15:52:28

过来学习,辛苦了

小肆 发表于 2015-10-28 16:37:05

学习中。。。。

dong448470769 发表于 2015-10-28 20:41:46

看看。。。。。。。。。。。。。。。。

liuzx66 发表于 2015-10-28 22:12:53

过来学习,辛苦了

ptu33 发表于 2015-10-29 15:45:07

学习一下:lol:lol

zhangfuyu 发表于 2015-10-30 11:20:38

看看学习……

jsgyzj 发表于 2015-10-30 11:59:40

看看看看看看看看看看看看看看看看看看看看

PHD 发表于 2015-10-30 14:28:26

新人前来围观大神

BMN李 发表于 2015-10-31 11:35:31

支持野火!!!支持每日一题!!!

cp123456 发表于 2015-10-31 12:16:26

太好了,谢谢火哥对额外的内容进行分解。 期待继续

mint 发表于 2015-10-31 16:04:16

不是吧,这个也要回复~~~

爱萝莉 发表于 2015-11-2 00:21:32

来学习一下

mizijuewu 发表于 2015-11-2 23:10:03

,。。。。。。。。。。。。。。。..................

baidxi 发表于 2015-11-3 00:49:24

看看怎么样。。。。。。。。。。。。。。。十字

baidxi 发表于 2015-11-3 00:52:06

我用的是gcc,和这个语法差别好大。

baidxi 发表于 2015-11-3 00:56:09

        .syntax        unified
        .arch        armv7e-m

        .section .stack
        .align        3
#ifdef __STACK_SIZE
        .equ        Stack_Size, __STACK_SIZE
#else
        .equ        Stack_Size, 0xc00
#endif
        .globl        __StackTop
        .globl        __StackLimit
__StackLimit:
        .space        Stack_Size
        .size        __StackLimit, . - __StackLimit
__StackTop:
        .size        __StackTop, . - __StackTop

        .section .heap
        .align        3
#ifdef __HEAP_SIZE
        .equ        Heap_Size, __HEAP_SIZE
#else
        .equ        Heap_Size, 0
#endif
其中一部份

郝英杰 发表于 2015-11-3 10:36:40

来看看怎么解读的

明火 发表于 2015-11-4 10:37:42

继续学习                                             

蔡小祥 发表于 2015-11-4 15:31:46

需要认真仔细的学习。

timer 发表于 2015-11-4 20:44:46

谢谢火锅分享

小菜鸟VS笨笨 发表于 2015-11-4 22:08:40

来瞧瞧看看

BEILIN 发表于 2015-11-6 14:22:43

\(≧▽≦)/学习一下

HUANG12 发表于 2015-11-8 21:21:02

过来学习,辛苦了

Natto 发表于 2015-11-8 22:25:27

哥好像以前回复过这贴子

年青人少熬夜 发表于 2015-11-13 16:24:58

回复了才能看,就水点咯

13969119309 发表于 2015-11-18 11:15:53

好好学习

13969119309 发表于 2015-11-18 11:16:58

为什么   要回复了再看好麻烦

痞爷李 发表于 2015-11-18 21:58:07

谢谢火哥!

Tick-Tock 发表于 2015-11-18 22:20:12

这个文件自己搞了好久还是不清不楚的

china 发表于 2015-11-20 11:06:09


来xuexue怎么解读的

ajungle 发表于 2015-11-20 11:50:27

好好学习            。。

Vincentns 发表于 2015-11-20 12:41:37

看看。~~~~~~~~~~~~

H_Da文 发表于 2015-11-20 14:02:14

好好学习Start Code

何春 发表于 2015-11-20 16:32:20

怎么解释 学习

CSFR 发表于 2015-11-20 20:14:34

学习一下..................................

shidadizhu 发表于 2015-11-21 19:06:20

学习一下、、、、、、、、、、、、、

卧龙生 发表于 2015-11-21 22:27:52

我好想看火哥
页: [1] 2 3 4 5 6 7
查看完整版本: 【F1-启动文件】STM32启动文件详解,不是简单的翻译注释,已完结