启动嵌入式间:资源有限的系统启动

启动嵌入式间:资源有限的系统启动

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

           启动一个程序,它是在芯片上电复位,以执行,块独立于操作系统而在。由于操作系统须要通过启动这个模块来载入和引导的。所以启动的英文术语是boot loader。我对boot loader的定义包含两部分:1.载入os 2. 为了让os可以正常执行所要做的硬件和软件初始化工作。

           我们经常看到boot loader这个词语用于arm引导linux,X86引导windows等等。可见一般意义上。能用上boot loader都是一些计算能力强并外挂SDRAM的SOC方案。

那我们咱们去理解内存资源有限型的嵌入式系统的启动呢?就以51为例。

           51体系SOC一般都是内置K字节级别的nor flash用于执行代码,并内置一块K级别较小的ram用于数据读写。

非常明显这样的系统跑不了linux这样的高大上的系统,那51的启动都干嘛呢?我们从程序开发流程说起:

           1)编敲代码。编译。链接成可运行文件。

一般在keil集成环境中。

           2)keil的二进制工具(类似gcc的objcopy)解释1)中的可执行文件。抽取code和data数据,生成带有载入地址的.HEX格式文件。记住是载入地址,而不是执行地址。

           3)烧写.HEX文件数据到nor flash。其依据的是文件里的载入地址。一般来说。代码段的载入地址和执行地址是一样的。这样才干在nor flash中跑起来。但是data是要放在内置ram区域才干可读写的。但是ram掉电会消失啊。所以data是先载入到nor flash的。即data的执行地址在ram区域。而载入地址在flash区域。

           4)上电复位后。启动代码会进行硬件初始化,比如时钟,看门狗,串口等等

           5)准备好栈。然后把data从载入的地方copy到ram的执行区域(链接地址)

           6)初始化好bss,然后就jump到主程序開始跑啦。

          简单的嵌入式系统一般没有os。就是上面的流程。

这样的系统的代码量一般比較小,所有放到内置的nor flash中。没有外挂的nand flash或者card。

它能够支持读写卡。可是代码仅仅放到内置的nor flash,而没有放到外置的卡中。

          其实51也能够像arm那样引导操作系统的,当然操作系统不仅对内存有要求,对CPU计算能力也有要求,所以51是不能胜任跑linux的。

可是51也能引导并跑简单的操作系统的。比如UCOS等等。仅仅有ram足够大就能够。

所以基于51的SOC系统也能够长得像S5PV210这样的SOC的系统,代码是放在外置的nand flash或者card中,那启动就要成为一个独立的模块和U启动COS、应用程序放在外置的nand中。上电的时候先通过irom来载入启动的代码到iram中,然后跑启动代码。并在启动代码中引导os。详细待见下一篇博文。

 

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117098.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 幼儿数学推理题图片_逻辑图形推理题

    幼儿数学推理题图片_逻辑图形推理题前天上幼儿园中班的侄子考了我一道题请在括号内填上正确的答案:(),(),2,4,6,7,8算了半小时都没头绪还被“羞辱”了一番:舅舅,这么简单的题都不会,还大学毕业的呢。看着侄子卖关子的表情,着实尴尬。✿赶✿紧✿想✿答✿案✿答案:(快来快来),(数一数),2,4,6,7,8!看完答案我感觉我的智商被侮辱了!气得我把我侄子“揍”了一顿如果你也没答出来千万别怀疑人生当今社会竞争那么激烈,仅仅拥有知…

  • CMD查看端口占用情况,8080端口被TIM占用了「建议收藏」

    CMD查看端口占用情况,8080端口被TIM占用了「建议收藏」CMD查看端口占用情况,8080端口被TIM占用了安装新版本dubboAdmin的时候,启动后端项目dubbo-admin-server报一下错误:org.apache.catalina.LifecycleException:Protocolhandlerstartfailed atorg.apache.catalina.connector.Connector.startInternal(Connector.java:1008) atorg.apache.catalina.util.Li

  • StackOverflow 提问艺术[通俗易懂]

    StackOverflow 提问艺术[通俗易懂]在黑客的世界里,当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。本指南将教你如何正确的提问以获得你满意的答案。https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md转载于:https://www.cnblogs.com/s…

  • 软件工程:数据流图和结构图怎么画?

    软件工程:数据流图和结构图怎么画?文章目录Step1:根据软件的功能描述,绘制数据流图:Step2:根据数据流图,分级绘制结构图:•边界划分:•第一级分解:•第二级分解:•精化减少耦合:Step1:根据软件的功能描述,绘制数据流图:问题表述:假设的仪表板将完成下述功能:(1)通过模数转换实现传感器和微处理机接口;(2)在发光二极管面板上显示数据;(3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;(4)指示加速或减速;(5)超速警告:如果车速超过55英里/小时,则发出超速警告铃声。首先了

  • 记录CTF misc之菜刀流量分析

    记录CTF misc之菜刀流量分析一、前言昨天参加了一场CTF比赛,做了一道菜刀流量分析的题目,因为之前流量分析这块不是很熟悉,加上实战CTF也比较少走了不少弯路。二、流量分析菜刀是常见的连接webshell的工具,连接webshell会有明显的GET或POST请求。所以我们只需要找数据包的HTTP请求就行了。找到第一个HTTP请求,选择追踪HTTP流,进行分析我们看到webshell就是/upload

  • intellij idea破解2019(2019年科目二考试全过程视频)

    本来看网上已经有写的不错的教程,结果用起来的时候发现有一些问题,首先是版本号的问题,另外是文件路径问题,还有就是碰到的修改hosts没有权限问题,还是想着记录一下,方便需要的童鞋使用。如果发现什么问题,请及时联系我。本文参考自:https://www.jianshu.com/p/3c87487e7121https://blog.csdn.net/qq_17213067/article/de…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号