Vi Điều Khiển STM32F103 và Hệ Thống Nhúng Sử Dụng Assembly và C

Khám phá vi điều khiển STM32F103 và hệ thống nhúng qua tài liệu của Muhammad Ali Mazidi và các tác giả khác. Tìm hiểu kiến thức chuyên sâu.

Trường đại học

BIHE University

Người đăng

Ẩn danh

Thể loại

sách

2021

543
8
0

Phí lưu trữ

135 Point

Mục lục chi tiết

Preface

1. Chapter 1: The History of Arm and Microcontrollers

1.1. Section 1.1: Introduction to Microcontrollers

1.2. Section 1.2: The Arm Family History

1.3. Section 1.3: STM32 Family

1.4. Problems

1.5. Answers to Review Questions

2. Chapter 2: Arm Architecture and Assembly Language Programming

2.1. Section 2.1: The General Purpose Registers in the Arm

2.2. Section 2.2: The Arm Memory Map

2.3. Section 2.3: Load and Store Instructions in Arm

2.4. Section 2.4: Arm CPSR (Current Program Status Register)

2.5. Section 2.5: Arm Data Formats and Assembler Directives

2.6. Section 2-6: Assembler data allocation directives

2.7. Section 2.7: Introduction to Arm Assembly Programming

2.8. Section 2.8: Creating an Arm Assembly Program

2.9. Section 2.9: The Program Counter and Program Memory Space in the Arm

2.10. Section 2.10: Some Arm Addressing Modes

2.11. Section 2.11: Pipelining and Harvard Architecture in Arm

2.12. Section 2.12: RISC Architecture in Arm

2.13. Problems

2.14. Answers to Review Questions

3. Chapter 3: Arithmetic and Logic Instructions and Programs

3.1. Section 3.1: Arithmetic Instructions

3.2. Section 3.2: Logic Instructions

3.3. Section 3.3: Shift and Rotate Instructions

3.4. Section 3.4: Rotate and Shift in Data Processing Instructions (Case Study)

3.5. Section 3.5: BCD and ASCII Conversion

3.6. Problems

3.7. Answers to Review Questions

4. Chapter 4: Branch, Call, and Looping in Arm

4.1. Section 4.1: Looping and Branch Instructions

4.2. Section 4.2: Calling Subroutine with BL

4.3. Section 4.3: Time Delay

4.4. Section 4-5: Exploring the Startup File

4.5. Problems

4.6. Answers to Review Questions

5. Chapter 5: Signed Integer Numbers Arithmetic

5.1. Section 5.1: Signed Numbers Concept

5.2. Section 5.2: Signed Number Instructions and Operations

5.3. Section 5.3: Signed Number Comparison

5-4. Section 5-4: Sign Extension

5.5. Problems

5.6. Answers to Review Questions

6. Chapter 6: Arm Addressing Modes

6.1. Section 6.1: Arm Memory Access

6.2. Section 6.2: Advanced Indexed Addressing Modes

6.3. Section 6.3: ADR, LDR, and PC Relative Addressing

6.4. Section 6.4: Arm Bit-Addressable Memory Region

6.5. Problems

6.6. Answers to Review Questions

7. Chapter 7: C for Embedded Systems

7.1. Section 7.1: C Data types for Embedded systems

7.2. Section 7.2: Bit-wise Operations in C

7.3. Problems

7.4. Answer to Review Questions

8. Chapter 8: STM32F103 I/O Programming

8.1. Section 8.1: I/O Port Programming in STM32F1xx

8.2. Section 8.2: Seven-segment LED interfacing and programming

8.3. Section 8.3: Clock sources, Reset, and Power Supply Pins in STM32F10x

8.4. Section 8.4: GPIO Programming in Assembly Language

8.5. Problems

8.6. Answer to Review Questions

9. Chapter 9: LCD and Keyboard Interfacing

9.1. Section 9.1: Interfacing to an LCD

9.2. Section 9.2: Interfacing the Keyboard to the CPU

9.3. Problems

9.4. Answers to Review Questions

10. Chapter 10: UART Serial Port Programming

10.1. Section 10.1: Basics of Serial Communication

10.2. Section 10.2: Programming UART Ports

10.3. Problems

10.4. Answer to Review Questions

11. Chapter 11: STM32 ARM Timer Programming

11.1. Section 11.0: Introduction to counters and timers

11.2. Section 11.1: System Tick Timer

