对于 103 系列,主
要是用其中 3 个启动文件:
startup_stm32f10x_ld.s:  适用于小容量 产品
startup_stm32f10x_md.s : 适用于中等容量产品
startup_stm32f10x_hd.s:  适用于大容量产品

这里的容量是指 FLASH 的大小.判断方法如下:
小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH
我们ALIENTEK STM32战舰板,精英板以及mini板采用的STM32F103ZET6和stm32F103RCT6
芯片都属于大容量产品,所以我们的启动文件选择 startup_stm32f10x_hd.s,对于中等容量芯片请
选择 startup_stm32f10x_md.s 启动文件,小容量芯片请选择 startup_stm32f10x_ld.s。
启动文件到底什么作用,其实我们可以打开启动文件进去看看。启动文件主要是进行堆栈
之类的初始化,中断向量表(中断处理的函数名已经起好了,不能自己另外起中断处理名的,但中

断处理函数体为空,自己写函数体内容)以及中断函数定义。启动文件要引导进入 main 函数。Reset_Handler
中断函数是唯一实现了的中断处理函数,其他的中断函数基本都是死循环。 Reset_handler 在我
们系统启动的时候会调用,下面让我们看看 Reset_handler 这段代码:

; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
这段代码我也看不懂,反正就知道,这里面要引导进入 main 函数,同时在进入 main 函数之前,
首先要调用 SystemInit 系统初始化函数。
还有其他几个文件 stm32f10x_it.c,stm32f10x_it.h 以及 stm32f10x_conf.h 等文件,这里就不
一一介绍。stm32f10x_it.c 里面是用来编写中断服务函数,中断服务函数也可以随意编写在工程
里面的任意一个文件里面,个人觉得这个文件没太大意义。
stm32f10x_conf.h 文件打开可以看到一堆的#include,这里你建立工程的时候,可以注释掉一
些你不用的外设头文件。这里相信大家一看就明白。

starup_stm32f10x_hd.s的作用相关推荐

  1. Object的finalize()方法的作用是否与C++的析构函数作用相同

    Object的finalize()方法的作用是否与C++的析构函数作用相同 public class Finalization {private static Finalization finaliz ...

  2. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin

    1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...

  3. 【B/S实践】解决:vs中修改样式表后不起作用的问题

    缓存,有好多,cpu和内存之间的三级缓存,浏览器内的缓存! 缓存是因为速率不对等,通过缓存来加速内容的显示! 今天我在敲牛腩的时候遇到一个问题,找了半小时,才发现是缓存导致的问题! 试着运行aspx文 ...

  4. 卷积神经网络之卷积计算、作用与思想 深度学习

    博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...

  5. 机器学习——标准化/归一化的目的、作用和场景

    对每个特征进行归一化处理,使得每个特征的取值缩放到0~1之间.这样做有两个好处: 模型训练更高效. 特征前的权重大小可代表该变量对预测结果的贡献度(因为每个特征值本身的范围相同). (一)归一化的作用 ...

  6. Linux操作系统下文件作用

    linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的 ...

  7. python sys.argv[] 的作用

    sys.argv[]是什么 argv 是sys库里面的所以使用的 需要先引入sys (使用import sys) sys.argv[]的作用 从程序外获取参数,怎样理解呢,例如在终端中运行test脚本 ...

  8. C++ namespace 的作用以及使用

    namespace 是什么: 命名空间(namespace)是一种描述逻辑分组的机制,可以将按某些标准在逻辑上属于同一个任务中的所有类声明放在同一个命名空间中.标准C++库(不包括标准C库)中所包含的 ...

  9. Android Environment 的作用以及常用的方法

    从源码中可以看到这样一句话 Provides access to environment variables Environment的作用是:  提供对环境变量的访问 常见的方法 //外部存储设备的当 ...

  10. RecyclerView Adapter中notifyDataSetChanged 的作用

    一直认为notifyDataSetChanged  是 用来刷新数据的 当数据发生变化的时候调用notifyDataSetChanged 官方说:通知任何注册的观察者数据发生了改变(Notify an ...

最新文章

  1. 多项式回归、分位数回归(Quantile Regression)、保序回归(Isotonic Regression)、RANSAC回归、核岭回归、基准回归模型(baseline)
  2. linux 内核round-robin scheduler代码,LINUX源代码阅读报告
  3. colease函数 mysql_SqlConnection 概述
  4. 中国电动汽车充电桩行业十四五发展预测及未来战略规划建议报告2022-2027年版
  5. CSS中隐藏内容的3种方法及属性值
  6. Eclipse Git 克隆项目的时候出现Internal error; consult Eclipse error log
  7. java redis集群连接池_(08)redis之使用java客户端、spring连接redis、redis集群示例...
  8. SpringBoot项目去除druid监控的底部广告
  9. 史上最全MySQL锁机制
  10. 详解Python序列解包(3)
  11. 什么是分布式微服务架构?-开课吧
  12. [日常] Go语言圣经-GIF动画练习语法
  13. 使用ThinkPHP框架高速开发站点(多图)
  14. iOS AutoLayout自动布局中级开发教程(2)-等宽等高等中心
  15. 易语言计算机设备获取,易语言获取混音设备名称
  16. 各场景下NetApp的数据备份推荐(Veeam+群晖NAS)
  17. 最全的monkey测试过程及分析
  18. 开放英语计算机考试,(荐)最新电大《英语I(1)》(开放英语1)完成句子、翻译题归纳汇总复习小抄.doc...
  19. 救赎自己——追风筝的人
  20. 【ROS学习】ROS系统安装 kinetic (超详细)

热门文章

  1. 【转】SQL修改字段长度
  2. 初中数学最全几何模型_初中数学几何模型秘籍.pdf
  3. 恋爱APP软件开发基本功能
  4. 运维工程师mysql面试题及答案_系统运维工程师面试题及参考答案
  5. MySQL修改默认端口3306
  6. 免费好用的钉钉内网穿透
  7. 【OpenCL开发入门】01 - 搭建Visual Studio 2022+OpenCL开发环境
  8. 【竞赛总结】安全AI之人脸识别对抗
  9. SQL常用增删改查语句
  10. 刚安装了极域电子教室,默认密码是什么?(教师端)