Software design based on the underlying hardware

Introduction

This book introduces the software design based on the underlying hardware, involving the design of device drivers, the customization/transplantation of embedded real-time operating systems, and the software architecture based on the underlying hardware And other practical technologies. "Software Design Based on Low-Level Hardware" is suitable for engineering and technical personnel engaged in the design of embedded application systems, and is also an ideal textbook and reference book for the design of embedded system software and hardware and mechatronics education and training in colleges/vocational schools.

It mainly includes two aspects: one is the realization of serial/parallel/network communication and the driver of USB, ISA, PCI device/board card under common operating systems such as Windows, Linux, and VxWorks. Program design; the second is the direct basic software architecture of the embedded application system and the basic software architecture and various common embedded software based on common embedded real-time operating systems such as μC/OS, DSP/BIOS, WinCE/EXP, μCLinux and VxWorks Drive software design for peripherals/interfaces such as UART, SPI, CAN, EMAC, ADC, DAC, storage devices under the system. The book also introduces how to use CPLD/FPGA/PAC and other devices to design programmable digital/analog logic software, and then realize the required specific peripherals/interfaces and their connections and the design of FPGASoPC software and hardware coordination.

About the author

Kai Zhaoqian Kaizhaoqian (1969-), male, from Ruzhou, Henan, senior engineer of electronics and information technology. Embedded system designer/trainer. Yu Gong, has been engaged in software and hardware system and system engineering design for many years, familiar with Windows, Linux and other application programming, familiar with J2EE architecture and cross-platform programming, familiar with FPGA-SoPC software and hardware co-design, especially embedded system and its Software architecture and peripheral/interface driver design under uc/Os, uc/LinuX, WinCE, VxWorks, etc. Yu Gong, has independently published many technical articles in many domestic science and technology journals, independently edited technical books such as "Embedded System Hardware System Design", and has been engaged in the teaching of postgraduates and undergraduates in universities and the training of professional and technical personnel for many years.

Table of Contents

Chapter 1 Overview of Software Design Based on Low-Level Hardware

1.1 General Description of Low-Level Hardware Operating Software and Design

1.1 .1 Comprehensive description of the underlying hardware operating software

1.1.2 Hierarchical organization of the underlying hardware operating software

1.1.3 Operating software design based on the underlying hardware

1.1.4 Purpose and requirements of hardware operating software design

1.2 General computer low-level hardware operating software and design

1.2.1 General computer low-level hardware software overview

1.2.2 Introduction to commonly used operating systems and their device drivers

1.3 The operating software and design of the underlying hardware of the embedded system

1.3.1 Overview of the underlying hardware and software of the embedded system

1.3.2 Commonly used ERTOS and its software system design

1.3.3 Programmable logic design in embedded system

1.3.4 Consideration of embedded software system architecture Elements

Summary of this chapter

Chapter 2 Software Design of Windows Low-Level Hardware

2.1 Overview of Windows Low-Level Hardware Driver and Software Development and Design

2.1.1 Overview of Windows system structure and its underlying hardware drivers

2.1.2 Overview of Windows underlying hardware device driver software development

2.2 Development and design of Windows device driver software with WinDDK

< p>2.2.1WinDDK device driver software compilation

2.2.2WinDDK device driver compilation and construction

2.2.3WinDDK device driver inspection and verification

2.2.4 Installation/debugging of WinDDK device driver

2.2.5 Test/use of WinDDK device driver

2.3 Develop and design Windows device driver software with DriverStudio

2.3.1 Overview of DriverStudio device driver software development and design

2.3.2 DriverStudio device driver compilation and loading

2.3.3 Using DriverStidio to quickly develop device driver software

2.4 Use WinDriver to develop and design Windows device driver software

2.4.1 Overview of WinDriver device driver development tools

2.4.2 Introduction to the main WinDriver data structure and API functions

2.4.3 Use the WinDriver programming wizard to quickly develop the driver