11.3. Section 11.2: Delay Generation with STM32 Timers

11.4. Section 11.3: Output Compare and TIM Channels

11.5. Section 11.4: Using Timer for Input Capturing

11.6. Section 11.5: Using Timer as a Counter

11.7. Problems

11.8. Answers to Review Questions

12. Chapter 12: Interrupt and Exception Programming

12.1. Section 12.1: Interrupts and Exceptions in ARM Cortex-M

12.2. Section 12.2: SysTick Programming and Interrupt

12.3. Section 12.3: STM32 I/O Port Interrupt Programming

12.4. Section 12.4: USART Serial Port Interrupt Programming

12.5. Section 12.5: Timer Interrupt Programming

12.6. Section 12.6: Interrupt Priority, nested interrupts, and latency

12.7. Section 12.7: ARM Cortex-M Processor Modes

12.8. Problems

12.9. Answer to Review Questions

13. Chapter 13: ADC, DAC, and Sensor Interfacing

13.1. Section 13.1: ADC Characteristics

13.2. Section 13.2: ADC Programming with STM32F1xx

13.3. Section 13.3: Sensor Interfacing and Signal Conditioning

13.4. Section 13.4: DAC Programming

13.5. Problems

13.6. Answers to Review Questions

14. Chapter 14: Relay, Optoisolator, and Stepper Motor Interfacing

14.1. Section 14.1: Relays and Optoisolators

14.2. Section 14.2: Stepper Motor Interfacing

14.3. Problems

14.4. Answers to Review Questions

15. Chapter 15: PWM and DC Motor Control

15.1. Section 15.1: DC Motor Interfacing and PWM

15.2. Section 15.2: Programming PWM in STM32

15.3. Section 15.3: DC Motor Control Using PWM

15.4. Problems

15.5. Answers to Review Questions

16. Chapter 16: I2C Protocol and RTC Interfacing

16.1. Section 16.1: I2C Bus Protocol

16.2. Section 16.2: I2C Programming in STM32F10x

16.3. Section 16.3: DS3231 RTC Interfacing and Programming

16.4. Problems

16.5. Answers to Review Questions

17. Chapter 17: SPI Protocol and Devices

17.1. Section 17.1: SPI Bus Protocol

17.2. Section 17.2: SPI programming in STM32

17.3. Section 17.3: MAX7219/MAX7221 SPI 7-Segment Driver

17.4. Problems

17.5. Answers to Review Questions

18. Chapter 18: Programming Graphic LCD

18.1. Section 18.1: Graphic LCDs

18.2. Section 18.2: Displaying Texts on Graphic LCDs

18.3. Problems

18.4. Answers to Review Questions

19. Chapter 19: Direct Memory Access (DMA)

19.1. Section 19.1: Introduction to DMA

19-2. Section 19-2: DMA in STM32F10x

19.3. Problems

19.4. Answers to Review Questions

Appendix A: ARM Cortex-M3 Instruction Description

A.1. Section A.1: List of ARM Cortex-M3 Instructions

A.2. Section A.2: ARM Instruction Description

Appendix B: ARM Assembler Directives

B.1. Section B.1: List of ARM Assembler Directives

B.2. Section B.2: Description of ARM Assembler Directives

Appendix C: Macros

C.1. What is a macro and how is it used?

C.2. Macros vs. subroutines

Appendix D: Passing Arguments into Functions

D.1. D.1: Passing arguments through registers

D.2. D.2: Passing through memory using references

D.3. D.3: Passing arguments through stack

D.4. D.4: AAPCS (ARM Application Procedure Call Standard)

Appendix E: ASCII Codes

Appendix F: Advanced C Programming

F.1. Section F.1: Preprocessor Directives

F.2. Section F.2: Manipulating Registers Using Defined Bit Names

Appendix G: Flowcharts and Pseudo-code (Web)

Appendix H: IC Interfacing and System Design Issues (Web)

Tóm tắt

I. Hướng Dẫn Tổng Quan Về Vi Điều Khiển STM32F103

Vi điều khiển STM32F103 là một trong những dòng vi điều khiển phổ biến nhất trong hệ thống nhúng. Với kiến trúc ARM Cortex-M3, nó cung cấp hiệu suất cao và tiêu thụ năng lượng thấp. Việc hiểu rõ về cấu trúc và tính năng của STM32F103 là rất quan trọng cho việc phát triển ứng dụng nhúng. Bài viết này sẽ cung cấp cái nhìn tổng quan về vi điều khiển này và ứng dụng của nó trong các hệ thống nhúng.

