0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以s3c2440为例的arm芯片的启动过程

电子设计 来源:TOMORROW 星辰 作者:TOMORROW 星辰 2020-12-02 14:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

arm 嵌入式芯片的启动过程对于嵌入式菜鸟来说其实是很复杂的,很多人都是一知半解,存在很多误区。在笔者看来,要想真正了解这一启动过程必须要首先了解存储器的区别与联系,参考文章:各种主流半导体存储器的区别与联系。还需要了解程序是如何编译链接和执行的。

本文将以s3c2440为例详细讲述 arm 芯片的启动过程。s3c2440支持两种启动模式:NAND FLASH 启动和非 NAND FLASH 启动(一般是NOR FLASH 启动,并且可以配置数据宽度),通过 OM1、OM0 两个管脚来控制。

NAND FLASH启动过程

当 OM1、OM0 两个管脚都为低电平时,CPU 就被配置成了 NAND FLASH 启动。此时 CPU 内部的 4KB 的 SRAM 就会被映射到 nGCS0 的空间(起始地址为 0x00000000),上电时 CPU 会自动将 NAND FLASH 中前 4KB 的数据拷贝到该片内 SRAM。然后 CPU 从内部 SRAM 的 0x00000000 地址开始执行程序,对系统进行相应的初始化,为后续 4Kb 以外的程序执行做准备。

也就是说,CPU 启动过程之时能够执行的程序最多只能占用 4Kb 大小的空间。如果需要执行更多程序,则需要在 4Kb 的程序里完成对 DRAM 的初始化(DRAM 在使用前必须初始化),配置好栈空间,并将需要执行的程序拷贝到 DRAM 中,然后跳转到 DRAM 中继续执行。

启动过程之所以要将 NAND FLASH 中的代码先拷贝到内部 SRAM 再执行,是因为 NAND FLASH 需要通过 NAND FLASH 控制器来进行访问,不能通过 CPU 的总线直接访问,所以不能够执行程序。

NOR FLASH启动过程

当系统配置为此方式启动时,CPU 内部 SRAM 则不再被映射到地址空间中,此时被映射到 nGCS0(起始地址为 0x00000000)地址空间的应该是外部的 NOR FLASH(存放启动代码的存储器)。系统上电或者复位时,CPU 直接从 0x00000000 地址(也就是 NOR FLASH 的起始地址)开始执行代码。相比 NAND FLASH 启动,NOR FLASH 的启动代码可以达到 128Mb 之大(s3c2440)。

之所以可以在 NOR FLASH 上直接执行代码,是因为 NOR FLASH 具有类似 RAM 的访问接口,可以通过 CPU 总线直接进行随机读取,但不支持随机写操作。因此,这些启动代码里是不可有 C 语言的,应为程序里必然会有变量(需要写),需要栈空间调用函数(同样需要写),而汇编程序则是可以避免对内存空间的写操作的。

那么是不是说,如果是 NOR FLASH 启动就不能有 C 程序了呢?当然不是的,不要忘了还有 DRAM 的存在。当 NOR FLASH 启动过程完成了对 DRAM 的初始化,栈空间的配置之后就可去调用 C 语言的程序了。

