1、大型的嵌入式系统(ARM+Linux架构为例)类似于电脑程序,手机APP的加载方式。稍微大型的嵌入式系统(Linux)应用程序经过编译、连接之后,形成一个类似于exe、apk的可执行文件,将这个执行文件放置到文件系统中的固定路径下。以Linux为例,常用文件系统ext3、ext4等,文件系统根目录下有许多文件夹,如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盘是典型应用。由于代码量较大,不适宜放到内置flash中,需放在外置存储中,固件需进行优化。应用程序的加载过程:应用程序编译、链接之后生成可执行文件,格式复杂。通过二进制工具将code、data和entry、bss等信息重新组成一个简单的文件,这样操作系统在加载时由于格式简单,可以用较少的内存和计算完成。这个简单文件会与OS一起放在系统区,而不是放在一般文件系统所管理的用户数据区。系统区也有文件系统管理,但往往是自定义的最简单文件系统。需要运行某个应用时,通过系统区的简单文件系统找到文件,解释后将code和data搬到内存中,初始化bss后即跳到entry执行。
用户评论
推荐下载
-
嵌入式的教材
关于ARM的教材,为嵌入式的研究提供参考。
22 2019-02-28 -
嵌入式的实验
开发嵌入式的底层和内核的实验,有助于学生了解内核的操作系统
28 2019-01-04 -
嵌入式的坑
嵌入式工程师简直就是硬件工程师与软件工程师的合体!别问我是哪一类软件工程师,反正不是前端、后端、APP、测试、运维。也别问我是什么硬件工程师,电源、单片机、高频、通信......你会做你就上!给你个嵌
5 2021-02-24 -
基于ARM的嵌入式系统程序开发要点一嵌入式程序开发基本概念
基于ARM的嵌入式系统程序开发要点(一)——嵌入式程序开发基本概念1995-2004TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.1995-
30 2018-12-26 -
基于ARM的嵌入式系统程序开发要点_一_嵌入式程序开发基本概念
基于ARM的嵌入式系统程序开发要点_一_嵌入式程序开发基本概念,介绍了一些嵌入式开发的基本概念,适合初学者
32 2018-12-26 -
嵌入式驱动程序详解
嵌入式驱动程序详解。学习嵌入式很好的视频教程。
6 2020-10-27 -
嵌入式交叉编译基本程序
嵌入式系统的串口通信,目标板通过串口放文本数据,适合嵌入式初学者
13 2020-09-20 -
嵌入式应用程序开发
嵌入式应用程序涉及到付款姐姐撒雷锋精神咯if恩我
19 2020-10-02 -
嵌入式系统程序设计
一本很好的嵌入式c/c++编程的书,页数不多,内容却很全面。有助于嵌入式编程人员加深认识
13 2020-06-03 -
嵌入式下RTP测试程序
RTP测试程序,VCVS工程,嵌入式wince下的程序开发
20 2020-06-17
暂无评论