EMBEDDED SOFTWARE

By E. JAANT

CONTENTS CHAPTER 1: BASIC EMBEDDED PROGRAMMING CONCEPTS 1 1 NUMBERING SYSTEMS 1 2 SIGNED BINARY NUMBERS 1 3 DATA STRUCTURES 1 4 COMMUNICATIONS PROTOCOLS 1 5 MATHEMATICS 1 6 NUMERIC COMPARISON 1 7 STATE MACHINES 1 8 MULTITASKING CHAPTER 2: DEVICE DRIVERS 2 1 IN THIS CHAPTER 2 2 EXAMPLE 1: DEVICE DRIVERS FOR INTERRUPT-HANDLING 2 3 EXAMPLE 2: MEMORY DEVICE DRIVERS 2 4 EXAMPLE 3: ONBOARD BUS DEVICE DRIVERS 2 5 BOARD I/O DRIVER EXAMPLES 2 6 SUMMARY CHAPTER 3: EMBEDDED OPERATING SYSTEMS 3 1 IN THIS CHAPTER 3 2 WHAT IS A PROCESS? 3 3 MULTITASKING AND PROCESS MANAGEMENT 3 4 MEMORY MANAGEMENT 3 5 I/O AND FILE SYSTEM MANAGEMENT 3 6 OS STANDARDS EXAMPLE: POSIX (PORTABLE OPERATING SYSTEM INTERFACE) 3 7 OS PERFORMANCE GUIDELINES 3 8 OSES AND BOARD SUPPORT PACKAGES (BSPS) 3 9 SUMMARY CHAPTER 4: NETWORKING 4 1 INTRODUCTION TO THE RCM3200 RABBIT CORE 4 2 INTRODUCTION TO THE DYNAMIC C DEVELOPMENT ENVIRONMENT 4 3 BRIEF INTRODUCTION TO DYNAMIC C LIBRARIES 4 4 MEMORY SPACES IN DYNAMIC C 4 5 HOW CODE IS COMPILED AND RUN 4 6 SETTING UP A PC AS AN RCM3200 DEVELOPMENT SYSTEM 4 7 TIME TO START WRITING CODE! 4 8 EMBEDDED NETWORKS 4 9 DYNAMIC C SUPPORT FOR NETWORKING PROTOCOLS 4 10 TYPICAL NETWORK SETUP 4 11 SETTING UP A CORE MODULE’S NETWORK CONFIGURATION 4 12 PROJECT 1: BRINGING UP A RABBIT CORE MODULE FOR NETWORKING 4 13 THE CLIENT SERVER PARADIGM 4 14 THE BERKELEY SOCKETS INTERFACE 4 15 USING TCP VERSUS UDP IN AN EMBEDDED APPLICATION 4 16 IMPORTANT DYNAMIC C LIBRARY FUNCTIONS FOR SOCKET PROGRAMMING 4 17 PROJECT 2: IMPLEMENTING A RABBIT TCP/IP SERVER 4 18 PROJECT 3: IMPLEMENTING A RABBIT TCP/IP CLIENT 4 19 PROJECT 4: IMPLEMENTING A RABBIT UDP SERVER 4 20 SOME USEFUL (AND FREE!) NETWORKING UTILITIES 4 21 FINAL THOUGHT CHAPTER 5: ERROR HANDLING AND DEBUGGING 5 1 THE ZEN OF EMBEDDED SYSTEMS DEVELOPMENT AND TROUBLESHOOTING 5 2 AVOID DEBUGGING ALTOGETHER—CODE SMART 5 3 PROACTIVE DEBUGGING 5 4 STACKS AND HEAPS 5 5 SEEDING MEMORY 5 6 WANDERING CODE 5 7 SPECIAL DECODERS 5 8 MMUS 5 9 CONCLUSION 5 10 IMPLEMENTING DOWNLOADABLE FIRMWARE WITH FLASH MEMORY 5 11 THE MICROPROGRAMMER 5 12 ADVANTAGES OF MICROPROGRAMMERS 5 13 DISADVANTAGES OF MICROPROGRAMMERS 5 14 RECEIVING A MICROPROGRAMMER 5 15 A BASIC MICROPROGRAMMER 5 16 COMMON PROBLEMS AND THEIR SOLUTIONS 5 17 HARDWARE ALTERNATIVES 5 18 MEMORY DIAGNOSTICS 5 19 ROM TESTS 5 20 RAM TESTS 5 21 NONVOLATILE MEMORY 5 22 SUPERVISORY CIRCUITS 5 23 MULTIBYTE WRITES 5 24 TESTING 5 25 CONCLUSION 5 26 BUILDING A GREAT WATCHDOG 5 27 INTERNAL WDTS 5 28 EXTERNAL WDTS 5 29 CHARACTERISTICS OF GREAT WDTS 5 30 USING AN INTERNAL WDT 5 31 AN EXTERNAL WDT 5 32 WDTS FOR MULTITASKING 5 33 SUMMARY AND OTHER THOUGHTS CHAPTER 6: HARDWARE/SOFTWARE CO-VERIFICATION 6 1 EMBEDDED SYSTEM DESIGN PROCESS 6 2 VERIFICATION AND VALIDATION 6 3 HUMAN INTERACTION 6 4 CO-VERIFICATION CHAPTER 7: TECHNIQUES FOR EMBEDDED MEDIA PROCESSING 7 1 A SIMPLIFIED LOOK AT A MEDIA PROCESSING SYSTEM 7 2 SYSTEM RESOURCE PARTITIONING AND CODE OPTIMIZATION 7 3 EVENT GENERATION AND HANDLING 7 4 PROGRAMMING METHODOLOGY 7 5 ARCHITECTURAL FEATURES FOR EFFICIENT PROGRAMMING 7 6 COMPILER CONSIDERATIONS FOR EFFICIENT PROGRAMMING 7 7 SYSTEM AND CORE SYNCHRONIZATION 7 8 MEMORY ARCHITECTURE—THE NEED FOR MANAGEMENT 7 9 PHYSICS OF DATA MOVEMENT 7 10 MEDIA PROCESSING FRAMEWORKS 7 11 DEFINING YOUR FRAMEWORK 7 12 ASYMMETRIC AND SYMMETRIC DUAL-CORE PROCESSORS 7 13 PROGRAMMING MODELS 7 14 STRATEGIES FOR ARCHITECTING A FRAMEWORK 7 15 OTHER TOPICS IN MEDIA FRAMEWORKS CHAPTER 8: DSP IN EMBEDDED SYSTEMS 8 1 OVERVIEW OF EMBEDDED SYSTEMS AND REAL-TIME SYSTEMS 8 2 REAL-TIME SYSTEMS 8 3 HARD REAL-TIME AND SOFT REAL-TIME SYSTEMS 8 4 EFFICIENT EXECUTION AND THE EXECUTION ENVIRONMENT 8 5 CHALLENGES IN REAL-TIME SYSTEM DESIGN 8 6 SUMMARY 8 7 OVERVIEW OF EMBEDDED SYSTEMS DEVELOPMENT LIFE CYCLE USING DSP 8 8 THE EMBEDDED SYSTEM LIFE CYCLE USING DSP 8 9 OPTIMIZING DSP SOFTWARE 8 10 WHAT IS OPTIMIZATION? 8 11 THE PROCESS 8 12 MAKE THE COMMON CASE FAST 8 13 MAKE THE COMMON CASE FAST—DSP ARCHITECTURES 8 14 MAKE THE COMMON CASE FAST—DSP ALGORITHMS 8 15 MAKE THE COMMON CASE FAST—DSP COMPILERS 8 16 AN IN-DEPTH DISCUSSION OF DSP OPTIMIZATION 8 17 DIRECT MEMORY ACCESS 8 18 USING DMA 8 19 LOOP UNROLLING 8 20 SOFTWARE PIPELINING 8 21 MORE ON DSP COMPILERS AND OPTIMIZATION 8 22 PROGRAMMER HELPING OUT THE COMPILER 8 23 PROFILE-BASED COMPILATION 8 24 REFERENCES CHAPTER 9: PRACTICAL EMBEDDED CODING TECHNIQUES 9 1 REENTRANCY 9 2 ATOMIC VARIABLES 9 3 TWO MORE RULES 9 4 KEEPING CODE REENTRANT 9 5 RECURSION 9 6 ASYNCHRONOUS HARDWARE/FIRMWARE 9 7 RACE CONDITIONS 9 8 OPTIONS 9 9 OTHER RTOSES 9 10 METASTABLE STATES 9 11 FIRMWARE, NOT HARDWARE 9 12 INTERRUPT LATENCY 9 13 TAKING DATA 9 14 UNDERSTANDING YOUR C COMPILER: HOW TO MINIMIZE CODE SIZE 9 15 MODERN C COMPILERS 9 16 TIPS ON PROGRAMMING 9 17 FINAL NOTES 9 18 ACKNOWLEDGMENTS CHAPTER 10: DEVELOPMENT TECHNOLOGIES AND TRENDS 10 1 HOW TO CHOOSE A CPU FOR YOUR SYSTEM ON CHIP DESIGN 10 2 EMERGING TECHNOLOGY FOR EMBEDDED SYSTEMS SOFTWARE DEVELOPMENT 10 3 MAKING DEVELOPMENT TOOL CHOICES 10 4 ECLIPSE—BRINGING EMBEDDED TOOLS TOGETHER 10 5 EMBEDDED SOFTWARE AND UML 10 6 MODEL-BASED SYSTEMS DEVELOPMENT WITH XTUML 10 7 THE FUTURE

ISBN978-93-7743-459-5
Copyright Year2027
Pages754
Price$275.99
LanguageEnglish
FormatPDF