- 軟件大?。?span>207.04M
- 軟件語言:中文
- 軟件類型:國產(chǎn)軟件
- 軟件類別:免費(fèi)軟件 / 電子圖書
- 更新時(shí)間:2017-07-31 14:30
- 運(yùn)行環(huán)境:WinAll, WinXP, Win7, Win8, Win10
- 軟件等級:
- 軟件廠商:
- 官方網(wǎng)站:暫無
6.70M/中文/10.0
0KB/中文/5.0
42.89M/中文/10.0
0KB/中文/1.3
5.85M/中文/10.0
嵌入式底層軟件開發(fā)電子書是專門為嵌入式技術(shù)深層構(gòu)建的系統(tǒng)使用教程,本書為pdf掃描版,非常清晰詳細(xì)哦,有興趣的朋友趕緊來綠色資源網(wǎng)下載吧!
深入淺出嵌入式底層軟件開發(fā)包含arm裸機(jī)程序開發(fā)、嵌入式linux系統(tǒng)建構(gòu)、linux驅(qū)動(dòng)程序開發(fā)三部分。從軟硬件的分界面開始,循序漸進(jìn),逐一詳細(xì)介紹嵌入式底層軟件開發(fā)的各個(gè)技術(shù)要點(diǎn),技術(shù)體系全面;既有一定的理論,但更加強(qiáng)調(diào)實(shí)戰(zhàn)性;深入淺出,能讓讀者以最少的時(shí)間成本代價(jià)獲得嵌入式底層軟件開發(fā)的技術(shù)精髓。
深入淺出嵌入式底層軟件開發(fā)適合硬件工程師、軟件工程師、嵌入式軟件的從業(yè)人員、教授嵌入式軟件開發(fā)課程的老師、意欲從事嵌入式軟件開發(fā)工作的大學(xué)生閱讀。
第1篇arm體系結(jié)構(gòu)與編程
1 第1章 arm匯編編程基礎(chǔ)
1.1 arm cpu寄存器
1.1.1 普通寄存器r0 – r15
1.1.2 狀態(tài)寄存器cpsr與spsr
1.1.3 流水線對pc值的影響
1.2 基本尋址方式與基本指令
1.2.1 最常見尋址方式精解
1.2.2 最常見指令精解
1.3 arm匯編偽操作
1.3.1 匯編偽操作在匯編程序中的使用范例
1.3.2 最常見匯編偽操作精解
1.3.3 匯編偽操作列表
1.4 ads開發(fā)環(huán)境的使用
1.4.1 在ads中進(jìn)行裸機(jī)程序的編輯、編譯、運(yùn)行
1.4.2 在axd中進(jìn)行裸機(jī)程序調(diào)試的方法與步驟
1.5 realview mdk開發(fā)環(huán)境的使用
1.5.1 在mdk開發(fā)環(huán)境下編寫裸機(jī)程序
1.5.2 mdk調(diào)試裸機(jī)程序的方法與步驟
.1.6 其他常見尋址模式與常見指令
1.6.1 其他常見尋址模式(基址尋址、多寄存器尋址、堆棧尋址、寄存器移位尋址、相對尋址)
1.6.2 其他常見指令(訪存指令、數(shù)據(jù)處理指令、乘法指令)
2 第2章 arm編程進(jìn)階
2.1 arm匯編偽指令
2.1.1 精解ldr偽指令
2.1.2 精解ad
2.1.3 精解adrl偽指令
2.1.4 nop偽指令
2.2 atpcs與混合編程
2.2.1 atpcs規(guī)則精解
2.2.2 精解c和arm匯編程序間的相互調(diào)用
2.3 裸機(jī)硬件的控制方法與例程
2.3.1 建立真實(shí)硬件的開發(fā)和調(diào)試環(huán)境
2.3.2 軟件控制(驅(qū)動(dòng))硬件的編程原理
2.3.3 裸機(jī)硬件控制程序?qū)嵗?/p>
2.3.4 啟動(dòng)例程
2.4 看門狗定時(shí)器(watchdog)
2.4.1 看門狗定時(shí)器的用途
2.4.2 看門狗工作原理
2.4.3 看門狗實(shí)驗(yàn)
2.5 系統(tǒng)時(shí)鐘
2.5.1 系統(tǒng)工作時(shí)鐘頻率
2.5.2 時(shí)鐘驅(qū)動(dòng)實(shí)驗(yàn)
2.6 sdram內(nèi)存
2.6.1 s3c2440存儲器地址段(bank)
2.6.2 sdram內(nèi)存工作原理
2.6.3 sdram的讀操作
2.6.4 sdram預(yù)充電操作
2.6.5 sdram突發(fā)操作
2.6.6 sdram寫操作
2.6.7 sdram的刷新
2.6.8 內(nèi)存驅(qū)動(dòng)實(shí)驗(yàn)
2.7 uart串口
2.7.1 異步通信和同步通信
2.7.2 數(shù)據(jù)的串行和并行通信方式
2.7.3 數(shù)據(jù)通信傳輸模式
2.7.4 s3c2440 uart控制器
2.7.5 s3c2440 uart串口工作原理
2.7.6 uart串口驅(qū)動(dòng)實(shí)驗(yàn)
3 第3章 arm體系結(jié)構(gòu)
3.1 arm處理器工作模式
3.1.1 arm處理器不同模式下寄存器
3.1.2 arm處理器模式切換(含mrs,msr指令)
3.2 arm處理器異常處理
3.2.1 異常分類
3.2.2 異常發(fā)生的硬件操作
3.2.3 異常返回地址
3.2.4 異常向量表
3.2.5 異常處理的返回
3.3 s3c2440系統(tǒng)中斷
3.3.1 中斷的產(chǎn)生-中斷源
3.3.2 中斷優(yōu)先級
3.3.3 中斷控制相關(guān)寄存器
3.3.4 系統(tǒng)中斷流程
3.3.5 按鍵控制led燈實(shí)驗(yàn)
3.4 semihosting與硬件重定向
3.4.1 semihosting半主機(jī)調(diào)試
3.4.2 硬件重定向
3.5 系統(tǒng)調(diào)用與軟件中斷swi的實(shí)現(xiàn)
3.5.1 系統(tǒng)調(diào)用
3.5.2 軟件中斷
3.5.3 軟中斷處理
3.5.4 led系統(tǒng)調(diào)用實(shí)驗(yàn)
3.6 進(jìn)程切換的實(shí)現(xiàn)
3.6.1 進(jìn)程
3.6.2 進(jìn)程控制塊pc
3.6.3 進(jìn)程創(chuàng)建
3.6.4 進(jìn)程隊(duì)列
3.6.5 進(jìn)程調(diào)度(schedule)
3.6.6 上下文切換
3.7 mmu與內(nèi)存保護(hù)的實(shí)現(xiàn)
3.7.1 存儲管理單元mm
3.7.2 cach
3.7.3 cp15協(xié)處理器
3.8 實(shí)戰(zhàn):小型多任務(wù)操作系統(tǒng)minios的實(shí)現(xiàn)
3.8.1 minios代碼分析
3.8.2 minios應(yīng)用程序接口
3.8.3 minios應(yīng)用程序系統(tǒng)調(diào)用接口
4 第4章 嵌入式linux軟件開發(fā)環(huán)境搭建
4.1 體驗(yàn)嵌入式linux系統(tǒng)
4.2 linux操作系統(tǒng)安裝
4.2.1 在window上安裝虛擬機(jī)
4.2.2 在虛擬機(jī)上安裝linux操作系統(tǒng)ubuntu9.1
4.3 在ubuntu9.10中安裝基本的開發(fā)環(huán)境
4.4 ubuntu9.10上網(wǎng)絡(luò)服務(wù)的安裝與配置
4.4.1 設(shè)置vmware網(wǎng)絡(luò)
4.4.2 安裝、配置和使用ftp服務(wù)
4.4.3 安裝、配置nfs服務(wù)
5 第5章 建構(gòu)bootloade
5.1 準(zhǔn)備工作
5.1.1 嵌入式linux系統(tǒng)概述
5.1.2 構(gòu)建交叉編譯工具鏈
5.1.3 bootloader概述
5.2 深入剖析u-boot代碼
5.2.1 安裝和使用源代碼閱讀工具source insigh
5.2.2 u-boot的編譯初步
5.2.3 分析u-boot的第1階段代碼(cpu/arm920t/start.s)
5.2.4 分析u-boot的第2階段代碼
5.2.5 繼續(xù)移植、編譯u-boo
5.2.6 u-boot常用命令使用簡介
5.2.7 u-boot命令實(shí)現(xiàn)框架的分析
5.2.8 u-boot引導(dǎo)linux操作系統(tǒng)的過程分析
5.2.9 讓u-boot支持從usb slave接口獲得數(shù)據(jù)
6 第6章 建構(gòu)嵌入式linux內(nèi)核
6.1 linux內(nèi)核簡介
6.1.1 linux內(nèi)核版本歷史
6.1.2 內(nèi)核源碼目錄結(jié)構(gòu)
6.1.3 linux內(nèi)核構(gòu)造系統(tǒng)簡介
6.2 移植、裁減及配置linux內(nèi)核到s3c2440開發(fā)板
6.2.1 體驗(yàn)linux內(nèi)核配置、編譯與使用
6.2.2 為s3c2440移植內(nèi)核
6.2.3 配置并裁減內(nèi)核
6.2.4 運(yùn)行內(nèi)核并驗(yàn)證內(nèi)核被配置的功能
6.3 內(nèi)核kconfig與makefile文件分析
6.3.1 內(nèi)核構(gòu)造系統(tǒng)簡介
6.3.2 kconfig文件精解
6.3.3 .config文件說明
6.3.4 makefile文件精解
6.3.5 實(shí)戰(zhàn):修改kconfig和makefile,完成向內(nèi)核中添加新的功能組件——網(wǎng)卡、聲卡、lcd、觸摸屏驅(qū)動(dòng)
7 第7章 建構(gòu)嵌入式linux文件系統(tǒng)
7.1 嵌入式linux文件系統(tǒng)簡介
7.1.1 嵌入式文件系統(tǒng)概述
7.1.2 mtd設(shè)備與flash文件系統(tǒng)簡介
7.1.3 嵌入式linux系統(tǒng)中的tmpfs文件系統(tǒng)
7.2 詳解制作根文件系統(tǒng)
7.2.1 fhs標(biāo)準(zhǔn)介紹
7.2.2 編譯/安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄
7.2.3 利用交叉編譯工具鏈,構(gòu)建/lib目錄
7.2.4 手工構(gòu)建/etc目錄
7.2.5 手工構(gòu)建最簡化的/dev目錄
7.2.6 使用啟動(dòng)腳本完成/proc、/sys、/dev、/tmp、/var等目錄的完整構(gòu)建
7.2.7 制作根文件系統(tǒng)的jffs2映像文件
7.3 建構(gòu)嵌入式linux應(yīng)用程序系統(tǒng)
7.3.1 輔助處理工具的移植
7.3.2 mp3播放器 madplay的移植
7.3.3 主要網(wǎng)絡(luò)服務(wù)器的移植與使用
7.3.4 數(shù)據(jù)庫程序的移植與使用
7.4 建構(gòu)gui系統(tǒng)
7.4.1 移植tslib庫
7.4.2 移植qtopia
8 第8章 linux驅(qū)動(dòng)程序開發(fā)基礎(chǔ)
8.1 linux設(shè)備驅(qū)動(dòng)程序簡介
8.1.1 設(shè)備驅(qū)動(dòng)分類和內(nèi)核模塊
8.1.2 設(shè)備文件和設(shè)備驅(qū)動(dòng)
8.1.3 內(nèi)核模塊的編譯和使用
8.2 字符設(shè)備驅(qū)動(dòng)基本編程
8.2.1 字符設(shè)備驅(qū)動(dòng)體驗(yàn)
8.2.2 實(shí)現(xiàn)字符設(shè)備驅(qū)動(dòng)的工作
8.3 驅(qū)動(dòng)程序中的并發(fā)控制方法
8.3.1 并發(fā)控制原理簡介
8.3.2 信號量的編程實(shí)戰(zhàn)
8.3.3 自旋鎖的編程實(shí)戰(zhàn)
8.3.4 linux內(nèi)核提供的其他并發(fā)控制方法
8.4 驅(qū)動(dòng)程序中的阻塞與非阻塞編程
8.4.1 體驗(yàn)阻塞i/o
8.4.2 如何在驅(qū)動(dòng)程序中實(shí)現(xiàn)阻塞i/o
8.4.3 體驗(yàn)非阻塞i/o
8.4.4 如何在驅(qū)動(dòng)程序中實(shí)現(xiàn)非阻塞i/o
8.5 字符設(shè)備驅(qū)動(dòng)程序?qū)σ恍└呒壧匦缘膶?shí)現(xiàn)
8.5.1 non-seekable的實(shí)現(xiàn)
8.5.2 select的實(shí)現(xiàn)
9 第9章 linux字符設(shè)備驅(qū)動(dòng)開發(fā)實(shí)戰(zhàn)
9.1 io內(nèi)存與硬件通信
9.1.1 驅(qū)動(dòng)中的內(nèi)存分配
9.1.2 使用 i/o 端口地址空間與硬件進(jìn)行通信的內(nèi)核api介紹
9.1.3 使用 i/o 內(nèi)存地址空間與硬件進(jìn)行通信的內(nèi)核api介紹
9.1.4 通過i/o內(nèi)存驅(qū)動(dòng)硬件的實(shí)戰(zhàn)——led燈驅(qū)動(dòng)
9.1.5 驅(qū)動(dòng)程序?qū)octl的規(guī)范實(shí)現(xiàn)
9.2 內(nèi)核misc設(shè)備架構(gòu)分析
9.2.1 定義全局變量
9.2.2 注冊主設(shè)備號為10的misc設(shè)備
9.2.3 導(dǎo)出內(nèi)核api —— misc_register函數(shù)
9.2.4 實(shí)施乾坤大挪移的misc設(shè)備open函數(shù)
9.2.5 導(dǎo)出內(nèi)核api —— misc_deregister函數(shù)
9.3 watchdog驅(qū)動(dòng)
9.3.1 相關(guān)概念
9.3.2 watchdog硬件結(jié)構(gòu)分析
9.3.3 watchdog驅(qū)動(dòng)的初始化和卸載
9.3.4 探測函數(shù)watchdog_probe的實(shí)現(xiàn)
9.3.5 實(shí)現(xiàn)misc設(shè)備中對設(shè)備文件的操作
9.3.6 watchdog平臺驅(qū)動(dòng)的設(shè)備移除、掛起和恢復(fù)接口函數(shù)的實(shí)現(xiàn)
9.3.7 測試watchdog驅(qū)動(dòng)
9.4 內(nèi)核編碼規(guī)范與風(fēng)格
9.4.1 縮進(jìn)、長行、{}與空格的放
9.4.2 變量和函數(shù)
9.4.3 注釋.macros和enums
9.4.4 快樂使用內(nèi)核提供的實(shí)現(xiàn)常用功能的宏
10 第10章 linux驅(qū)動(dòng)中的中斷編程
10.1 驅(qū)動(dòng)程序調(diào)測方法與技巧
10.1.1 利用printk
10.1.2 詳解oop消息
10.1.3 利用strace
10.1.4 利用內(nèi)核內(nèi)置的hacking選項(xiàng)
10.1.5 其他調(diào)測方法簡介
10.2 驅(qū)動(dòng)程序中的中斷處理
10.2.1 中斷簡述
10.2.2 驅(qū)動(dòng)程序中進(jìn)行中斷處理涉及到的最基本的內(nèi)核api
10.2.3 驅(qū)動(dòng)程序進(jìn)行中斷處理的實(shí)例代碼分析
10.2.4 其他關(guān)于中斷的內(nèi)核api
10.3 內(nèi)核時(shí)間與內(nèi)核定時(shí)器
10.3.1 內(nèi)核中如何記錄時(shí)間
10.3.2 內(nèi)核定時(shí)器api
10.3.3 內(nèi)核定時(shí)器與內(nèi)核時(shí)間的應(yīng)用案例——按鍵消抖
10.3.4 如何在內(nèi)核中實(shí)現(xiàn)延時(shí)
10.4 中斷頂半部與底半部
10.4.1 區(qū)分和使用中斷頂半部與底半部的原因
10.4.2 tasklet機(jī)制與編程實(shí)例
10.4.3 workqueue機(jī)制與編程實(shí)例
10.4.4 tasklet與workqueue的區(qū)別和不同應(yīng)用環(huán)境總結(jié)
10.5 linux中斷處理系統(tǒng)的架構(gòu)與共享中斷
10.5.1 裸機(jī)程序中的中斷編程與有操作系統(tǒng)下的中斷編程的區(qū)別
10.5.2 linux中斷處理系統(tǒng)的架構(gòu)
10.5.3 關(guān)于共享中斷的說明
10.5.4 共享中斷實(shí)例
11 第11章 linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)開發(fā)實(shí)戰(zhàn)
11.1 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)基礎(chǔ)
11.1.1 體驗(yàn)網(wǎng)卡驅(qū)動(dòng)
11.1.2 網(wǎng)卡驅(qū)動(dòng)的基本知識——2個(gè)結(jié)構(gòu)體和5個(gè)函數(shù)
11.1.3 虛擬網(wǎng)卡snull驅(qū)動(dòng)代碼分析
11.1.4 網(wǎng)卡驅(qū)動(dòng)的編寫主要內(nèi)容總結(jié)
11.2 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)實(shí)例——cs8900
11.2.1 虛擬網(wǎng)卡驅(qū)動(dòng)與真實(shí)網(wǎng)卡驅(qū)動(dòng)的主要區(qū)別
11.2.2 真實(shí)網(wǎng)卡驅(qū)動(dòng)的整體框架分析
11.2.3 驅(qū)動(dòng)中關(guān)于cs8900硬件操作的探討
12 第12章 其他重要設(shè)備驅(qū)動(dòng)開發(fā)實(shí)戰(zhàn)
12.1 塊設(shè)備驅(qū)動(dòng)初步(以ramdisk為例)
12.1.1 體驗(yàn)塊設(shè)備驅(qū)動(dòng)
12.1.2 塊設(shè)備驅(qū)動(dòng)框架介紹
12.1.3 塊設(shè)備的簡單讀寫實(shí)現(xiàn)代碼分析
12.1.4 塊設(shè)備的高效讀寫實(shí)現(xiàn)代碼分析
12.1.5 塊設(shè)備的其他操作接口fops
12.2 lcd驅(qū)動(dòng)
12.2.1 lcd裸機(jī)驅(qū)動(dòng)
12.2.2 幀緩沖(framebuffer)設(shè)備驅(qū)動(dòng)框架結(jié)構(gòu)
12.2.3 lcd驅(qū)動(dòng)實(shí)例代碼
12.2.4 lcd驅(qū)動(dòng)代碼的主干結(jié)構(gòu)的總結(jié)
12.2.5 測試lcd驅(qū)動(dòng)程序
12.3 觸摸屏驅(qū)動(dòng)
12.3.1 觸摸屏裸機(jī)驅(qū)動(dòng)
12.3.2 linux輸入子系統(tǒng)
12.3.3 linux下觸摸屏驅(qū)動(dòng)的實(shí)現(xiàn)步驟
12.3.4 測試觸摸屏驅(qū)動(dòng)程序
12.4 usb驅(qū)動(dòng)初步
12.4.1 linux下4種usb驅(qū)動(dòng)簡介與功能體驗(yàn)
12.4.2 usb接口與規(guī)范
12.4.3 usb設(shè)備驅(qū)動(dòng)基本知識
12.4.4 usb設(shè)備驅(qū)動(dòng)實(shí)例
參考文獻(xiàn)
請描述您所遇到的錯(cuò)誤,我們將盡快予以修正,謝謝!
*必填項(xiàng),請輸入內(nèi)容