2.4.4 Use WinDriv directly er's API function development driver

2.4.5 Distribution and application of the driver developed by WinDriver

2.5 Data transmission design through common Windows communication interface

2.5 .1 Transmit data through asynchronous serial port under Windows

2.5.2 Transmit data through parallel interface under Windows

2.5.3 Realize Ethernet network communication through Winsock programming interface

p>

The Windows driver software design for 2.6USB interface hardware devices

2.6.1USB system and its WDM-type driver structure

2.6.2USB hardware device driver application design examples

Windows driver software design for the 2.7ISA/PC104 interface board

Overview of the 2.7.1ISA/PC104 interface board and its driver design

2.7.2ISA /PC104 board hardware driver design example

Windows driver software design of 2.8PCI/CPCI interface board

2.8.1Characteristics of PCI/CPCI board hardware device driver

p>

2.8.2 Common PCI/CPCI board driver development design

2.8.3 DMA transfer PCI/CPCI board driver design

2.8.4PCI/ Calling and debugging of CPCI board driver program

Summary of this chapter

Chapter 3 Software design based on the underlying hardware of Linux operating system

3.1Linux hardware driver and its Software development and design overview

3.1.1 Overview of hardware device drivers under Linux

3.1.2 Linux hardware driver software development and design basis

3.2 Character type hardware device drivers Program software design

3.2.1 Overview of character-type hardware device drivers 101

3.2.2 Add character-type devices to the system

3.2.3 Character-type devices Driver software design examples

3.3 Driver software design for block-type hardware devices

3.3.1 Overview of block-type hardware device drivers

3.3.2 to the system Add block device

3.3.3 Block device driver design

3.4 Network hardware device driver software design

3.4.1 Network device Overview of the operating mechanism of the driver

3.4.2 The specific realization of the network device driver

3.4.3 The application design example of the network device driver

3.5 Linux hardware driver software design for common hardware

3.5.1 Asynchronous serial data transmission under Linux

3.5.2 Data transmission through parallel interface under Linux

3.5.3 Socket interface Ethernet data transmission

3.5.4Linux driver software design for USB peripherals

Linux driver design for 3.5.5ISA/PC104 board

3.5.6 Linux driver design for PCI/CPCI board< /p>

3.6 Using WinDriver to develop Linux device drivers

3.6.1 Introduction to WinDriverforLinux development tools

3.6.2 Using WinDriver to quickly develop drivers

3.6.3 Distribution and application of WinDriver driver

Summary of this chapter

Chapter 4 Software design of VxWorks underlying hardware

4.1 VxWorks underlying hardware driver and its development design Overview

4.1.1VxWorks operating system and its architecture

4.1.2VxWorks BSP and its development design

4.1.3VxWorks device driver and its development design

4.1.4 TornadoIDE and its VxWorks program design

4.2 Driver software design of character type hardware device

4.2.1 Overview of character type hardware device and its driver

4.2.2 Access process of character device driver

4.3 Block device driver design and file system operation

4.3.1 Block hardware Overview of devices and their drivers

4.3.2 Overview of file systems supported by block-type hardware devices

4.3.3 Example of writing block-type device drivers--electronic disk operation

4.4 Implementation of VxWorks data transmission for common communication interfaces

4.4.1 Transmit data through asynchronous serial port under VxWorks

4.4.2 Transmit data through parallel interface under VxWorks

p>

4.4.3 Using Socket programming interface to realize network transmission of data

4.5 VxWorks driver software design for USB interface devices

4.5.1 Overview of USB protocol stack and its driver hierarchy

Detailed explanation of the core driver USBD under 4.5.2VxWorks

USB device driver and application under 4.5.3VxWorks

VxWorks driver software for 4.6ISA/PC104 board Design

4.6.1 Overview of VxWorks driver design for ISA interface device

4.6.2 Example of driver design for ISA/PC104 board device

