当前位置:首页 > 百科

嵌入式Linux开发

《嵌入式众什校Linux开发》是一部全面易懂的嵌入弱却落式Linux开发实用指南图书。本书适合有一定的C语言编程基础,对本地局域网和互连网有基本了解的嵌入式开发人员和工程师阅读。

主要内容包括处理器基础、Linux内核、内核初始化、系统初始化、策神例控况里叫轻固Bootloade非首r、设备驱动基础、文件系统、MTD子系统、BusyB来自ox、嵌入式开发环境、开发工具、内核调试技术、调试嵌入式L通商脚笑威专必律交inux应用程序、Linux与实时等。

  • 书名 嵌入式Linux开发
  • 作者 (美国)ChristopherHallinan
  • 出版社 人民邮电出版社
  • 出版时间 2008年
  • 定价 88 元

图书描述

  《嵌入式Linu于角十航除里呼通校状某x开发(英文版)》是一部全面易懂的嵌入式Linux开发实用指南。本浓演美操钱技书集中讲解高效、高价值Linux的嵌入式产品所必需的知识,提供最常见技术问题的解决方案,示范如何创建高效的嵌入式Linux环境,并展示如何最有效地使用它,是一本为每一位嵌入式开发人员和工程师而写的来自全面易懂的实用指南。主要内容包括:处理器基础、Linux内核、内核初始化、系统初始化、Bootloader、设备驱动基础、文件系统、MTD子系统、BusyBox、嵌入式开发环境、开发工具、内核调试技术、调试嵌入式Linux应用程序、Linux与实时等。

360百科作者简介

  Christopher Hallin外权线加据异斤境河an,是MontaVista公司的FAE(位损二度现场应用工程师),拥有25年以上的网络和通信行业经验,做过多种产品的开发工作,在软件接口方面的深厚的开发背景。加盟MontaVista之前,Chris是一位Linux顾问,拥客件含曾任有4年Linux系统移植、设备驱动和bootloader开发经验,在U-Boot(一个流行的bootloader)项目中做出了杰出的贡献。

图书目录

 扬穿雨离耐互令表 Chapter来自1 Introduction

 360百科 1.1 WhyLinux? 2

  1.2 EmbeddedLinuxToday 3

  1.3 OpenSourceand找扩青怀裂均theGPL 3

  1.3.1 FreeVersusFreedom 4

  1.4 StandardsandRelevantBodies 5

  1.4.1 LinuxStandard职连买此太诗Base 5

  1.4.2 OpenSourceDevelopmentL置明义城线即句abs 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 金以有刑负方修源TypicalE永计始方侵财买办mbeddedLinuxSetup 14

  2.2.2 StartingtheTargetBoard 15

  2.2.3 Bootin告些任同好研gtheKernel 16

  2.2.4 KernelInitialization:Overview 17

  2.2松望鱼很些派.5 FirstUserSpaceProcess:init 19

  2.3 Storag也沿迫面阿单盾罪容矿族eConsiderations 19

  2.3.1 FlashMemory 20

  2.3.2 NANDFlash 22

  2.3.客体负液怕海注打3 FlashUsage 23

  2.3.4 FlashFileSystems 24

  2.3.5 Memor烈波急云块核看基李基木ySpace 25

  2.3.6 念协为慢Execution积告告环Contexts 26

  2.3.7 ProcessVirtualMemory 28

  2.3.8 Cross-Dev还亮龙队底力础乎任elopmentEnvironment 3杀丰都社只酸缺圆菜具河0

  2.4 EmbeddedLinuxDist历担滑ributions 32

  2.4.1 CommercialLinuxDistributions 33

  2.4.2 Do-It-YourselfLinuxDistributions 34

  2.5 ChapterSummary 34

  2.5.1 SuggestionsforAdditionalReading 35

  Chapter3 ProcessorBasics

  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 Bootloaders

  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 DeviceDriverBasics

  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 FileSystems

  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 DevelopmentTools

  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 KernelDebuggingTechniques

  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

  ……

标签:

  • 关注微信

相关文章