- 軟件大?。?span>207.04M
- 軟件語言:中文
- 軟件類型:國產(chǎn)軟件
- 軟件類別:免費軟件 / 電子圖書
- 更新時間:2017-07-31 14:30
- 運行環(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掃描版,非常清晰詳細哦,有興趣的朋友趕緊來綠色資源網(wǎng)下載吧!
深入淺出嵌入式底層軟件開發(fā)包含arm裸機程序開發(fā)、嵌入式linux系統(tǒng)建構(gòu)、linux驅(qū)動程序開發(fā)三部分。從軟硬件的分界面開始,循序漸進,逐一詳細介紹嵌入式底層軟件開發(fā)的各個技術(shù)要點,技術(shù)體系全面;既有一定的理論,但更加強調(diào)實戰(zhàn)性;深入淺出,能讓讀者以最少的時間成本代價獲得嵌入式底層軟件開發(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中進行裸機程序的編輯、編譯、運行
1.4.2 在axd中進行裸機程序調(diào)試的方法與步驟
1.5 realview mdk開發(fā)環(huán)境的使用
1.5.1 在mdk開發(fā)環(huán)境下編寫裸機程序
1.5.2 mdk調(diào)試裸機程序的方法與步驟
.1.6 其他常見尋址模式與常見指令
1.6.1 其他常見尋址模式(基址尋址、多寄存器尋址、堆棧尋址、寄存器移位尋址、相對尋址)
1.6.2 其他常見指令(訪存指令、數(shù)據(jù)處理指令、乘法指令)
2 第2章 arm編程進階
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 裸機硬件的控制方法與例程
2.3.1 建立真實硬件的開發(fā)和調(diào)試環(huán)境
2.3.2 軟件控制(驅(qū)動)硬件的編程原理
2.3.3 裸機硬件控制程序?qū)嵗?/p>
2.3.4 啟動例程
2.4 看門狗定時器(watchdog)
2.4.1 看門狗定時器的用途
2.4.2 看門狗工作原理
2.4.3 看門狗實驗
2.5 系統(tǒng)時鐘
2.5.1 系統(tǒng)工作時鐘頻率
2.5.2 時鐘驅(qū)動實驗
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ū)動實驗
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ū)動實驗
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燈實驗
3.4 semihosting與硬件重定向
3.4.1 semihosting半主機調(diào)試
3.4.2 硬件重定向
3.5 系統(tǒng)調(diào)用與軟件中斷swi的實現(xiàn)
3.5.1 系統(tǒng)調(diào)用
3.5.2 軟件中斷
3.5.3 軟中斷處理
3.5.4 led系統(tǒng)調(diào)用實驗
3.6 進程切換的實現(xiàn)
3.6.1 進程
3.6.2 進程控制塊pc
3.6.3 進程創(chuàng)建
3.6.4 進程隊列
3.6.5 進程調(diào)度(schedule)
3.6.6 上下文切換
3.7 mmu與內(nèi)存保護的實現(xiàn)
3.7.1 存儲管理單元mm
3.7.2 cach
3.7.3 cp15協(xié)處理器
3.8 實戰(zhàn):小型多任務(wù)操作系統(tǒng)minios的實現(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 體驗嵌入式linux系統(tǒng)
4.2 linux操作系統(tǒng)安裝
4.2.1 在window上安裝虛擬機
4.2.2 在虛擬機上安裝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 準備工作
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命令實現(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 體驗linux內(nèi)核配置、編譯與使用
6.2.2 為s3c2440移植內(nèi)核
6.2.3 配置并裁減內(nèi)核
6.2.4 運行內(nèi)核并驗證內(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 實戰(zhàn):修改kconfig和makefile,完成向內(nèi)核中添加新的功能組件——網(wǎng)卡、聲卡、lcd、觸摸屏驅(qū)動
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標準介紹
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 使用啟動腳本完成/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ū)動程序開發(fā)基礎(chǔ)
8.1 linux設(shè)備驅(qū)動程序簡介
8.1.1 設(shè)備驅(qū)動分類和內(nèi)核模塊
8.1.2 設(shè)備文件和設(shè)備驅(qū)動
8.1.3 內(nèi)核模塊的編譯和使用
8.2 字符設(shè)備驅(qū)動基本編程
8.2.1 字符設(shè)備驅(qū)動體驗
8.2.2 實現(xiàn)字符設(shè)備驅(qū)動的工作
8.3 驅(qū)動程序中的并發(fā)控制方法
8.3.1 并發(fā)控制原理簡介
8.3.2 信號量的編程實戰(zhàn)
8.3.3 自旋鎖的編程實戰(zhàn)
8.3.4 linux內(nèi)核提供的其他并發(fā)控制方法
8.4 驅(qū)動程序中的阻塞與非阻塞編程
8.4.1 體驗阻塞i/o
8.4.2 如何在驅(qū)動程序中實現(xiàn)阻塞i/o
8.4.3 體驗非阻塞i/o
8.4.4 如何在驅(qū)動程序中實現(xiàn)非阻塞i/o
8.5 字符設(shè)備驅(qū)動程序?qū)σ恍└呒壧匦缘膶崿F(xiàn)
8.5.1 non-seekable的實現(xiàn)
8.5.2 select的實現(xiàn)
9 第9章 linux字符設(shè)備驅(qū)動開發(fā)實戰(zhàn)
9.1 io內(nèi)存與硬件通信
9.1.1 驅(qū)動中的內(nèi)存分配
9.1.2 使用 i/o 端口地址空間與硬件進行通信的內(nèi)核api介紹
9.1.3 使用 i/o 內(nèi)存地址空間與硬件進行通信的內(nèi)核api介紹
9.1.4 通過i/o內(nèi)存驅(qū)動硬件的實戰(zhàn)——led燈驅(qū)動
9.1.5 驅(qū)動程序?qū)octl的規(guī)范實現(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 實施乾坤大挪移的misc設(shè)備open函數(shù)
9.2.5 導(dǎo)出內(nèi)核api —— misc_deregister函數(shù)
9.3 watchdog驅(qū)動
9.3.1 相關(guān)概念
9.3.2 watchdog硬件結(jié)構(gòu)分析
9.3.3 watchdog驅(qū)動的初始化和卸載
9.3.4 探測函數(shù)watchdog_probe的實現(xiàn)
9.3.5 實現(xiàn)misc設(shè)備中對設(shè)備文件的操作
9.3.6 watchdog平臺驅(qū)動的設(shè)備移除、掛起和恢復(fù)接口函數(shù)的實現(xiàn)
9.3.7 測試watchdog驅(qū)動
9.4 內(nèi)核編碼規(guī)范與風(fēng)格
9.4.1 縮進、長行、{}與空格的放
9.4.2 變量和函數(shù)
9.4.3 注釋.macros和enums
9.4.4 快樂使用內(nèi)核提供的實現(xiàn)常用功能的宏
10 第10章 linux驅(qū)動中的中斷編程
10.1 驅(qū)動程序調(diào)測方法與技巧
10.1.1 利用printk
10.1.2 詳解oop消息
10.1.3 利用strace
10.1.4 利用內(nèi)核內(nèi)置的hacking選項
10.1.5 其他調(diào)測方法簡介
10.2 驅(qū)動程序中的中斷處理
10.2.1 中斷簡述
10.2.2 驅(qū)動程序中進行中斷處理涉及到的最基本的內(nèi)核api
10.2.3 驅(qū)動程序進行中斷處理的實例代碼分析
10.2.4 其他關(guān)于中斷的內(nèi)核api
10.3 內(nèi)核時間與內(nèi)核定時器
10.3.1 內(nèi)核中如何記錄時間
10.3.2 內(nèi)核定時器api
10.3.3 內(nèi)核定時器與內(nèi)核時間的應(yīng)用案例——按鍵消抖
10.3.4 如何在內(nèi)核中實現(xiàn)延時
10.4 中斷頂半部與底半部
10.4.1 區(qū)分和使用中斷頂半部與底半部的原因
10.4.2 tasklet機制與編程實例
10.4.3 workqueue機制與編程實例
10.4.4 tasklet與workqueue的區(qū)別和不同應(yīng)用環(huán)境總結(jié)
10.5 linux中斷處理系統(tǒng)的架構(gòu)與共享中斷
10.5.1 裸機程序中的中斷編程與有操作系統(tǒng)下的中斷編程的區(qū)別
10.5.2 linux中斷處理系統(tǒng)的架構(gòu)
10.5.3 關(guān)于共享中斷的說明
10.5.4 共享中斷實例
11 第11章 linux網(wǎng)絡(luò)設(shè)備驅(qū)動開發(fā)實戰(zhàn)
11.1 網(wǎng)絡(luò)設(shè)備驅(qū)動基礎(chǔ)
11.1.1 體驗網(wǎng)卡驅(qū)動
11.1.2 網(wǎng)卡驅(qū)動的基本知識——2個結(jié)構(gòu)體和5個函數(shù)
11.1.3 虛擬網(wǎng)卡snull驅(qū)動代碼分析
11.1.4 網(wǎng)卡驅(qū)動的編寫主要內(nèi)容總結(jié)
11.2 網(wǎng)絡(luò)設(shè)備驅(qū)動實例——cs8900
11.2.1 虛擬網(wǎng)卡驅(qū)動與真實網(wǎng)卡驅(qū)動的主要區(qū)別
11.2.2 真實網(wǎng)卡驅(qū)動的整體框架分析
11.2.3 驅(qū)動中關(guān)于cs8900硬件操作的探討
12 第12章 其他重要設(shè)備驅(qū)動開發(fā)實戰(zhàn)
12.1 塊設(shè)備驅(qū)動初步(以ramdisk為例)
12.1.1 體驗塊設(shè)備驅(qū)動
12.1.2 塊設(shè)備驅(qū)動框架介紹
12.1.3 塊設(shè)備的簡單讀寫實現(xiàn)代碼分析
12.1.4 塊設(shè)備的高效讀寫實現(xiàn)代碼分析
12.1.5 塊設(shè)備的其他操作接口fops
12.2 lcd驅(qū)動
12.2.1 lcd裸機驅(qū)動
12.2.2 幀緩沖(framebuffer)設(shè)備驅(qū)動框架結(jié)構(gòu)
12.2.3 lcd驅(qū)動實例代碼
12.2.4 lcd驅(qū)動代碼的主干結(jié)構(gòu)的總結(jié)
12.2.5 測試lcd驅(qū)動程序
12.3 觸摸屏驅(qū)動
12.3.1 觸摸屏裸機驅(qū)動
12.3.2 linux輸入子系統(tǒng)
12.3.3 linux下觸摸屏驅(qū)動的實現(xiàn)步驟
12.3.4 測試觸摸屏驅(qū)動程序
12.4 usb驅(qū)動初步
12.4.1 linux下4種usb驅(qū)動簡介與功能體驗
12.4.2 usb接口與規(guī)范
12.4.3 usb設(shè)備驅(qū)動基本知識
12.4.4 usb設(shè)備驅(qū)動實例
參考文獻
請描述您所遇到的錯誤,我們將盡快予以修正,謝謝!
*必填項,請輸入內(nèi)容