4.7 VxWorks driver software design for PCI/CPCI board

4.7.1 Overview of PCI/CPCI board driver design

4.7.2 PCI/CPCI board driver design example

4.8 Use WinDriver to develop VxWorks device driver

4.8.1WinDriverforVxWorks development tool introduction

>

4.8.2 Use WinDriver to develop VxWorks driver

Summary of this chapter

Chapter 5 Embedded Basic System and Direct Software Architecture of Peripheral Interface

5.1 Overview of Direct Software Architecture of Embedded Application System

5.1.1 Direct Software Architecture of Embedded Application System

5.1.2 Features of Direct Software Architecture of Embedded System

5.2 Design of the software architecture of the embedded single-chip microcomputer system

5.2.1 Overview of the software architecture of the embedded single-chip microcomputer system

5.2.2 Direct software architecture of the embedded single-chip microcomputer system

5.3 Software architecture design of embedded DSPs basic system

5.3.1 Software architecture overview of embedded DSPs system

5.3.2 Embedded DSPs system Direct Software Architecture 218

5.4 Interface Direct Drive Software Design in Embedded System

5.4.1 Overview of Embedded System Hardware Interface and Drivers

5.4. 2 Direct drive software design of common embedded interfaces

5.5 Direct drive software design of peripherals in embedded systems

5.5.1 Overview of hardware peripherals and their drives in embedded systems< /p>

5.5.2 Direct drive software design of common embedded peripherals

5.6 Driver testing of embedded system peripherals and interfaces

5.6.1 Peripherals And interface driver test overview

5.6.2 Peripheral and interface driver test software preparation

5.7 Use software architecture tools to quickly build application software platforms

5.7. 1Introduction to commonly used embedded system software architecture tools

5.7.2 Application examples of embedded system software architecture tools

Summary of this chapter

Chapter 6 Embedded μC/ OS basic system and peripheral interface software architecture

6.1μC/OS embedded real-time operating system overview

6.1.1μC/OS operating system brief introduction

6.1.2 Multi-task information flow under μC/OS

6.1.3μC/OS task scheduling and switching

6.1.4μC/OS Interrupt handling and optimization

6.1.5μC/OS software system pros and cons analysis

6.2 Embedded μC/OS basic software architecture

6.2.1μC/OS Summary of basic software system

6.2.2μC/OS C language programming

6.2.3μC/OS transplantation method and skill

6.2.3μC/OS transplantation

6.3 μC/OS transplantation of common embedded systems

6.3.1 μC/OS transplantation of SCM system

6.3.2 μC of DSPs system /OS transplantation

Peripheral/interface driver design under 6.4μC/OS

6.4.1 Overview of peripheral interface driver design

6.4.2 Typical external Design of interface driver design

File system and access under 6.5μC/OS

6.5.1μC/FS file system and its application

6.5.2EMFS File system and its application

6.6μC/OS embedded software architecture application

6.6.1 Data acquisition/transmission system software architecture

6.6.2 bus Data Acquisition Software Architecture

Chapter Summary

Chapter 7 Embedded DRTOS Basic System and Peripheral Interface Software Architecture

7.1 DRTOS Embedded Real-time Operation System overview

7.1.1 DRTOS embedded operating system overview

7.1.2 Embedded DSP/BIOS system overview

7.2 Embedded DSP/BIOS basic software system Architecture

7.2.1 Embedded DSP/BIOS software system development

7.2.2DSP/BIOS configuration tool and its use

7.2.3DSP/BIOS file And its compilation and linking

7.2.4DSP/BIOS startup sequence and bootstrapping

7.2.5DSP/BIOS software debugging and monitoring

7.3DSP/ Peripheral/interface driver software design under BIOS

7.3.1 Overview of DSP/BIOS peripheral interface driver design

7.3.2 DSP/BIOS typical I/O data transmission design

7.3.3 DSP/BIOS typical network communication operation design

