当前位置:网站首页>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

原网站

版权声明
本文为[Full stack programmer webmaster]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207061255088764.html