野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 72194|回复: 305

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

  [复制链接]
发表于 2015-10-13 17:59:40 | 显示全部楼层 |阅读模式
我们这里以大容量产品的启动文件来讲解:startup_stm32f10x_hd.s

直接下载PDF版本吧: STM32启动文件详解.pdf (679.1 KB, 下载次数: 1256) 教程里面是以F429的启动文件来讲解的,但是CM3跟CM4差不多,基本上一样
初始化栈:STACK
栈的大小决定了程序中能定义多少局部变量,如果编写的程序比较大,定义的局部变量很多的话,那么就需要修改这个值。
如果某一天,你在写程序的时候突然出现了莫名奇妙的错误,并进入了硬fault的时候,这时你就要考虑下是不是栈不够大,溢出了。
默认情况下,栈的大小设置成 1KB,栈的大小最大不能超过内部SRAM的大小。

  1. Stack_Size      EQU     0x00000400
复制代码
初始化堆:HEAP
堆的大小决定了我们使用内存申请函数:malloc()可以申请多大的内存,这个在STM32里面使用的比较少。
默认情况下,堆的大小设置成512个字节
  1. Heap_Size       EQU     0x00000200
复制代码

已完结


回复

使用道具 举报

发表于 2015-10-13 18:49:49 | 显示全部楼层
但是如果都放全局 耦合性大了,移植性也差了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-13 19:30:39 | 显示全部楼层
十一月的萧邦 发表于 2015-10-13 18:49
但是如果都放全局 耦合性大了,移植性也差了

可以这么理解
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-13 19:30:45 | 显示全部楼层
十一月的萧邦 发表于 2015-10-13 18:49
但是如果都放全局 耦合性大了,移植性也差了

可以这么理解
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-13 19:30:52 | 显示全部楼层
十一月的萧邦 发表于 2015-10-13 18:49
但是如果都放全局 耦合性大了,移植性也差了

可以这么理解
回复 支持 反对

使用道具 举报

发表于 2015-10-13 20:17:02 | 显示全部楼层
火哥,任务堆栈和启动时定义的堆栈不同且同时存在,它们分别在内存的静态区和堆栈区,运行任务时sp指向的是静态区,我这样理解对吗?
回复 支持 反对

使用道具 举报

发表于 2015-10-20 12:58:16 | 显示全部楼层
火哥,想问下我理解的栈区就是会自动释放的区域,通常是局部变量存放的地区,但是堆区是不是要通过我们自己写一个类似于malloc()这样的函数来分配内存的区域,而全局变量和static修饰的变量都是分配到静态区,会不会也能够分配到堆区呢,这个我就不是很清楚了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-20 14:14:32 | 显示全部楼层
Dream_Chaser 发表于 2015-10-13 20:17
火哥,任务堆栈和启动时定义的堆栈不同且同时存在,它们分别在内存的静态区和堆栈区,运行任务时sp指向的是 ...

你这样问我还真不会,我找找资料再回答你
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2015-10-20 17:30:54 | 显示全部楼层
fire 发表于 2015-10-20 14:14
你这样问我还真不会,我找找资料再回答你

期待火哥解答
回复 支持 反对

使用道具 举报

发表于 2015-10-25 19:44:00 | 显示全部楼层
, 太好了,谢谢火哥对额外的内容进行分解。 期待继续
回复 支持 反对

使用道具 举报

发表于 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 | 显示全部楼层
学习中。。。。
回复

使用道具 举报

发表于 2015-10-28 20:41:46 | 显示全部楼层
看看。。。。。。。。。。。。。。。。
回复

使用道具 举报

发表于 2015-10-28 22:12:53 | 显示全部楼层
过来学习,辛苦了
回复 支持 反对

使用道具 举报

发表于 2015-10-29 15:45:07 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 2015-10-30 11:20:38 来自手机 | 显示全部楼层
看看学习……
回复

使用道具 举报

