请输入您要查询的百科知识:

 

词条 嵌入式Linux开发
释义

《嵌入式Linux开发》是一部全面易懂的嵌入式Linux开发实用指南。主要内容包括:处理器基础、Linux内核、内核初始化、系统初始化、Bootloader、设备驱动基础、文件系统、MTD子系统、BusyBox、嵌入式开发环境、开发工具、内核调试技术、调试嵌入式Linux应用程序、Linux与实时等。本书适合有一定的C语言编程基础,对本地局域网和互连网有基本了解的嵌入式开发人员和工程师阅读。

书名:嵌入式Linux开发

作者:(美国)ChristopherHallinan

ISBN:9787115172259

定价:88.00 元

出版社:人民邮电出版社

出版时间:2008

开本:16

目录

Chapter1 Introduction

1.1 WhyLinux? 2

1.2 EmbeddedLinuxToday 3

1.3 OpenSourceandtheGPL 3

1.3.1 FreeVersusFreedom 4

1.4 StandardsandRelevantBodies 5

1.4.1 LinuxStandardBase 5

1.4.2 OpenSourceDevelopmentLabs 5

1.5 ChapterSummary 7

1.5.1 SuggestionsforAdditionalReading 7

Chapter2 YourFirstEmbeddedExperience

2.1 EmbeddedorNot? 10

2.1.1 BIOSVersusBootloader 11

2.2 AnatomyofanEmbeddedSystem 12

2.2.1 TypicalEmbeddedLinuxSetup 14

2.2.2 StartingtheTargetBoard 15

2.2.3 BootingtheKernel 16

2.2.4 KernelInitialization:Overview 17

2.2.5 FirstUserSpaceProcess:init 19

2.3 StorageConsiderations 19

2.3.1 FlashMemory 20

2.3.2 NANDFlash 22

2.3.3 FlashUsage 23

2.3.4 FlashFileSystems 24

2.3.5 MemorySpace 25

2.3.6 ExecutionContexts 26

2.3.7 ProcessVirtualMemory 28

2.3.8 Cross-DevelopmentEnvironment 30

2.4 EmbeddedLinuxDistributions 32

2.4.1 CommercialLinuxDistributions 33

2.4.2 Do-It-YourselfLinuxDistributions 34

2.5 ChapterSummary 34

2.5.1 SuggestionsforAdditionalReading 35

Chapter3 ProcessorBasic

3.1 Stand-aloneProcessors 38

3.1.1 IBM970FX 39

3.1.2 IntelPentiumM 39

3.1.3 FreescaleMPC7448 40

3.1.4 CompanionChipsets 41

3.2 IntegratedProcessors:SystemsonChip 43

3.2.1 PowerPC 44

3.2.2 AMCCPowerPC 44

3.2.3 FreescalePowerPC 47

3.2.4 MIPS 52

3.2.5 BroadcomMIPS 53

3.2.6 AMDMIPS 55

3.2.7 OtherMIPS 56

3.2.8 ARM 56

3.2.9 TIARM 56

3.2.10 FreescaleARM 58

3.2.11 IntelARMXScale 59

3.2.12 OtherARM 60

3.2.13 OtherArchitectures 60

3.3 HardwarePlatforms 61

3.3.1 CompactPCI 61

3.3.2 ATCA 61

3.4 ChapterSummary 62

3.4.1 SuggestionsForAdditionalReading 63

Chapter4 TheLinuxKernel

4.1 Background 66

4.1.1 KernelVersions 67

4.1.2 KernelSourceRepositories 69

4.2 LinuxKernelConstruction 70

4.2.1 Top-LevelSourceDirectory 70

4.2.2 CompilingtheKernel 71

4.2.3 TheKernelProper:vmlinux 73

4.2.4 KernelImageComponents 75

4.2.5 SubdirectoryLayout 79

4.3 KernelBuildSystem 79

4.3.1 TheDot-Config 80

4.3.2 ConfigurationEditor(s) 82

4.3.3 MakefileTargets 85

4.3.4 KernelConfiguration 88

4.3.5 CustomConfigurationOptions 90

4.3.6 KernelMakefiles 94

4.3.7 KernelDocumentation 95

4.4 ObtainingaLinuxKernel 96

