词条 | 嵌入式Linux开发 |
释义 | 《嵌入式Linux开发》是一部全面易懂的嵌入式Linux开发实用指南。主要内容包括:处理器基础、Linux内核、内核初始化、系统初始化、Bootloader、设备驱动基础、文件系统、MTD子系统、BusyBox、嵌入式开发环境、开发工具、内核调试技术、调试嵌入式Linux应用程序、Linux与实时等。本书适合有一定的C语言编程基础,对本地局域网和互连网有基本了解的嵌入式开发人员和工程师阅读。 书名:嵌入式Linux开发 作者:(美国)ChristopherHallinan ISBN:9787115172259 定价:88.00 元 出版社:人民邮电出版社 出版时间:2008 开本:16 目录Chapter1 Introduction1.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 YourFirstEmbeddedExperience2.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 ProcessorBasic3.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 TheLinuxKernel4.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 KernelInitialization5.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 SystemInitialization6.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 Bootloader7.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 DeviceDriverBasic8.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 FileSystem9.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 MTDSubsystem10.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 BusyBox11.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 EmbeddedDevelopment12.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 DevelopmentTool13.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 KernelDebuggingTechnique14.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 DebuggingEmbedded15.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 PortingLinux16.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 LinuxandRealTime17.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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。