当前位置:网站首页>Summary of embedded development -- General Catalog

Summary of embedded development -- General Catalog

2022-06-21 10:37:00 Longcheng deficit

New year opens a new chapter ! Prepare a series of blog posts related to embedded development , Set up a... Here FLAG.
Through this series of articles , Sort out the things you think about in the development process in recent years , It's a summary for yourself ; For developers in related fields , I hope it can help .

First, let's look at a global graph , This figure shows the whole picture of an embedded product , From hardware to system to library to upper structure . The content of this series of blog posts will also be discussed according to the structure of this figure .

The details of this picture are not important , It mainly shows all aspects involved in embedded development . Originally I wanted to tidy up Android Systematic , But it's too big and complex , May not be able to extract , And the final effect may not be much better than the above picture , So I decided not to do it . however , Here's one Android The official framework , A rough overview of advanced embedded products . source :https://developer.android.google.cn/guide/platform/

    Go on to the first picture above . This picture shows the overall thinking process of an embedded product . From top left to bottom right , A simple illustration of the diagram . The first is the general classification on the left , Including the appearance 、 Interface 、 Function and test . The appearance and interface affect the hardware plate making of the product , industrial design . For example, whether the fan is included , How many? USB Interface , Whether there is HD interface , Is the mesh port in the front or the back , Whether there is a button, etc . The design of hardware circuit board is related to the rough module composition diagram and the detailed schematic diagram , And then to more detailed PCB Map, etc. . among , The schematic diagram affects the implementation of the driver , For example, the specific bus address range ; The module composition diagram affects the design considerations of the software . Look at the function section , Split into two parts , Some of them are related to hardware , Partition storage . Embedded devices are mostly Flash For storage devices , Partitions are also unique . Partition is related to bootloader、 Storage and use of kernel and file system . For the pure software part , It involves multiple hierarchical graphs , For example, including the driver 、 Large hierarchical graph of kernel and application , A small hierarchical graph that simply contains software , And multiple subdivision diagrams to core modules . For the test part , Contains bug List processing , Test report and script design . Through this picture , The person in charge of the product can basically have a comprehensive understanding of an embedded product .

    Through the first picture above , Let's introduce the directory structure of this series of blog posts . The following is a detailed list of , And make a brief explanation .

    The main content is divided into three parts :

    The first part Basic concepts , Start with the hardware model

    This part mainly abstracts the hardware . During the actual introduction , We will ignore many details , The content is still more inclined to the perspective of program and software . In general , Introduction to hardware , On the one hand, it is for completeness ; On the other hand, it is to better explain the relationship with the program , After all, some features of the hardware cannot be completely ignored . In order to achieve this goal , Here we use the model method to introduce . So , The hardware here , Hardware circuits in non analog and digital electronics , It is hardware abstracted from the perspective of software . It is specifically divided into six sub parts :

   1 CPU Model

    Model a CPU, Analyze the problem for the later , Provide the foundation .

    See :https://blog.csdn.net/wwwyue1985/article/details/113799215

   2 Memory model

    Modeled memory , Ignore hardware details , Including what was refreshed , Control line 、 Address lines and data lines . The perspective of the program will be more obvious in this part .

    See :https://blog.csdn.net/wwwyue1985/article/details/113819179

   3 Disk model

    Model disks from a file system perspective , The following discussion is simply a complete storage area . That is, preserve the characteristics of the block , Ignore concepts such as head cylinder .

    See :https://blog.csdn.net/wwwyue1985/article/details/113829070

   4 According to the model

   GUI System model concept . Finally, it is abstracted into the concept of video memory pixels , Ignore the principle of imaging .

    See :https://blog.csdn.net/wwwyue1985/article/details/113813540

   5 Peripheral model

    Various I / O devices are abstracted as register models , Ignore the specific peripherals , What are the characteristics of .

    See :https://blog.csdn.net/wwwyue1985/article/details/113832437

   6 Integration model

    Integrate the hardware models , That is to say, they connect with each other , Make up the system model . This model will be often used in the later software and program introduction .

    See :https://blog.csdn.net/wwwyue1985/article/details/113835045

    The second part Model of software system

    The software system model is divided into operating system and application program . Operating system needless to say , And the application part will be composed according to 、 function 、 Expand 、 The architecture goes deeper step by step , Finally Android As a practical example , Make a comprehensive presentation .

   7 Operating system foundation

    The process concept will be introduced in detail 、 Memory management 、 File system implementation, etc . Final , Build the basic environment for software execution , The operating system environment , Then introduce the program . This is like a workshop , All kinds of tools are ready , Workers can use their imagination to make all kinds of practical and useful products .

   7.0 Operating system foundation

    See :https://blog.csdn.net/wwwyue1985/article/details/114552074

   7.1 The operating system is also a program

    See :https://blog.csdn.net/wwwyue1985/article/details/114643339

   7.2 interrupt

    See :https://blog.csdn.net/wwwyue1985/article/details/119452789

   8 Composition of procedure

    Static analysis of the program itself , Including data area 、 Code section 、 Variable storage and object code generation 、 Executable documents, etc .

    Start with this part , We will combine the previous basic content about operating system , To show the previous life and afterlife of the program , Show a live program in memory , Let readers see the dynamic program running from another angle .

    First , Let's dissect a program statically , Look at those things in it .

    Use PC(Windows/macOS) Or mobile terminals (Android/iPhone) People who , To run a program , Just double click the program icon with the mouse or touch the screen and click the application icon , Very convenient . Need to know , When there was no graphical desktop system in the early days , To run a program on a computer , It needs to be completed through command line and other methods . Compare the two methods , That's easy to use , It can be decided . But either way , The program is still the original program , Their composition has not changed in essence , Because the composition model of the computer has not changed fundamentally .

    From the code in character form to the process running in the system , The program can be said to be a gorgeous turn out of the cocoon . A program written in a high-level language , After the analysis and processing of the compiler , Switch over again , After the assembly and processing of the connector , Machine code that eventually becomes executable ( It is also binary code in essence ). Once running , They will act as a process , Managed by the operating system , meanwhile , Operating system dependent virtual memory mechanism , Using an adequate memory space , Until active or passive termination . In this part , Let's see how this turn is done .

    One of the components of the program

    See :https://blog.csdn.net/wwwyue1985/article/details/119972252

    The second part of the procedure

    See :https://blog.csdn.net/wwwyue1985/article/details/119972418

    The third part of the procedure

    See :https://blog.csdn.net/wwwyue1985/article/details/119972548

   9 Analysis of program operation

    With the executable analysis in the previous section , This section analyzes the scenarios of the operation process from multiple perspectives .

    See :https://blog.csdn.net/wwwyue1985/article/details/119897048

   10 Composition and extension of large programs

    Discuss static libraries 、 Dynamic library 、 Plug-in mechanism, etc .

   11 Software architecture discussion

    This is a big topic . The architecture itself is not discussed here , It is to sort out some thoughts related to architecture . When you understand the process of program construction , It is necessary to consider the design and implementation of large-scale systems from a higher perspective . We have an operating system foundation , With the foundation of program construction , It's like having cement and steel , Brick, stone and all kinds of machinery , Know how to build a house with these . But that doesn't mean we can build tall buildings , It can only be said that it is possible . Maybe it's just the foundation , Doesn't mean you can , The two are problems at different levels . The architecture here is like a drawing , It also needs research and analysis . Specific to the procedure , It's about algorithms 、 The interface function 、 class 、 package 、 modular 、 Design mode, etc . This is a complex and comprehensive problem , No standard answer , It takes experience , Need the feeling of design .

   11.1 Software architecture discussion

    See :https://blog.csdn.net/wwwyue1985/article/details/119617817

   11.2 The pain of architectural thinking

    See :https://blog.csdn.net/wwwyue1985/article/details/119684971

   12 Android The example analysis

    With Android As an example , Combined with software architecture content , Continue with complex scenario analysis , Make the integration model of the software part . The reason for choosing Android, I think Android Is a unique model . On the one hand, it is open source , We can analyze it at many levels , Instead of suffering from no source code , Can only guess ; On the other hand , It is an excellent example , Living examples , in other words , As a commercial application system , It is meaningful to analyze it , Can learn real things , And don't worry too much about whether the analyzed things have been tested by practice .

    Maybe it will cut to Hongmeng ? Who knows what will happen in the future !

    The third part Open source software

    Now that it's about Android, Let's talk about open source software . Compared with early programmers , Today's programmers can say that they are much happier , No matter what software you are interested in , You can always find some related open source systems on the Internet for you to study , Not like before , The code of many systems is hidden , For fear of leaking out , There is no material to learn if you want to study . But things always have two sides , Although rich in resources , But the code has also become complex and huge , A lot of software has grown up , A few hundred thousand at a time 、 Millions of rows , Even if a person doesn't eat or drink , I can't see much . This situation , Do we not have to study ? Of course not. . Learn or learn , Just the way of learning needs to change , therefore , This part briefly discusses this .

   13 The theme 1-- On open source software

    Open source software , Is it a trap or a pie ? Let's talk about our views .

    Finished sorting , Refer to my blog 《 My view on open source 》

    https://blog.csdn.net/wwwyue1985/article/details/112427321

   14 The theme 2-- Code reading

    How to read open source software code , Avoid falling into the ocean of code . It mainly discusses the problem of methodology .

    Finished sorting , Refer to my blog   《 Talk about how to read the source code 》

   https://blog.csdn.net/wwwyue1985/article/details/112726423

   15 The theme 3— The example analysis

    Just Android Some typical modules used in , Talk about open source software in Android Use of , You can see Android The size of the system , You can also see Android Small of the system .

   16  Capricious point of view

    Feel free to send some regrets , So you can look at it casually , Or casually .

    See :https://blog.csdn.net/wwwyue1985/article/details/114500864

    Last , I will list some useful books I have read , For your reference .

   

    At present, this directory structure has not been divorced from the narrow program horizon . Looking at the development of software industry , Whether it's a hardware module 、 Software language or actual product , Are moving to a higher level of abstraction . Slave program 、 product 、 System 、 The system products are gradually improved , To platform 、 Intelligent development ; from OS To Cloud, virtualization , Containers , Cluster, etc CPU、 Memory 、 Network and other abstractions are regarded as computing 、 Storage 、 Transfer resources , Realize the further breakthrough and development of software . These new technologies are proposed to solve new problems , These new solutions , Actually realize the thought , A new chapter can be sorted out , From cell to ecosystem .

    On this subject , I have also compiled a piece of blog , But the name is no longer called from cell to ecosystem ^_^, It is 《 One article will big data 、 Cloud computing 、 The Internet of things 、5G( Mobile network )、 Artificial intelligence and other latest technologies 》

   https://blog.csdn.net/wwwyue1985/article/details/113702766

原网站

版权声明
本文为[Longcheng deficit]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202221440142806.html