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

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

3天内不再提示

常见的嵌入式程序加载方式介绍

电子设计 来源:电子设计 作者:电子设计 2021-01-20 16:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1、大型的嵌入式系统ARM + Linux架构为例)

类似于电脑程序,手机APP的加载方式,稍微大型的嵌入式系统(Linux),应用程序经过编译、连接之后,形成一个类似于exe、apk的可执行文件,将这个执行文件放置到文件系统中的固定路径下。以Linux为例,常用文件系统ext3、ext4等等,文件系统根目录下有许多文件夹(可理解为C盘,D盘),如bin、root、usr、opt等。

进入存放被执行文件的路径,使用./XXX命令,执行该XXX程序。如果需要开机就执行、该程序,则需要将该可执行文件启动,加载到开机启动项内。

TIPS:如使用execve命令执行该程序,通过ext4文件的fsopen函数找到XXX这个文件,然后解释其ELF格式,在创建好页表后,将code段和data段搬到内存,初始化bss段,最后跳到entry所在的地方。

2、小型的嵌入式程序(51为例)

应用程序在编译、链接之后,会通过二进制工具分析可执行文件的格式,抽出code和data段数据,生成.HEX格式或者.BIN格式,下载到SOC内置的flash中。在上电之后就直接执行了。

3、还有一种这样的嵌入式系统架构,SOC的计算能力比较弱,但内存资源在百K级别,其能支持简单的操作系统,例如UCOS,而其一般没有外挂SDRAM,但其会将代码存放在外置的存储设备中,如nand和card,MP3、U盘就是这种嵌入式系统架构的最典型应用。MP3一般支持音乐、图片、电子书等等应用,代码量比较大,不适宜放到内置flash中,所以放到外置存储中。其成本敏感,内存要控制到最小,所以很多时候要对固件进行优化。那么它的应用程序的加载过程如何呢?

1)应用程序编译、链接之后生成可执行文件,可执行文件格式一般比较复杂。通过二进制工具将code、data和entry、bss等信息重新组成一个简单的文件,这样操作系统在加载这个文件的时候由于格式简单,可以用较少的内存和较少的计算就可以完成。这个简单的文件会和OS一块放到系统区,即不是放到一般文件系统所管理的用户数据区。当然,在系统区也有文件系统管理,但这个文件系统往往是自定义的最简单的文件系统(自己设计一个简单文件系统),而不是ext4,fat这些文件系统。

2)当需要运行某个应用时,通过系统区的简单文件系统找到这个文件,并进行简单的解释,将code和data搬到内存中,初始化bss后即跳到entry执行。

来源:电子创新网

审核编辑黄昊宇

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

    关注

    5186

    文章

    20146

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一个嵌入式处理器,其控制程序被存储在ROM中。这些系统在许多日常用品中都有广泛的应用,例如手表、微波炉、录像机和汽车等
    发表于 11-17 06:49

    嵌入式开发的关键点介绍

    嵌入式开发在现代科技中扮演着非常重要的角色。随着物联网的发展,嵌入式系统的需求也越来越大。嵌入式开发不仅需要开发人员具备深入的硬件知识和编程经验,还需要不断学习新的技术和工具,以满足不断变化的需求
    发表于 11-13 08:12

    嵌入式实时操作系统的特点

    操作系统具备高效的中断处理机制,能够快速响应和处理系统的中断事件。 资源管理:实时嵌入式操作系统提供有效的资源管理机制,包括内存管理、设备驱动程序、文件系统和网络协议等,以支持嵌入式系统的功能需求
    发表于 11-13 06:30

    PCB嵌入式功率模块介绍

    电子发烧友网站提供《PCB嵌入式功率模块介绍.docx》资料免费下载
    发表于 09-09 16:19 2次下载

    入行嵌入式应该怎么准备?

    任务调度的代码是非常重要的。此外,了解操作系统内核的工作原理以及与硬件交互的方式也是必须的。 四、通信协议嵌入式系统通常需要与其他设备或系统进行通信。了解常见的通信协议(如UART、SPI、I2C
    发表于 08-06 10:34

    Linux嵌入式和单片机嵌入式的区别?

    区别 单片机嵌入式系统和Linux嵌入式系统是两种不同的嵌入式系统开发方式,它们在应用领域、开发环境、资源需求等方面都有显著的区别。以下是它们的主要区别: 1.应用领域: 单片机
    发表于 06-20 09:46

    运行在嵌入式系统上的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似于手机上的应用程序,可以运行在嵌入式
    的头像 发表于 06-18 09:53 618次阅读
    运行在<b class='flag-5'>嵌入式</b>系统上的emApps

    一文看懂:嵌入式与壁挂工控机安装方式的关键差异

    在工业自动化领域,工控机作为核心控制设备,其安装方式的选择直接影响设备运行稳定性与后期维护便捷性。嵌入式工控机和壁挂工控机是常见的两种类型,它们的安装
    的头像 发表于 05-14 14:40 692次阅读

    嵌入式应用中常见的安全威胁

    越来越多的嵌入式设备存在互联需求,在安全应用开发中,除功能安全外,应用还需考虑信息安全。
    的头像 发表于 04-28 14:45 992次阅读
    <b class='flag-5'>嵌入式</b>应用中<b class='flag-5'>常见</b>的安全威胁

    嵌入式机器学习的应用特性与软件开发环境

    设备和智能传感器)上,这些设备通常具有有限的计算能力、存储空间和功耗。本文将您介绍嵌入式机器学习的应用特性,以及常见的机器学习开发软件与开发环境。 嵌入式机器学习的应用特性与优势 由于
    的头像 发表于 01-25 17:05 1210次阅读
    <b class='flag-5'>嵌入式</b>机器学习的应用特性与软件开发环境

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对嵌入式主板的基本概念、构成部分、
    的头像 发表于 01-13 16:30 1184次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    嵌入式条码扫描器哪家好?嵌入式扫码器需不需要用串口方式连接?

    在当今信息化时代,嵌入式条码扫描器作为自动化数据处理的关键设备,广泛应用于工业制造、仓储物流、零售商业等多个领域。那么,在众多品牌中,嵌入式条码扫描器究竟哪家好?而嵌入式扫码器又是否必须使用串口
    的头像 发表于 01-10 00:00 605次阅读
    <b class='flag-5'>嵌入式</b>条码扫描器哪家好?<b class='flag-5'>嵌入式</b>扫码器需不需要用串口<b class='flag-5'>方式</b>连接?

    LDO在嵌入式系统中的应用 常见LDO故障及解决方法

    的应用及其常见故障和解决方法的概述。 应用场景 电源转换 :LDO可以将电池电压或其他电源电压转换为嵌入式系统所需的稳定电压。 噪声抑制 :LDO能有效降低电源线上的噪声,为敏感的模拟电路提供干净的电源。 功耗管理 :在低功耗应用中,LDO可以提供稳定的电源,同时减少功耗
    的头像 发表于 12-13 09:08 3078次阅读

    新手怎么学嵌入式?

    的基础上增加了面向对象编程的特性,有助于编写更复杂的嵌入式程序。 3. 学习硬件知识 嵌入式技术与硬件紧密相关,因此你需要了解一些基本的硬件知识。比如微控制器(MCU)、微处理器(MPU)的工作原理,了解
    发表于 12-12 10:51

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常嵌入在所控制的设备中。这些系统的关键特点是它们与硬件的紧密集成,这意味着软件必须为特定的硬件平台量身定制。以下是
    的头像 发表于 12-09 09:38 1466次阅读