当前位置:网站首页>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
边栏推荐
- Opencv learning example code 3.2.3 image binarization
- El table table - sortable sorting & disordered sorting when decimal and% appear
- 【Redis设计与实现】第一部分 :Redis数据结构和对象 总结
- Manifest of SAP ui5 framework json
- 快过年了,心也懒了
- Pinduoduo lost the lawsuit, and the case of bargain price difference of 0.9% was sentenced; Wechat internal test, the same mobile phone number can register two account functions; 2022 fields Awards an
- Hardware development notes (10): basic process of hardware development, making a USB to RS232 module (9): create ch340g/max232 package library sop-16 and associate principle primitive devices
- 968 edit distance
- PG基础篇--逻辑结构管理(事务)
- Ravendb starts -- document metadata
猜你喜欢
随机推荐
Common English vocabulary that every programmer must master (recommended Collection)
Interviewer: what is the internal implementation of ordered collection in redis?
for循环中break与continue的区别——break-完全结束循环 & continue-终止本次循环
Spark SQL chasing Wife Series (initial understanding)
2017 8th Blue Bridge Cup group a provincial tournament
LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件
Variable star --- article module (1)
Introduction to the use of SAP Fiori application index tool and SAP Fiori tools
愛可可AI前沿推介(7.6)
ICML 2022 | Flowformer: 任务通用的线性复杂度Transformer
[MySQL] basic use of cursor
Yyds dry goods count re comb this of arrow function
SAP Fiori应用索引大全工具和 SAP Fiori Tools 的使用介绍
@Detailed differences among getmapping, @postmapping and @requestmapping, with actual combat code (all)
分糖果
No Yum source to install SPuG monitoring
Distributed ID
039. (2.8) thoughts in the ward
None of the strongest kings in the monitoring industry!
Three schemes of SVM to realize multi classification