启动文件需要做的工作

一、最基本的工作

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、建立中断向量表

时间: 2024-10-15 05:27:31

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

文件打开的过程——调用fd=open()时操作系统所做的工作

fd=fopen()是一个系统调用.用于依据文件名称打开一个文件.返回该文件的文件描写叙述符,文件打开后进程便能够依据文件描写叙述符fd进行其它操作,比方读,写,关闭等操作. 各个操作系统打开文件的过程是类似的,本文以Unix为例,介绍打开一个文件操作系统所做的工作.正式介绍这个过程之前先简要介绍几个概念. PCB(process control block)进程控制块.它是一个内核数据结构,相当于一个档案,是操作系统感知进程存在的唯一标识.包含进程状态,进程id,PC,寄存器,内存信息,文件打

Tomcat7源码分析学习系列之一-----tomcat的启动文件startup的注释

1. Windows系统,tomcat启动文件startup.bat @echo off rem 关闭回显,不显示下面的命令:rem Licensed to the Apache Software Foundation (ASF) under one or morerem contributor license agreements. See the NOTICE file distributed withrem this work for additional information rega

[转]nginx启动期都做了哪些事

nginx是个多进程web容器,不同的配置下它的启动方式也是不同的,这里我只说说最典型的启动方式. 它有1个master进程,和多个worker进程(最优配置的数量与CPU核数相关).那么,首先我们要找到main函数,它在src/core/nginx.c文件中.谈到源码了,这时我们先简单看下源码的目录结构吧. nginx主要有下列目录: src/core,这个目录存放了基础的数据结构像LIST.红黑树.nginx字符串,贯穿始终的一些逻辑结构如ngx_cycle_s.ngx_connection

linux系统运行级别改变时,系统所做的工作

# 其实计算机的关闭也就是运行级别的切换: # init进程监控运行级别是否改变. # 如果运行级别改变了,init进程就会触发 /etc/rc.d/rc 脚本运行. # rc 脚本作用是: #    1.如果当前计算机运行有,在当前运行级别 #   (correctrunlevel )/etc/rc.d/rc$runlevel.d/目录下以K开头的服务.就关闭. #     2.开启当前运行级别(correct runlevel )/etc/rc.d/rc$runlevel.d/目录下#   

启动文件讲解

本章参考资料< STM32F4xx 中文参考手册>第十章-中断和事件:表 46.STM32F42xxx 和 STM32F43xxx 的向量表: MDK 中的帮助手册-ARM Development Tools:用来查询 ARM 的汇编指令和编译器相关的指令. 启动文件由汇编编写,是系统上电复位后第一个执行的程序.主要做了以下工作:1. 初始化堆栈指针 SP=_initial_sp2. 初始化 PC 指针=Reset_Handler3. 初始化中断向量表4. 配置系统时钟5. 调用 C 库函数_

第14章 启动文件详解—零死角玩转STM32-F429系列

第14章     启动文件详解 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料<STM32F4xx 中文参考手册>第十章-中断和事件:表 46. STM32F42xxx 和 STM32F43xxx 的向量表:MDK中的帮助手册—ARM Development Tools:用来查询ARM的汇编指令和编译器相关的指令. 14.1 启动文件简介 启动文件由汇编编写,是

【转】dc综合工具启动文件 .synopsys_dc.setup

.synopsys_dc.setup文件在执行启动DC时会自动挂载(在启动DC时,请进入自己的工程目录下再进行启动,因为在DC工作过程中会生成较多的文件,也为了后面的操作更方便). target_library/工艺库,有.db .lib两种格式,前一种为DC所用,打开看不懂~~,后面一种为人读所用..lib可以转换为.db 此库主要描述了,工艺库中包含了各个门级单元的行为.引脚.面积以及时序信息(有的工艺库还有功耗方面的参数),DC在综合时就是根据target_library中给出的单元电路的

第14章 启动文件详解

第14章     启动文件详解 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料<STM32F4xx 中文参考手册>第十章-中断和事件:表 46. STM32F42xxx 和 STM32F43xxx 的向量表:MDK中的帮助手册-ARM Development Tools:用来查询ARM的汇编指令和编译器相关的指令. 14.1 启动文件简介 启动文件由汇编编写,是

关于ARM CM3的启动文件分析

下面以ARM Cortex_M3裸核的启动代码为例,做一下简单的分析.首先,在启动文件中完成了三项工作: 1.  堆栈以及堆的初始化 2.  定位中断向量表 3.  调用Reset Handler. 在介绍之前,我们先了解一下ARM芯片启动文件中涉及到的一些汇编指令的用法. 补充一下,其中DCD相当于C语言当中的&,定义地址. 1.堆栈以及堆的初始化 1.1 堆栈的初始化 Startup_xxx.s中的堆栈初始化代码 Stack_Size  EQU  0x00000400,这个语句相当于Stac