4.4.1 WhatElseDoINeed? 96

4.5 ChapterSummary 97

4.5.1 SuggestionsforAdditionalReading 98

Chapter5 KernelInitialization

5.1 CompositeKernelImage:PiggyandFriends 100

5.1.1 TheImageObject 103

5.1.2 ArchitectureObjects 104

5.1.3 BootstrapLoader 105

5.1.4 BootMessages 106

5.2 InitializationFlowofControl 109

5.2.1 KernelEntryPoint:head.o 111

5.2.2 KernelStartup:main.c 113

5.2.3 ArchitectureSetup 114

5.3 KernelCommandLineProcessing 114

5.3.1 The__setupMacro 116

5.4 SubsystemInitialization 121

5.4.1 The*__initcallMacros 122

5.5 TheinitThread 123

5.5.1 Initializationviainitcalls 125

5.5.2 FinalBootSteps 126

5.6 ChapterSummary 128

5.6.1 SuggestionsforAdditionalReading 128

Chapter6 SystemInitialization

6.1 RootFileSystem 130

6.1.1 FHS:FileSystemHierarchyStandard 131

6.1.2 FileSystemLayout 131

6.1.3 MinimalFileSystem 132

6.1.4 TheRootFSChallenge 134

6.1.5 Trial-and-ErrorMethod 135

6.1.6 AutomatedFileSystemBuildTools 135

6.2 Kernel’sLastBootSteps 136

6.2.1 FirstUserSpaceProgram 137

6.2.2 ResolvingDependencies 138

6.2.3 CustomizedInitialProcess 138

6.3 TheInitProcess 139

6.3.1 inittab 142

6.3.2 ExampleWebServerStartupScript 144

6.4 InitialRAMDisk 145

6.4.1 InitialRAMDiskPurpose 146

6.4.2 Bootingwithinitrd 146

6.4.3 BootloaderSupportforinitrd 147

6.4.4 initrdMagic:linuxrc 149

6.4.5 TheinitrdPlumbing 150

6.4.6 BuildinganinitrdImage 151

6.5 Usinginitramfs 152

6.6 Shutdown 153

6.7 ChapterSummary 154

6.7.1 SuggestionsforAdditionalReading 155

Chapter7 Bootloader

7.1 RoleofaBootloader 158

7.2 BootloaderChallenges 159

7.2.1 DRAMController 159

7.2.2 FlashVersusRAM 160

7.2.3 ImageComplexity 160

7.2.4 ExecutionContext 163

7.3A UniversalBootloader:DasU-Boot 164

7.3.1 SystemConfiguration:U-Boot 164

7.3.2 U-BootCommandSets 167

7.3.3 NetworkOperations 167

7.3.4 StorageSubsystems 170

7.3.5 BootingfromDisk:U-Boot 171

7.4 PortingU-Boot 172

7.4.1 EP405U-BootPort 172

7.4.2 U-BootMakefileConfigurationTarget 174

7.4.3 EP405ProcessorInitialization 174

7.4.4 Board-SpecificInitialization 177

7.4.5 PortingSummary 180

7.4.6 U-BootImageFormat 181

7.5 OtherBootloaders 183

7.5.1 Lilo 183

7.5.2 GRUB 184

7.5.3 StillMoreBootloaders 186

7.6 ChapterSummary 186

7.6.1 SuggestionsforAdditionalReading 187

Chapter8 DeviceDriverBasic

8.1 DeviceDriverConcepts 190

8.1.1 LoadableModules 191

8.1.2 DeviceDriverArchitecture 192

8.1.3 MinimalDeviceDriverExample 192

8.1.4 ModuleBuildInfrastructure 193

8.1.5 InstallingYourDeviceDriver 197

8.1.6 LoadingYourModule 198

8.2 ModuleUtilities 199

8.2.1 insmod 199

8.2.2 ModuleParameters 199

8.2.3 lsmod 201

8.2.4 modprobe 201

8.2.5 depmod 203

8.2.6 rmmod 203

8.2.7 modinfo 204

8.3 DriverMethods 205

8.3.1 DriverFileSystemOperations 205

8.3.2 DeviceNodesandmknod 208

8.4 BringingItAllTogether 209

