当前位置:网站首页>Start the embedded room: system startup with limited resources
Start the embedded room: system startup with limited resources
2022-07-06 21:13:00 【Full stack programmer webmaster】
Hello everyone , I meet you again , I'm the king of the whole stack .
Start a program , It is electrically reset on the chip , To carry out , The block is independent of the operating system . Because the operating system needs to be loaded and booted by starting this module . So the English term of startup is boot loader. I am right. boot loader The definition of consists of two parts :1. load os 2. In order to make os It can perform the hardware and software initialization work normally .
We often see boot loader This word is used for arm guide linux,X86 guide windows wait . It can be seen that in a general sense . Can be used boot loader Are some strong computing power and plug-ins SDRAM Of SOC programme .
Let's understand the startup of embedded systems with limited memory resources ? So 51 For example .
51 system SOC Generally, it is built-in K Byte level nor flash Used to execute code , And built in a piece K Lower level ram For data reading and writing .
Obviously, such a system cannot run linux Such a tall system , that 51 What are you doing when you start ? Let's start with the program development process :
1) Code . compile . Link to a runnable file .
Generally in keil In the integrated environment .
2)keil Binary tools for ( similar gcc Of objcopy) explain 1) The executable in . extract code and data data , Generate with load address .HEX Format file . Remember the loading address , Not the execution address .
3) burning .HEX File data to nor flash. It is based on the loading address in the file . Generally speaking . The loading address and execution address of the code segment are the same . Only in this way can we nor flash Run up . however data It should be placed in the built-in ram The area can be read and written . however ram Power will disappear . therefore data Is to load into nor flash Of . namely data The execution address of is ram Area . The loading address is flash Area .
4) After power on reset . The boot code initializes the hardware , Like the clock , watchdog , Serial port and so on
5) Ready stack . And then put data From where it was loaded copy To ram Execution area of ( Link address )
6) Initialize well bss, And then jump The main program starts running .
Simple embedded systems generally do not os. It's the above process .
The amount of code of such a system is generally small , Put all in the built-in nor flash in . There is no plug-in nand flash perhaps card.
It can support read-write cards . But the code is only put into the built-in nor flash, Instead of putting it into an external card .
Actually 51 Can also be like arm Boot the operating system like that , Of course, the operating system not only requires memory , Yes CPU Computing power is also required , therefore 51 Is not competent to run linux Of .
But 51 It can also guide and run a simple operating system . such as UCOS wait . Only ram Big enough to .
So based on the 51 Of SOC The system can also look like S5PV210 In this way SOC The system of , The code is placed externally nand flash perhaps card in , Then the startup should become an independent module and U start-up COS、 The application is placed outside nand in . When powered on, first pass irom To load the startup code to iram in , Then run the startup code . And boot in the startup code os. See the next blog post for details .
Copyright notice : This article is the original article of the blogger , Blog , Do not reprint without permission .
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/117098.html Link to the original text :https://javaforall.cn
边栏推荐
- HMS Core 机器学习服务打造同传翻译新“声”态,AI让国际交流更顺畅
- How to implement common frameworks
- Aiko ai Frontier promotion (7.6)
- How do I remove duplicates from the list- How to remove duplicates from a list?
- @Detailed differences among getmapping, @postmapping and @requestmapping, with actual combat code (all)
- [in depth learning] pytorch 1.12 was released, officially supporting Apple M1 chip GPU acceleration and repairing many bugs
- KDD 2022 | 通过知识增强的提示学习实现统一的对话式推荐
- No Yum source to install SPuG monitoring
- OSPF多区域配置
- 性能测试过程和计划
猜你喜欢

ICML 2022 | Flowformer: 任务通用的线性复杂度Transformer

1500万员工轻松管理,云原生数据库GaussDB让HR办公更高效

1_ Introduction to go language

SAP UI5 框架的 manifest.json

基于STM32单片机设计的红外测温仪(带人脸检测)

Manifest of SAP ui5 framework json
![[200 opencv routines] 220 Mosaic the image](/img/75/0293e10ad6de7ed86df4cacbd79b54.png)
[200 opencv routines] 220 Mosaic the image

愛可可AI前沿推介(7.6)

硬件开发笔记(十): 硬件开发基本流程,制作一个USB转RS232的模块(九):创建CH340G/MAX232封装库sop-16并关联原理图元器件

ICML 2022 | flowformer: task generic linear complexity transformer
随机推荐
js通过数组内容来获取数组下标
KDD 2022 | 通过知识增强的提示学习实现统一的对话式推荐
性能测试过程和计划
039. (2.8) thoughts in the ward
PG基础篇--逻辑结构管理(事务)
R language visualizes the relationship between more than two classification (category) variables, uses mosaic function in VCD package to create mosaic plots, and visualizes the relationship between tw
Ravendb starts -- document metadata
Is this the feeling of being spoiled by bytes?
Reference frame generation based on deep learning
el-table表格——获取单击的是第几行和第几列 & 表格排序之el-table与sort-change、el-table-column与sort-method & 清除排序-clearSort
华为设备命令
Vim 基本配置和经常使用的命令
3D face reconstruction: from basic knowledge to recognition / reconstruction methods!
代理和反向代理
Swagger UI教程 API 文档神器
2022菲尔兹奖揭晓!首位韩裔许埈珥上榜,四位80后得奖,乌克兰女数学家成史上唯二获奖女性
How do I remove duplicates from the list- How to remove duplicates from a list?
Variable star --- article module (1)
New database, multidimensional table platform inventory note, flowus, airtable, seatable, Vig table Vika, Feishu multidimensional table, heipayun, Zhixin information, YuQue
Manifest of SAP ui5 framework json