7.3.4DSP/BIOS class/microdriver design

7.4 DSP/BIOS embedded software architecture application< /p>

7.4.1DSP/BIOS data acquisition system software architecture

7.4.2DSP/BIOS image processing system software architecture

7. 4.3 DSP/BIOS set-top box multi-task scheduling architecture

Summary of this chapter

Chapter 8 Embedded WinCE/XPE Basic System and Peripheral Interface Software Architecture

8.1 Overview of WinCE/XPE Embedded Operating System

8.1.1 Overview of WinXPE and Software System Development

8.1.2 Introduction to WinCE and Software System Development

8.1.3 WinCE Architecture And function overview

8.1.4 Overview of application software development under WinCE

8.2 Customized WinCE embedded basic software system

8.2.1 General design process of WinCE customization

p>

8.2.2PB/Component/WinCE and construction details

8.2.3 Simple example: Customize and run CEPC

8.3 Porting WinCE embedded real-time operating system

p>

8.3.1 Hardware requirements for WinCE operation

8.3.2WinCEBSP and development design

8.3.3WinCE boot program compilation

8.3.4WinCEOAL program

8.4WinCE device driver and its design

8.4.1WinCE device driver overview

8.4.2WinCE device driver design

8.4.3WinCE device driver design example

8.4.4 Development and test device driver

8.5WinCEUSB device driver and design

8.5.1WinCEUSB Software system overview

8.5.2 Writing WinCEUSB driver

8.5.3 Simple example: USB mouse driver

8.6WinCENDIS network device driver and design

8.6.1WinCENDIS network driver overview

8.6.2WinCE microport driver and its implementation

8.7WinCE block device driver and file system operation

8.7.1 Overview of WinCE block device driver

8.7.2 Block device system system and file system

8.7.3 Implementation of WinCE block device driver

8.8 Commonly used WinCE data communication and its realization

8.8.1 Overview of the communication model under WinCE

8.8.2WinCE serial data communication realization

8.8.3WinCE Implementation of Network Data Communication

Chapter Summary

Chapter 9 Embedded Linux Basic System and Peripheral Interface Software Architecture

9.1L Overview of inux embedded real-time operating system

9.1.1 Overview of Linux embedded operating system

9.1.2 Overview of embedded μCLinux system

Establishment of 9.2 μCLinux development environment And its transplantation

Introduction to 9.2.1μCLinux development environment

9.2.2 Establishment of μCLinux development environment

9.2.3μCLinux chip-level transplantation

9.3μCLinux device driver and design overview

9.3.1μCLinux device driver overview

9.3.2μCLinux kernel module basic framework

9.3.3Makefile file and its Basic framework

9.4μCLinux character device driver design

9.4.1 Character device driver overall architecture design

9.4.2 Related interface operation functions Code writing

9.4.3 Design of low-level interrupt and its handler

9.4.4 Compilation guide file Makefile compilation

9.4.5 Character type device driver Application call

9.5μCLinux block device driver and flash file operation

9.5.1 Embedded block driver and file operation overview

9.5.2μCLinux Block device driver design

9.5.3 Flash drive and file system operation

Network device driver and network communication of 9.6μCLinux

9.6.1μCLinux network Device driver design

9.6.2 Socket network communication based on μCLinux

Summary of this chapter

Chapter 10 Embedded VxWorks Basic System and Peripheral Interface Software Architecture

10.1 Embedded VxWorks software architecture foundation

10.1.1VxWorks architecture and device driver

10.1.2 VxWorks BSP and its development design

10.1.3 Introduction to Tornado development tool and its IDE

10.2VxWorks kernel porting and BSP software writing

10.2.1 VxWorks operating system porting process

10.2.2 S3C4510BVxWorksBSP development

10.2.3LPC2104VxWorksBSP design

10.3VxWorks character device driver software design

10.3.1 Character device driver and its design brief description