1.1. Giới Thiệu Về Vi Điều Khiển STM32F103

Vi điều khiển STM32F103 thuộc dòng STM32 của STMicroelectronics, nổi bật với khả năng xử lý nhanh và linh hoạt. Nó được sử dụng rộng rãi trong các ứng dụng từ công nghiệp đến tiêu dùng.

1.2. Các Tính Năng Nổi Bật Của STM32F103

STM32F103 có nhiều tính năng như bộ nhớ flash lớn, nhiều cổng I/O, và hỗ trợ giao tiếp I2C, SPI. Những tính năng này giúp nó trở thành lựa chọn lý tưởng cho các dự án nhúng.

II. Những Thách Thức Khi Sử Dụng Vi Điều Khiển STM32F103

Mặc dù STM32F103 mang lại nhiều lợi ích, nhưng cũng tồn tại một số thách thức trong quá trình phát triển. Việc làm quen với môi trường lập trình và các công cụ phát triển có thể gây khó khăn cho người mới bắt đầu. Bài viết này sẽ phân tích những thách thức chính và cách khắc phục chúng.

2.1. Khó Khăn Trong Lập Trình STM32

Lập trình STM32 yêu cầu kiến thức vững về ngôn ngữ C và các khái niệm về lập trình nhúng. Việc thiếu kinh nghiệm có thể dẫn đến lỗi trong quá trình phát triển.

2.2. Vấn Đề Tương Thích Phần Mềm

Một số phần mềm phát triển có thể không tương thích hoàn toàn với STM32F103, gây khó khăn trong việc biên dịch và chạy chương trình.

III. Phương Pháp Lập Trình Vi Điều Khiển STM32F103 Hiệu Quả

Để lập trình hiệu quả cho STM32F103, cần áp dụng các phương pháp và công cụ phù hợp. Việc sử dụng IDE như Keil hoặc STM32CubeIDE có thể giúp đơn giản hóa quá trình phát triển. Bài viết này sẽ giới thiệu các phương pháp lập trình hiệu quả.

3.1. Sử Dụng STM32CubeIDE

STM32CubeIDE là một công cụ phát triển tích hợp giúp lập trình viên dễ dàng tạo và quản lý dự án cho STM32F103. Nó cung cấp giao diện thân thiện và nhiều tính năng hữu ích.

3.2. Tối Ưu Hóa Mã Lập Trình

Tối ưu hóa mã lập trình giúp cải thiện hiệu suất và giảm thiểu tiêu thụ năng lượng. Việc sử dụng các thư viện và hàm có sẵn có thể giúp tiết kiệm thời gian phát triển.

IV. Ứng Dụng Thực Tiễn Của Vi Điều Khiển STM32F103

Vi điều khiển STM32F103 được ứng dụng rộng rãi trong nhiều lĩnh vực như tự động hóa, điều khiển thiết bị, và IoT. Bài viết này sẽ khám phá một số ứng dụng thực tiễn nổi bật của STM32F103.

4.1. Ứng Dụng Trong Tự Động Hóa

STM32F103 được sử dụng trong các hệ thống tự động hóa như điều khiển động cơ và cảm biến. Nó giúp cải thiện hiệu suất và độ chính xác của hệ thống.

4.2. Ứng Dụng Trong IoT

Với khả năng kết nối và giao tiếp, STM32F103 là lựa chọn lý tưởng cho các ứng dụng IoT, cho phép thu thập và truyền tải dữ liệu từ xa.

V. Kết Luận Về Vi Điều Khiển STM32F103 và Tương Lai

Vi điều khiển STM32F103 không chỉ là một công cụ mạnh mẽ cho lập trình viên mà còn mở ra nhiều cơ hội trong phát triển công nghệ. Tương lai của STM32F103 hứa hẹn sẽ còn phát triển hơn nữa với sự gia tăng của các ứng dụng nhúng và IoT.

5.1. Tương Lai Của Công Nghệ Nhúng

Công nghệ nhúng sẽ tiếp tục phát triển mạnh mẽ, và STM32F103 sẽ đóng vai trò quan trọng trong việc thúc đẩy sự đổi mới trong lĩnh vực này.

5.2. Cơ Hội Phát Triển Cho Lập Trình Vi Điều Khiển

