內容簡介
本書從基本概念講起,詳細介紹EmbeddedLinux的概念後,再進入最小化Linux,並且告訴你如何將Linux放到嵌入式晶片里。有集Linux技術之精華,告訴您研究EmbeddedLinux所應該要學的東西,讓您不再沒有頭緒。並且介紹IBMIA32(X86)的架構概念,目前許多EmbeddedLinux的套用都是在此平台上,不可不學!完整的嵌入式影像(video4linux)實務範例,告訴您如何設計熱門的影像應用程式。只要具備基本上的Linux知識的讀者,保證您學會EmbeddedLinux!
目錄
第1章EmbeddedLinux系統架構
1-1EmbeddedLinux技術介紹
1-2EmbeddedLinux技術架構
1-3EmbeddedLinux的軟體支持
Linuxkernel
Linuxdistributions
Linuxsystem
Linuxkemel的技術面
GPL著作權
SystemSharedLibraries
Applications
1-4EmbeddedLinux的硬體支持
System-on-Chip
SingleBoardComputer
處理器的選擇
1-5EmbeddedLinuxDistributions
熱門的EmbeddedLinuxDistributions
Real-TimeLinux解決方案
第2章EmbeddedLinux開發環境
2-1使用自由軟體目錄
自由軟體藍圖
2-2使用自由軟體:軟體開發
簡介
編譯器家GCC
程式調試工具——GDB
SystemAPI調試工具——strace
跨平台輔助工具組
編譯自動——GNUMake
版本控制——CVS
解釋式程式語言
2-3使用自由軟體:程式庫
SystemCalls
標準程式庫——GLIBC
Linux常用的程式庫
2-4使用GCC編譯程式
基本用法
編譯但不連結:-c參數
使用非標準頭檔案(headers)
指定與程式庫(library)連結
與staticlibrary(靜態程式庫)連結
Ld-Linux下的Linker
程式最佳化
2-5使用GDB進行調試
讓gcc產生符號表
gdb的基本用法
斷點調試(breakpoints)
強大的print命令
單步執行
底層調試
2-6LSB標準
LSB標準介紹
LSB標準摘要
LSBCommon內容摘要
LSBIA32內容摘要
2-7FHS標準
什麼是FHS
FHS內容架構
RootFilesystem
/usr目錄
/var目錄
針對Linux的特別內容
第3章EmbeddedLinux系統建立
3-1如何打造EmbeddedLinux系統平台
EmbeddedLinux系統構成要素
EmbeddedLinux的建立策略
應選擇何種建立策略
3-2安裝PeeWeeLinux
PeeWeeLinux的特點
如何取得PeeWeeLinux
安裝PeeWeeLinux
3-3建立EmbeddedLinux系統平台
3-4利用PeeWeeLinux集成RPM包
3-5更進一步的EmbeddedLinux系統調整
更新與修改*.tar包檔案
PeeWeeLinux功成身退
更進一步的EmbeddedLinux最小化
3-6EmbeddedLinux+Java技術
信息家電設計-HAVi
3-7EmbeddedGUI/Windowing
Microwindows與解決方案組合
第4章EmbeddedLinux程式設計
4-1Process
Processm
什麼是Process
建立Process
UNIX下的Spawn寫法
終止Process
等待ChildProcess
ZombieProcess
Signal的處理
Linux的Signal
4-2Thread
LinuxThread程式設計基本概念
JoinableThread與DetachedThread
建立Thread
建立DetachedThread
JoinThread
JoinThread返回值
4-3LinuxKernelModule
LinuxModuleSystem
KernelSymbolTable
由應用程式進入KernelModule程式設計
Hello,World!
printk()函式
編譯LinuxKernelModule
module_init與moduleexit宏
其他常用的宏
更多有關LinuxKernelModule
4-4ProcessSynchronization
RaceCondition
CriticalSection
Critical-SectionProblem
Semaphores
第5章Linuxlpg程式設計
5-1Message-PassingSystem
Message-PassingSystem介紹
persistentcommunication(持續性通信)
transientcommunication(傳遞性通信)
asynchronouscommunication(異步通信)
synchronouscommunication(同步通信)
CommunicationLink(通信鏈路)
訊息(Message)的特性
實例介紹:UDP
5-2SharedMemory
SharedMemory
讀取SharedMemory的範例
5-3MappedMemory
5-4Pipes與FIFOs
Pipes
FIFOs
5-5Socket
Unk-domainsocket與Intemet-domainsocket
設計Server程式
設計Client程式
程式範例
第6章80x86與Linux記憶體管理
6-1MemoryHierarchy
記憶體管理(MemoryManagement)
6-280x86的記憶體管理
什麼是i386
RealMode與ProtectedMode
Linux如何進入ProtectedMode
ProtectedMode的記憶體管理
6-3作業系統的記憶體管理
MainMemory的基本管理方法
MainMemory不足時的管理方法
利用Paging技術來管理MainMemory
利用VirtualMemory管理SecondaryStorage
第7章vide041inux嵌入式影像系統
7-1vide041inux介紹
Bt878晶片與BTTV驅動程式
視頻採集卡
安裝視頻採集卡
相關技術名詞解釋
7-2vide041inux應用程式介紹
BTTV相關套用軟體——xawtv
7-3vide041inux程式設計:入門篇
基本數據結構與函式實現
設備檔案初始化
配合應用程式來設計
7-4vide041inux程式設計:提高篇
mmap的初始化:v41_mmap_init()實現
初始化grab:v41_grab_init()實現
影像採集:v41_grab_frame()的實現
模仿flip-flop採集:device_next_frame()的實現
EgecTV
7-5利用JRTPLIB加入網路的功能
加入RTPProtocol
JRTPLIB簡介
7-6輸出JPEG與PPM影像
7-7完整範例程式代碼