8.5 DeviceDriversandtheGPL 211

8.6 ChapterSummary 211

8.6.1 SuggestionsforAdditionalReading 212

Chapter9 FileSystem

9.1 LinuxFileSystemConcepts 214

9.1.1 Partitions 214

9.2 ext2 216

9.2.1 MountingaFileSystem 218

9.2.2 CheckingFileSystemIntegrity 219

9.3 ext3 221

9.4 ReiserFS 224

9.5 JFFS2 225

9.6 cramfs 228

9.7 NetworkFileSystem 230

9.7.1 RootFileSystemonNFS 232

9.8 PseudoFileSystems 234

9.8.1 ProcFileSystem 234

9.8.2 sysfs 238

9.9 OtherFileSystems 240

9.10 BuildingaSimpleFileSystem 242

9.11 ChapterSummary 243

9.11.1 SuggestionsforAdditionalReading 244

Chapter10 MTDSubsystem

10.1 EnablingMTDServices 248

10.1.1 BuildingMTD 250

10.2 MTDBasics 251

10.2.1 ConfiguringMTD 253

10.3 MTDPartitions 253

10.3.1 RedbootPartitionTablePartitioning 255

10.3.2 KernelCommandLinePartitioning 259

10.3.3 MappingDriver 260

10.3.4 FlashChipDrivers 262

10.3.5 Board-SpecificInitialization 263

10.4 MTDUtilities 265

10.4.1 JFFS2RootFileSystem 268

10.5 ChapterSummary 270

10.5.1 SuggestionsforAdditionalReading 271

Chapter11 BusyBox

11.1 IntroductiontoBusyBox 274

11.1.1 BusyBoxisEasy 275

11.2 BusyBoxConfiguration 275

11.2.1 Cross-CompilingBusyBox 277

11.3 BusyBoxOperation 278

11.3.1 BusyBoxInit 281

11.3.2 ExamplercSInitializationScript 283

11.3.3 BusyBoxTargetInstallation 284

11.3.4 BusyBoxCommands 286

11.4 ChapterSummary 288

11.4.1 SuggestionsforAdditionalReading 288

Chapter12 EmbeddedDevelopment

12.1 Cross-DevelopmentEnvironment 290

12.1.1 “HelloWorld”——Embedded 291

12.2 HostSystemRequirements 295

12.2.1 HardwareDebugProbe 296

12.3 HostingTargetBoards 296

12.3.1 TFTPServer 296

12.3.2 BOOTP/DHCPServer 298

12.3.3 NFSServer 300

12.3.4 TargetNFSRootMount 302

12.3.5 U-BootNFSRootMountExample 304

12.4 ChapterSummary 306

12.4.1 SuggestionsforAdditionalReading 307

Chapter13 DevelopmentTool

13.1 GNUDebugger(GDB) 310

13.1.1 DebuggingaCoreDump 311

13.1.2 InvokingGDB 313

13.1.3 DebugSessioninGDB 315

13.2 DataDisplayDebugger 317

13.3 cbrowser/cscope 319

13.4 TracingandProfilingTools 321

13.4.1 strace 321

13.4.2 straceVariations 325

13.4.3 ltrace 327

13.4.4 ps 328

13.4.5 top 330

13.4.6 mtrace 332

13.4.7 dmalloc 334

13.4.8 KernelOops 337

13.5 BinaryUtilities 340

13.5.1 readelf 340

13.5.2 ExaminingDebugInfoUsingreadelf 342

13.5.3 objdump 344

13.5.4 objcopy 345

13.6 MiscellaneousBinaryUtilities 346

13.6.1 strip 346

13.6.2 addr2line 346

13.6.3 strings 347

13.6.4 ldd 347

13.6.5 nm 348

13.6.6 prelink 349

13.7 ChapterSummary 349

13.7.1 SuggestionsforAdditionalReading 350

Chapter14 KernelDebuggingTechnique

14.1 ChallengestoKernelDebugging 352

14.2 UsingKGDBforKernelDebugging 353

14.2.1 KGDBKernelConfiguration 355

14.2.2 TargetBootwithKGDBSupport 355

14.2.3 UsefulKernelBreakpoints 358