Với sự gia tăng nhu cầu về các giải pháp nhúng, lập trình viên có cơ hội lớn để phát triển kỹ năng và tạo ra các sản phẩm sáng tạo.

10/07/2025

Trích đoạn nội dung tài liệu

The STM32F103 Arm Microcontroller and Embedded Systems Using Assembly and C First Edition Muhammad Ali Mazidi Sepehr Naimi Sarmad Naimi Naimi & Mazidi books Copyright © 2019-2021 Arm, Cortex, Keil, and uVision are registered trade mark of Arm Limited. Copyright © 2019-2021 Sepehr Naimi, Muhammad Ali Mazidi, and Sarmad Naimi No part of this book should be reproduced, stored in retrieval system, transmitted in any form or by any means, electronics, mechanical, photocopy, recording, web distribution, or likewise. To contact authors, use the following email addresses: Sepehr.com mazidibooks@gmail.com Visit our website at https://NicerLand.com ISBN-13: 978-1-970054-01-9 ISBN-10: 1-970054-01-8 2 "Regard man as a mine rich in gems of inestimable value. Education can, alone, cause it to reveal its treasures, and enable mankind to benefit therefrom." Baha'u'llah 3 Dedication To the faculty, staff, and students of BIHE university for their dedication and steadfastness.

