Article Consultation Solution Tool Course Member  
 
 
Successful Case
Continental Automotive Electronics
Bosch Automotive Electronics
Schaeffler electric drive
Joyson Automotive Electronics
Huawei Technical Center
BMW Automotive Research and Development Center
Geely Auto Research Institute
Byd Automotive Research Institute
 
 
Courses >Embedded Analysis and Design
Embedded Software Architecture Design and Examples
Views  
Mr. Zhang
He has worked as an agile coach at Huawei and Kelu for many years
 
Time Location: Shanghai 、Shenzhen and Beijing open classes Based on registration
Course Cost:1000 $/Person
Register Courses  
Internal Training: You can customize internal training according to the needs of the enterprise.


Authentication Method:
Understand the competency model before training.
Ability evaluation after training:
  • Online Examination
  • Ability Analysis, give learning suggestions
  • The qualified person shall be issued a certificate as proof of vocational skill qualification


    The idea of code layering, the design of portable code, the skills of code decoupling, the abstraction of the hardware layer, the simulation of hardware on the PC, the abstraction of the business layer, the simulation of the business layer on the PC, the automated testing of the business layer on the PC, the writing of architecture design documents, the writing of interface description documents, etc.
    This course is not only an introduction to embedded architecture design skills, but also introduces testability and maintainability design into the design. The end result is that the developed embedded software can be simulated and run on a PC and automated testing.
     
    Training Goal

    • Embedded software developed by programmers is highly portable and maintainable.
    • Automate the testing of embedded software and reduce inefficient regression testing.
    • Let designers write design documents that guide developers' work, rather than just for archiving.
    • Let's start with the work around us. Point out that most of the software is "Italy pasta" type code.
    • Derive solutions - software architecture design, continuous code optimization, and automated testing.

    Training Target: Software Architects, Software Designers, Programmers who develop embedded products.
    Student Foundation:Familiar with C language; Knowledge of at least one embedded microprocessor.
    Teaching Method: Customized Course + Case Explanation + Group Discussion, 60% Case Explanation, 40% practice exercise

    Training Content: 2 Days
    Modular programming Ideas 1、 The Core of Modular Programming
    Explains what forms of code are modular code.
    2. The idea of code layering
         (1) the idea of code layering
         (2) the hierarchical architecture recommended by embedded software
    3. some basic methods of code decoupling
         (1) encapsulation module folder
         (2) the division of program files
         (3) function encapsulation
         (4) Static function limits the scope of function
         (5) Static global variables limit the scope of variable use
         (6) Reduce the use of global variables
    Embedded layered Design 1、 Embedded Architecture Design
         (1) Development View of a Product
         (2) Avoiding Circular Dependencies
         (3) Logical View
         (4) 4+1 View Trade-off in Embedded Design Document
         (5) Measurement and Quantity of Design Document
    2. The Pursuit of Embedded Hierarchical Design - Portability
         (1) The basic idea of hardware packaging
         (2) The separation of hardware modules
    3. Hardware interface design
         (1) Extracting hardware abstraction
         (2) Writing interface documents
    Underlying hardware API encapsulation template 1、 Template structure
         (1) Definition of device hardware structure type
         (2) Device structure configuration
         (3) Macro definition of the number of devices
         (4) Global variables required for device implementation
         (5) Device function implementation code
    2. Use the old template to implement new hardware packaging
    3. Encapsulation of interrupt handling: callback function
    4, invisible encapsulation of the upper layer by the hardware multiplexing device
    5, invisible encapsulation of the upper layer by the hardware coupling device
    6, classification of templates
    The PC emulates the underlying hardware 1,The difference between the PC version and the real hardware environment
    2, the PC version test interface
    3, the PC version of the simulated interrupt interface
    4, and the PC version of the thread mutex

    Hierarchical architecture at the business layer 1、 Readability Encapsulation
    2, Extracting Business Abstraction
         (1) Principles of Abstraction
         (2) Case: Separation of Command Sending and Receiving and Command Business Processing
    3, Restrictive Encapsulation of Synchronous Communication
    4, Restrictive Encapsulation of Asynchronous Communication
    5, Encapsulation of Asynchronous Equipment into Synchronous Device
    6, Hierarchical Design Summary
    The PC simulates the operation of the business layer and automated testing 1、 Test Encapsulation
         (1) Readability Encapsulation of Test Code
         (2) Usability Encapsulation of Test Code
         (3) Device Test Piling
         (4) Interface Use Test Interface to Locate Problems
    2, Test Process
    3, Test Case Document Writing
    4, Test Case Code Writing
         (1) Use of test sleeves
         (2) Use of piling tools
         (3) The difference between testing and simulating system delay
    Test Tools 1. Automated testing tool gTest
         (1) gTest assertion
         (2) gTest test result file
    2. Piling tool mockcpp
    3. Continuous integration tool CruiseControl
         (1) What is continuous integration
         (2) How CruiseControl works
         (3) Configuration scripts for CruiseControl
       
     


    Consulting services: reverse engineering design, design modeling, and refactoring
    consultation goals Assist clients in establishing the current system design model
    Using tools to reverse engineer models
    Refactoring the current design issues.
    Scope of Consultation Programming Methods and Modeling
    Data Design Methods and Modeling
    Algorithm Design Methods and Modeling
    System Refactoring
    Consultation Method Reverse engineer the current system model
    Diagnose current design issues
    Optimize the design,
    Refactoring the design model
    Successful case An embedded system for an automotive electronics company, a monitoring system for aerospace equipment, and a claims system for an insurance company
    For more information:010-62670969, umlooo@hotmail.com