14.3 DebuggingtheLinuxKernel 360

14.3.1 gdbRemoteSerialProtocol 361

14.3.2 DebuggingOptimizedKernelCode 364

14.3.3 gdbUser-DefinedCommands 369

14.3.4 UsefulKernelgdbMacros 370

14.3.5 DebuggingLoadableModules 378

14.3.6 printkDebugging 383

14.3.7 MagicSysReqKey 384

14.4 Hardware-AssistedDebugging 385

14.4.1 ProgrammingFlashUsingaJTAGProbe 387

14.4.2 DebuggingwithaJTAGProbe 389

14.5 WhenItDoesn’tBoot 392

14.5.1 EarlySerialDebugOutput 393

14.5.2 DumpingtheprintkLogBuffer 394

14.5.3 KGDBonPanic 396

14.6 ChapterSummary 397

14.6.1 SuggestionsforAdditionalReading 398

Chapter15 DebuggingEmbedded

15.1 TargetDebugging 400

15.2 Remote(Cross)Debugging 400

15.2.1 gdbserver 403

15.3 DebuggingwithSharedLibraries 405

15.3.1 SharedLibraryEventsinGDB 407

15.4 DebuggingMultipleTasks 411

15.4.1 DebuggingMultipleProcesses 411

15.4.2 DebuggingMultithreadedApplications 414

15.4.3 DebuggingBootloader/FlashCode 417

15.5 AdditionalRemoteDebugOptions 417

15.5.1 DebuggingviaSerialPort 418

15.5.2 AttachingtoaRunningProcess 418

15.6 ChapterSummary 419

15.6.1 SuggestionsforAdditionalReading 419

Chapter16 PortingLinux

16.1 LinuxSourceOrganization 422

16.1.1 TheArchitectureBranch 422

16.2 CustomLinuxforYourBoard 424

16.2.1 PrerequisitesandAssumptions 426

16.2.2 CustomizingKernelInitialization 427

16.2.3 StaticKernelCommandLine 429

16.3 PlatformInitialization 431

16.3.1 EarlyVariableAccess 435

16.3.2 BoardInformationStructure 436

16.3.3 Machine-DependentCalls 438

16.4 PuttingItAllTogether 439

16.4.1 OtherArchitectures 442

16.5 ChapterSummary 442

16.5.1 SuggestionsforAdditionalReading 443

Chapter17 LinuxandRealTime

17.1 WhatIsRealTime? 446

17.1.1 SoftRealTime 446

17.1.2 HardRealTime 446

17.1.3 LinuxScheduling 447

17.1.4 Latency 447

17.2 KernelPreemption 449

17.2.1 ImpedimentstoPreemption 449

17.2.2 PreemptionModels 451

17.2.3 SMPKernel 452

17.2.4 SourcesofPreemptionLatency 453

17.3 Real-TimeKernelPatch 453

17.3.1 Real-TimeFeatures 455

17.3.2 O(1)Scheduler 458

17.3.3 CreatingaReal-TimeProcess 458

17.3.4 CriticalSectionManagement 459

17.4 DebuggingtheReal-TimeKernel 460

17.4.1 SoftLockupDetection 460

17.4.2 PreemptionDebugging 461

17.4.3 DebugWakeupTiming 461

17.4.4 WakeupLatencyHistory 462

17.4.5 InterruptOffTiming 462

17.4.6 InterruptOffHistory 462

17.4.7 LatencyTracing 464

17.4.8 DebuggingDeadlockConditions 466

17.4.9 RuntimeControlofLockingMode 467

17.5 ChapterSummary 467

17.5.1 SuggestionsforAdditionalReading 467

AppendixA:GNUPublicLicense 469

AppendixB:U-BootConfigurableCommands 479

AppendixC:BusyBoxCommands 483

AppendixD:SDRAMInterfaceConsiderations 491

D.1 SDRAMBasics 492

D.1.1 SDRAMRefresh 493

D.2 Clocking 494

D.3 SDRAMSetup 495

D.4 Summary 500

D.4.1 SuggestionsforAdditionalReading 500

AppendixE:OpenSourceResources 501

AppendixF:SampleBDI-2000ConfigurationFile 505

Index 513

……

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/4 7:55:13