4 Table of Contents Preface 10 Chapter 1: The History of Arm and Microcontrollers 11 Section 1.1: Introduction to Microcontrollers 11 Section 1.2: The Arm Family History 14 Section 1.3: STM32 Family 21 Problems 23 Answers to Review Questions 24 Chapter 2: Arm Architecture and Assembly Language Programming 25 Section 2.1: The General Purpose Registers in the Arm 25 Section 2.2: The Arm Memory Map 30 Section 2.3: Load and Store Instructions in Arm 33 Section 2.4: Arm CPSR (Current Program Status Register) 40 Section 2.5: Arm Data Formats and Assembler Directives 44 Section 2-6: Assembler data allocation directives 49 Section 2.7: Introduction to Arm Assembly Programming 55 Section 2.8: Creating an Arm Assembly Program 57 Section 2.9: The Program Counter and Program Memory Space in the Arm 60 Section 2.10: Some Arm Addressing Modes 62 Section 2.11: Pipelining and Harvard Architecture in Arm 64 Section 2.12: RISC Architecture in Arm 66 Problems 69 Answers to Review Questions 72 Chapter 3: Arithmetic and Logic Instructions and Programs 76 Section 3.1: Arithmetic Instructions 76 Section 3.2: Logic Instructions 87 Section 3.3: Shift and Rotate Instructions 91 Section 3.4: Rotate and Shift in Data Processing Instructions (Case Study) 95 Section 3.5: BCD and ASCII Conversion 97 Problems 100 Answers to Review Questions 102 5 Chapter 4: Branch, Call, and Looping in Arm 104 Section 4.1: Looping and Branch Instructions 104 Section 4.2: Calling Subroutine with BL 120 Section 4.3: Time Delay 125 Section 4.4: Stack in Arm Cortex 129 Section 4-5: Exploring the Startup File 134 Problems 136 Answers to Review Questions 139 Chapter 5: Signed Integer Numbers Arithmetic 141 Section 5.1: Signed Numbers Concept 141 Section 5.2: Signed Number Instructions and Operations 146 Section 5.3: Signed Number Comparison 150 Section 5-4: Sign Extension 152 Problems 156 Answers to Review Questions 157 Chapter 6: Arm Addressing Modes 158 Section 6.1: Arm Memory Access 158 Section 6.2: Advanced Indexed Addressing Modes 171 Section 6.3: ADR, LDR, and PC Relative Addressing 180 Section 6.4: Arm Bit-Addressable Memory Region 182 Problems 187 Answers to Review Questions 189 Chapter 7: C for Embedded Systems 191 Section 7.1: C Data types for Embedded systems 191 Section 7.2: Bit-wise Operations in C 197 Problems 202 Answer to Review Questions 203 Chapter 8: STM32F103 I/O Programming 204 Section 8.1: I/O Port Programming in STM32F1xx 204 Section 8.2: Seven-segment LED interfacing and programming 216 Section 8.3: Clock sources, Reset, and Power Supply Pins in STM32F10x 220 Section 8.4: GPIO Programming in Assembly Language 224 6 Problems 230 Answer to Review Questions 231 Chapter 9: LCD and Keyboard Interfacing 232 Section 9.1: Interfacing to an LCD 232 Section 9.2: Interfacing the Keyboard to the CPU 246 Problems 252 Answers to Review Questions 253 Chapter 10: UART Serial Port Programming 255 Section 10.1: Basics of Serial Communication 255 Section 10.2: Programming UART Ports 263 Problems 277 Answer to Review Questions 277 Chapter 11: STM32 ARM Timer Programming 279 Section 11.0: Introduction to counters and timers 279 Section 11.1: System Tick Timer 281 Section 11.2: Delay Generation with STM32 Timers 287 Section 11.3: Output Compare and TIM Channels 295 Section 11.4: Using Timer for Input Capturing 304 Section 11.5: Using Timer as a Counter 310 Problems 314 Answers to Review Questions 315 Chapter 12: Interrupt and Exception Programming 317 Section 12.1: Interrupts and Exceptions in ARM Cortex-M 317 Section 12.2: SysTick Programming and Interrupt 325 Section 12.3: STM32 I/O Port Interrupt Programming 327 Section 12.4: USART Serial Port Interrupt Programming 334 Section 12.5: Timer Interrupt Programming 337 Section 12.6: Interrupt Priority, nested interrupts, and latency 339 Section 12.7: ARM Cortex-M Processor Modes 343 Problems 346 Answer to Review Questions 347 Chapter 13: ADC, DAC, and Sensor Interfacing 349 7 Section 13.1: ADC Characteristics 349 Section 13.2: ADC Programming with STM32F1xx 354 Section 13.3: Sensor Interfacing and Signal Conditioning 364 Section 13.4: DAC Programming 368 Problems 371 Answers to Review Questions 372 Chapter 14: Relay, Optoisolator, and Stepper Motor Interfacing 374 Section 14.1: Relays and Optoisolators 374 Section 14.2: Stepper Motor Interfacing 380 Problems 387 Answers to Review Questions 388 Chapter 15: PWM and DC Motor Control 389 Section 15.1: DC Motor Interfacing and PWM 389 Section 15.2: Programming PWM in STM32 397 Section 15.3: DC Motor Control Using PWM 408 Problems 410 Answers to Review Questions 411 Chapter 16: I2C Protocol and RTC Interfacing 412 Section 16.1: I2C Bus Protocol 412 Section 16.2: I2C Programming in STM32F10x 420 Section 16.3: DS3231 RTC Interfacing and Programming 430 Problems 438 Answers to Review Questions 439 Chapter 17: SPI Protocol and Devices 440 Section 17.1: SPI Bus Protocol 440 Section 17.2: SPI programming in STM32 443 Section 17.3: MAX7219/MAX7221 SPI 7-Segment Driver 450 Problems 458 Answers to Review Questions 459 Chapter 18: Programming Graphic LCD 460 Section 18.1: Graphic LCDs 460 Section 18.2: Displaying Texts on Graphic LCDs 465 8 Problems 472 Answers to Review Questions 473 Chapter 19: Direct Memory Access (DMA) 474 Section 19.1: Introduction to DMA 474 Section 19-2: DMA in STM32F10x 476 Problems 484 Answers to Review Questions 485 Appendix A: ARM Cortex-M3 Instruction Description 486 Section A.1: List of ARM Cortex-M3 Instructions 486 Section A.2: ARM Instruction Description 489 Appendix B: ARM Assembler Directives 523 Section B.1: List of ARM Assembler Directives 523 Section B.2: Description of ARM Assembler Directives 523 Appendix C: Macros 528 What is a macro and how is it used? 528 Macros vs. subroutines 531 Appendix D: Passing Arguments into Functions 532 D.1: Passing arguments through registers 532 D.2: Passing through memory using references 532 D.3: Passing arguments through stack 533 D.4: AAPCS (ARM Application Procedure Call Standard) 534 Appendix E: ASCII Codes 536 Appendix F: Advanced C Programming 537 Section F.1: Preprocessor Directives 537 Section F.2: Manipulating Registers Using Defined Bit Names 540 Appendix G: Flowcharts and Pseudo-code (Web) Appendix H: IC Interfacing and System Design Issues (Web) See the following website to download the chapters which are labeled as “(Web)”: https://NicerLand.com 9 Preface The Arm processor is becoming the dominant CPU architecture in the computer industry. It is already the leading architecture in cell phones and tablet computers. With such a large number of companies producing Arm chips, it is certain that the architecture will move to the laptop, desktop and high-performance computers presently dominated by x86 architecture from Intel and AMD.