这就是 arm 芯片的启动过程了,其实在启动过程中的最开始的那些启动代码里还有很多地方值得细细斟酌的,也会有很多疑问,这个时候就应该去了解程序是怎么编译链接的、又是如何执行的。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9618

    浏览量

    394601
  • NAND
    +关注

    关注

    16

    文章

    1774

    浏览量

    141415
  • 嵌入式芯片
    +关注

    关注

    4

    文章

    244

    浏览量

    28490
  • S3C2440
    +关注

    关注

    4

    文章

    132

    浏览量

    40201
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电子元件特性分析:型号 SSP - LXS06762S9A

    电子元件特性分析:型号 SSP - LXS06762S9A 在电子设计领域,了解电子元件的特性是至关重要的。今天我们来详细分析一款型号为 SSP - LXS06762
    的头像 发表于 05-17 15:35 93次阅读

    烧录芯片是什么意思?F29-38门铃音乐芯片解析

    在智能硬件开发中,“烧录芯片”是一个关键步骤,但许多初学者可能对其含义和操作流程感到困惑。本文将以F29-38 4和弦门铃音乐芯片,详细解释烧录
    的头像 发表于 04-17 15:30 303次阅读

    深度剖析LPC18S5x/S3x 32位ARM Cortex - M3微控制器

    : LPC18S37JBD144E.pdf 一、整体概述 核心特点 LPC18S5x/S3x微控制器ARM Cortex - M
    的头像 发表于 04-09 09:35 262次阅读

    NXP LPC18S5x/S3x:高性能32位ARM Cortex - M3 MCU深度解析

    。NXP的LPC18S5x/S3x系列32位ARM Cortex - M3 MCU凭借其出色的性能和丰富的外设,在众多同类产品中脱颖而出,
    的头像 发表于 04-09 09:30 235次阅读

    深入解析Atmel SAM3S系列ARM Cortex - M3微控制器

    的SAM3S系列微控制器,基于高性能的32位ARM Cortex - M3 RISC处理器,以其出色的性能、丰富的外设和低功耗特性,在众多应用领域中脱颖而出。本文将深入剖析SAM3S
    的头像 发表于 04-06 14:20 838次阅读

    【ESP32-C3系列】WT32C3-S1/S2模组规格书

    概述WT32C3-S1和WT32C3-S2是通用型Wi-Fi和低功耗蓝牙(BluetoothLE)模组,是一款低功耗高性价比的嵌入式无线网络控制模块。可满足智能电网、楼宇自动化、安防、智能家居、远程
    的头像 发表于 02-03 18:15 835次阅读
    【ESP32-<b class='flag-5'>C3</b>系列】WT32<b class='flag-5'>C3-S</b>1/<b class='flag-5'>S</b>2模组规格书

    【ESP32-C3系列】WT32C3-S1/S2模组产品介绍

    ✦₊点击上方名片关注了解更多概述WT32C3-S1和WT32C3-S2是通用型Wi-Fi和低功耗蓝牙(BluetoothLE)模组,是一款低功耗高性价比的嵌入式无线网络控制模块。可满足智能电网、楼宇
    的头像 发表于 01-26 18:15 723次阅读
    【ESP32-<b class='flag-5'>C3</b>系列】WT32<b class='flag-5'>C3-S</b>1/<b class='flag-5'>S</b>2模组产品介绍

    变频器起动过程曲线参数怎么设置

    变频器起动过程曲线参数的设置是工业自动化控制中的关键技术环节,直接影响电机启动性能、设备寿命及能耗效率。以下是基于工程实践和理论分析的详细设置指南: 一、基础参数理解 1. 加速时间
    的头像 发表于 01-23 12:03 603次阅读
    变频器起<b class='flag-5'>动过程</b>曲线参数怎么设置

    CW32系统发启动过程

    CW32支持 2 种不同的启动模式,通过 BOOT 引脚状态进行选择,启动模式选择电路只在芯片解复位时刻采样 BOOT 引脚状态,因此在芯片解复位前用户必须根据需要设置好BOOT 引脚
    发表于 12-15 07:54

    DCDC芯片TPS54620的缓启动时间仿真

    以下DCDC芯片TPS54620对缓启动时间进行仿真。
    的头像 发表于 12-02 15:20 832次阅读
    DCDC<b class='flag-5'>芯片</b>TPS54620的缓<b class='flag-5'>启动</b>时间仿真

    CW32时钟的启动过程

    CW32F030 的时钟源启动过程类似,当设置 SYSCTRL_CR1.HSEEN 1 后,HSE 时钟振荡电路开始工作,但此时输出的时钟信号振幅很小。经过启动时间阶段后,输出时钟信号的振幅
    发表于 11-13 07:49

    PD快充芯片U8732的软启动功能

    启动技术的核心在于控制芯片电源电压的平稳上升。银联宝PD快充芯片U8732内部集成有软启动功能,在软启动时间TST(典型值 5ms)内,电
    的头像 发表于 07-03 18:02 1197次阅读

    绕线转子永磁电机启动过程准时间最优控制

    摘要:绕线转子永磁电机(WR-PMM)转子斩波调阻启动是一种便捷有效的启动控制策略。通过斩波调阻的方法实时调节转子外接电阻,能使启动过程中平均转矩始终保持最大值,实现绕线转子永磁电机启动过程
    发表于 06-12 13:50

    绕线电机启动状态到双馈状态过渡过程的研究

    同步转速参考,得出转子侧的不同频率对最大转差的影响及存在的规律性。该研究对于双馈电机的启动过程及调速工作都有着非常重要的意义。 纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:绕线电机启动
    发表于 06-12 13:40

    晶闸管控制异步电机软启动过程中振荡现象研究

    纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:晶闸管控制异步电机软启动过程中振荡现象研究.pdf【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!
    发表于 06-04 14:39