10.3.2 Character device driver software framework

10.3.3 Character device driver design application examples

10.4VxWorks block device driver and file system architecture

10.4 .1 Overview of block device driver and file system operation

10.4.2 Flash media CF card and TFFS operation

10.4.3 TFFS construction and large-capacity flash memory operation

10.5 Asynchronous serial port driver design under VxWorks

10.5.1 Overview of VxWorks asynchronous serial port driver

10.5.2 Serial port driver design process analysis

10.5.3 Example: Writing S3C2410 serial port driver

Network device driver and its implementation under 10.6VxWorks

Summary of 10.6.1VxWorks network device driver

10.6.2END device driver And its writing

10.6.3 Example: RT8139C network interface driver

Summary of this chapter

Chapter 11 Hardware Peripherals/Interfaces and Programmability of the System-on-Chip Software implementation

11.1 Overview of peripherals/interfaces and their system-on-chip software implementations

11.1.1 Software implementations of peripherals/interfaces and their system-on-chips

11.1. 2 Introduction to the application technology of hardware facilities and software implementation

11.2 Programmable implementation of common peripherals/interfaces and simple systems

11.2.1 Design of external memory modules for embedded application systems

11.2.2 Implementation of timing logic transformation of bus interface

11.2.3 Simple implementation of PLD of common peripherals/interfaces

11.2.4 Simple implementation of PLD of dedicated peripherals/interfaces Implementation

11.2.5 Simple measurement/control system programmable realization

11.3 Peripheral/interface on-chip programmable software configuration realization

11.3.1PSD outside Flexible software implementation of device/interface

11.3.2μPSD and its on-chip peripheral/interface application

11.3.3PSoC and its on-chip peripheral/interface application

< p>11.4 Programmable software design of analog hardware peripherals/interfaces

11.4.1 Introduction to ispPAC series devices and application design

11.4.2 Design of analog peripherals/interfaces with ispPAC devices 548

11.5 FPGA programmable design of specific DSP algorithm

11.5.1 Introduction to DSPBuilder and DSP design

11.5.2 Overview of SystemGenerater and DSP implementation

< p>11.5.3 FPGA implementation examples of typical DSP algorithms

11.6 FPGASoPC implementation technology of embedded system

11.6.1 Overview of commonly used FPGASoPC implementation technology

11.6.2 FPGASoPC technology application design practice

Chapter Summary

Chapter 12 Software Design Practice Based on Low-Level Hardware

12.1 Planning the Software Architecture Based on Low-Level Hardware in Project Design

12.1.1 Based on General considerations of the underlying hardware system and software architecture

12.1.2 Planning and design of the embedded application system software architecture

12.1.3 General computer communication-related device driver design

< p>12.1.4 Data communication protocol of specific application system and its formulation

12.2 Software architecture of railway turnout monitoring system

12.2.1 Project composition and main software architecture Overview of links

12.2.2 Software architecture and implementation of key subsystems

12.3 Software architecture of AC motor servo drive monitoring system 599

12.3.1 The composition of the project system and the required software architecture

12.3.2 The communication between the upper/lower software systems and their protocols

12.3.3 The software of the AC motor servo controller system Architecture

12.3.4 The structure of the upper computer data transmission communication software system

The realization of the data communication between ARM and DSPs under 12.4μLinux

12.4.1 Project system Structure and key hardware circuit composition

12.4.2 HPI interface driver design under ARMLinux

12.5 Software architecture of cross-platform communication system under embedded RTOS

12.5 .1 Overall design of ERTOS system cross-platform communication

12.5.2 Part of the code example of ERTOS cross-platform communication

12.6 FPGASoPC-based MP3 player and software architecture

12.6.1 The overall framework design of the system and its functional description

12.6.2 FPGASoPC's software and hardware co-design implementation

12.7 Recommended books for software design based on the underlying hardware

< p>Summary of this chapter

References

……

Related Articles
TOP