Currently the PIC and AVR microcontrollers dominate the 8-bit microcontroller market. The Arm architecture will have a major impact in this area too as designers become more familiar with its architecture. This book is intended as an introduction to STM32F103 Arm programming. To write programs for Arm microcontrollers, you need to know both Assembly and C languages.

Chapters 2 to 6 cover the Arm Assembly language. However, Chapter 6 contains more advanced topics and you can skip it if you like. Some general topics about embedded C programming are covered in Chapter 7. Then, the peripheral programming of the STM32F103 chip is discussed in Chapters 7 to 19.

You will learn interfacing to some real-world devices such as LCD, Keypad, Motor, 7-segment, relay, and sensors, as well. Prerequisites We assume no prior background in assembly language programming with other CPUs. But a basic knowledge of C programming is required. We also urge you to study Chapter 0 covering the fundamentals of digital systems such as hexadecimal numbers, various types of memory, memory and I/O interfacing, bus designing, and memory address decoding.

Chapter 0 is available free of charge on our website (https://NicerLand. Trainer board This book covers the STM32F103 microcontrollers and you can use any trainer boards with STM32F10x chips. But the Blue Pill board can be a very good choice. Since they are low priced and widely available around the world.

The pins are labeled on the board, as well. Keil tutorials We have used the Keil Compiler for the programs throughout this book. See our website (www.com) for the Keil step-by-step tutorial. You can freely download the Keil IDE and use it for programs which are less than 32KB.

Power Point, Source codes, and other materials The source codes, lab manuals, and Power points of the book are available on the website (https://NicerLand. If you are a professor using this book for a university course you can contact us to receive the solutions to the end-of-chapter problems. 10 Chapter 1: The History of Arm and Microcontrollers In Section 1.1 we look at the history of microcontrollers then we introduce some of the available microcontrollers. The history of Arm is provided in Section 1.1: Introduction to Microcontrollers The evolution of Microprocessors and Microcontrollers In early computers, CPUs were designed using a number of vacuum tubes.

The vacuum tube was bulky and consumed a lot of electricity. The invention of transistors, followed by the IC (Integrated Circuit), provided the means to put a CPU on printed circuit boards. The advances in IC technology allowed putting the entire CPU on a single IC chip. This IC was called a microprocessor.

Some of the microprocessors are the x86 family of Intel used widely in desktop computers, and the 68000 of Motorola. The microprocessors do not contain RAM, ROM, or I/O peripherals. As a result, they must be connected externally to RAM, ROM and I/O, as shown in Figure 1-1. Figure 1-1: A Computer Made by General Purpose Microprocessor In the next step, the different parts of a system, including CPU, RAM, ROM, and I/Os, were put together on a single IC chip and it was called microcontroller.

MCU (Micro Controller Unit) is another name used to refer to microcontrollers. Figure 1-2 shows the simplified view of the internal parts of microcontrollers. Figure 1-2: Simplified View of the Internal Parts of Microcontrollers (SOC) Since the microcontrollers are cheap and small, they are widely used in many devices. 11 Types of Computers Typically, computers are categorized into 3 groups: desktop computers, servers, and embedded systems.

Desktop computers, including PCs, tablets, and laptops, are general purpose computers. They can be used to play games, read and edit articles, and do any other task just by running the proper application programs. The desktop computers use microprocessors. In contrast, embedded systems are special-purpose computers.

In embedded system devices, the software application and hardware are embedded together and are designed to do a specific task. For example, digital camera, vacuum cleaner, mp3 player, mouse, keyboard, and printer, are some examples of embedded systems. It is interesting to note that embedded systems are the largest class of computers though they are not normally considered as computers by the general public. In most cases embedded systems run a fixed program and contain a microcontroller.

But sometimes microcontrollers are inadequate for a task. For this reason, sometimes general-purpose microprocessors are used to design embedded systems. In recent years many manufacturers of general-purpose microprocessors such as Intel, NXP (formerly Motorola), and AMD (Advanced Micro Devices, Inc.) have targeted their microprocessors for the high end of the embedded market. Currently, because of Linux and Windows standardization, in these embedded systems Linux and Windows operating systems are widely used.

In many cases, using the operating systems shortens development time because a vast library of software already exists for the Linux and Windows platforms.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