一、最基本的工作

1、准备RAM

  如果是SRAM这步可以省略,但如果是SDRAM就需要配置一下时序才能使用。RAM是必须准备的,没有RAM将来的全局变量和堆栈在哪儿开辟。

2、准备SP

  SP肯定是设置在RAM中。SP必须设置好,不然程序怎么跳转到C函数运行--需要入栈操作。

3、准备代码

  对于处理器:

  代码如果是在NorFlash上,直接可以运行,这一步骤也可省略。但是如果代码在非RAM接口的Flash上,就必须搬运到RAM中才行。即使在NorFlash上,有时我们也需要搬移,因为速度原因。

  对于单片机:

  因为程序本身就是在内部Flash上运行的,无需搬移。

4、跳到main

二、如果用到了全局变量

  那么额外的还需要将全局变量中的已初始化全局变量加载到RAM中,为初始化的全局变量区进行清零。

三、更完善一下

1、设置系统时钟

2、初始化中断控制器

3、建立中断向量表

转载于:https://www.cnblogs.com/amanlikethis/p/3719720.html

启动文件需要做的工作相关推荐

  1. 系统移植-(二)u-boot:启动过程做的工作(汇编阶段、C阶段)

    u-boot 启动过程 (一)ctags 安装 (二)uboot 启动过程 (1)链接脚本u-boot.lds (2)start.S分析 (3)Reset handler 分析 (1)bl cpu_i ...

  2. STM32高级开发(8)-链接器与启动文件

    最近休息了一下,中间断断续续在虚拟机上靠着记忆恢复了原来崩溃的虚拟机上80%的工作成果,还算过得去吧,完全丢失的也就是些不大重要的资料.今天新买的机械键盘也到货了,不得不说顺丰的工作人员好评,给过年假 ...

  3. STM32启动文件分析(startup_stm32f10x_md.s)

    初始化堆栈 初始化栈指针(SP) 初始化栈指针(SP) 向量表的设置 配置系统时钟进入main 一般而言,系统上电后第一个执行的是由汇编所编写的启动文件,其主要工作为一下五部分 初始化堆栈指针SP=_ ...

  4. Revit二次开发——不启动Revit,做rvt文件数据导出

    Revit二次开发--不启动Revit,做rvt文件数据导出 Node.js部分 调用C#端供外部调用的dll C#部分 调用RevitNet.dll,做数据导出exe 做外部调用dll 总结 Nod ...

  5. STM32启动文件分析

    相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化. ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一 ...

  6. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介...

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

  7. s3c2440启动文件详细分析

    启动文件就是引导ARM启动,并进入我们熟悉的C语言程序.它主要完成了ARM最基本的硬件初始化工作.虽然启动文件的内容大同小异(就是设置系统时钟.内存.中断向量表.栈等内容),而且只要有一个现成的启动文 ...

  8. STM32启动文件代码解析

    目录 启动流程 代码详解 启动文件使用的 ARM 汇编指令汇总 关于与启动文件有关的一些问题思考 下面是F1固件库V3.5.0的启动文件startup_stm32f10x_hd.s,以此为例做解析,其 ...

  9. STM32那点事(1)_STM32F40_41xx启动文件详解

    STM32 官方为广大开发者提供一套统一开发固件,主要是屏蔽寄存器封装,提供初始化等功能,较少开发者负担.只需要调用相关模块封装,对相关结构提初始化即可,较少开发调试时间.本次主要以官方STM32F4 ...

最新文章

  1. FPGA之道(76)静态时序分析(二)一道时序分析的例题
  2. 发布 EasyTrac 0.1.0.11b2
  3. 网络编程- 解决黏包现象方案一(六)
  4. java基础 关于转换流
  5. Java判断类和实例的关系
  6. 删除 索引 外键 mysql_MySQL无法删除外键约束中所需的索引
  7. html块中的内容垂直居中,css如何设置行内元素与块级元素的内容垂直居中
  8. acrobat 控件可以发布吗_短视频可以同时在多个平台发布吗?
  9. Maven构建项目 — 知识点梳理
  10. 多字节常量char m='\abcd'
  11. 数据计算 统计学案例_PSG三维数据采集软件在土方量计算中的应用案例
  12. Keras 中文文档地址
  13. VB弹出“访问系统注册表错误”提示对话框
  14. Java 时间差运算工具函数(时间戳运算)
  15. cadence电阻在哪个库_cadence元件库介绍
  16. Scala的安装与配置
  17. GiB 是什么?像 GB 是一样的吗?
  18. 什么是子网掩码,如何判断两个IP是不是同一网段
  19. nasa注册_“NASA”商标注册案例分析
  20. 2019年1季度中国移动互联网行业发展分析报告

热门文章

  1. 操作系统的极简教程(一)
  2. 不懂业务创新的工程师,不是好的架构师 | 深度
  3. 中国SaaS死或生之五:目标、方法、钱,一个都不能少
  4. Java 必看的 Spring 知识汇总!
  5. Spring Cloud构建微服务架构(二)服务消费者
  6. 工信部公示国家新型数据中心典型案例名单
  7. PUE值测算标准实践问题探讨
  8. 双活数据中心技术架构(PDF版)
  9. 服务器机房有哪些重要系统
  10. 明天要上班了,假如上天再给我一个假期…