发表于 2015-10-30 11:59:40 | 显示全部楼层
看看看看看看看看看看看看看看看看看看看看
回复 支持 反对

使用道具 举报

发表于 2015-10-30 14:28:26 | 显示全部楼层
新人前来围观大神
回复 支持 反对

使用道具 举报

发表于 2015-10-31 11:35:31 | 显示全部楼层
支持野火!!!支持每日一题!!!
回复 支持 反对

使用道具 举报

发表于 2015-10-31 12:16:26 | 显示全部楼层
太好了,谢谢火哥对额外的内容进行分解。 期待继续
回复 支持 反对

使用道具 举报

发表于 2015-10-31 16:04:16 | 显示全部楼层
不是吧,这个也要回复~~~
回复 支持 反对

使用道具 举报

发表于 2015-11-2 00:21:32 | 显示全部楼层
来学习一下
回复 支持 反对

使用道具 举报

发表于 2015-11-2 23:10:03 | 显示全部楼层
,。。。。。。。。。。。。。。。..................
回复

使用道具 举报

发表于 2015-11-3 00:49:24 | 显示全部楼层
看看怎么样。。。。。。。。。。。。。。。十字
回复 支持 反对

使用道具 举报

发表于 2015-11-3 00:52:06 | 显示全部楼层
我用的是gcc,和这个语法差别好大。
回复 支持 反对

使用道具 举报

发表于 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 | 显示全部楼层
需要认真仔细的学习。
回复 支持 反对

使用道具 举报

发表于 2015-11-4 20:44:46 | 显示全部楼层
谢谢火锅分享
回复 支持 反对

使用道具 举报

发表于 2015-11-4 22:08:40 | 显示全部楼层
来瞧瞧看看
回复 支持 反对

使用道具 举报

发表于 2015-11-6 14:22:43 来自手机 | 显示全部楼层
\(≧▽≦)/学习一下
回复 支持 反对

使用道具 举报

发表于 2015-11-8 21:21:02 | 显示全部楼层
过来学习,辛苦了
回复 支持 反对

使用道具 举报

发表于 2015-11-8 22:25:27 | 显示全部楼层
哥好像以前回复过这贴子
回复 支持 反对

使用道具 举报

发表于 2015-11-13 16:24:58 | 显示全部楼层
回复了才能看,就水点咯
回复 支持 反对

使用道具 举报

发表于 2015-11-18 11:15:53 | 显示全部楼层
好好学习  
回复 支持 反对

使用道具 举报

发表于 2015-11-18 11:16:58 | 显示全部楼层
为什么   要回复了再看  好麻烦
回复 支持 反对

使用道具 举报

发表于 2015-11-18 21:58:07 | 显示全部楼层
谢谢火哥!
回复

使用道具 举报

发表于 2015-11-18 22:20:12 | 显示全部楼层
这个文件自己搞了好久还是不清不楚的
回复 支持 反对

使用道具 举报

发表于 2015-11-20 11:06:09 | 显示全部楼层

来xuexue怎么解读的
回复 支持 反对

使用道具 举报

发表于 2015-11-20 11:50:27 | 显示全部楼层
好好学习              。。
回复 支持 反对

使用道具 举报

发表于 2015-11-20 12:41:37 | 显示全部楼层
看看。~~~~~~~~~~~~
回复

使用道具 举报

发表于 2015-11-20 14:02:14 | 显示全部楼层
好好学习Start Code
回复 支持 反对

使用道具 举报

发表于 2015-11-20 16:32:20 | 显示全部楼层
怎么解释 学习
回复 支持 反对

使用道具 举报

发表于 2015-11-20 20:14:34 | 显示全部楼层
学习一下..................................
回复

使用道具 举报

发表于 2015-11-21 19:06:20 | 显示全部楼层
学习一下、、、、、、、、、、、、、
回复 支持 反对

使用道具 举报

发表于 2015-11-21 22:27:52 | 显示全部楼层
我好想看火哥
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-3-28 23:10 , Processed in 0.051664 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表