首頁 搜尋 我的知識庫
去園區當Arm工程師:嵌入式C語言全高度昇華

去園區當Arm工程師:嵌入式C語言全高度昇華

作者: 王利濤
出版社: 深智數位
出版日期: 2022/11/20
ISBN-13: 9786267146590
書店 1







內容描述


☆★☆★【為嵌入式讀者打造的C語言進階學習圖書】★☆★☆
C語言可說是近代程式語言的始祖,但也從未被時代的洪流淘汰。

  在人工智慧盛行的今天,很多人學程式語言想到的就是Python,找工作要求的是Java,大家都覺得這兩個語言較為流行,是主流語言。然而靜下心來想想,我們現在的生活,其實是用大大小小的硬體堆疊起來的。這些硬體要能正常運作,一定有一個軟體在上面運作,你可能沒想到,這些大大小小硬體的靈魂,大部分都是C語言寫出來的。C語言可說是近代程式語言的始祖,但也沒有被時代的洪流淘汰。在不斷更新標準及改版,C語言與時俱進,不斷以其輕巧快速簡單的特點在一個又一個新出現的硬體上穩定提供服務,從手機、感測器、VR/AR設備、車載系統、家電、衛星、望遠鏡,全部看得到C語言的身影。這些被歸類於「嵌入式」的系統,其資源有限,又有即時反應的要求,時至今日,C語言仍然遙遙領先其它號稱新世代的程式語言。本書雖然歸類於C語言,但充分展現出嵌入式系統設計的精華,在和強調演算法的其它語言相比,更在乎的是資源分配、記憶體管理、小輕快穩的編譯,在最不佔系統資源的情況下,完成控制硬體的工作。是難得嵌入式系統C語言的好書,讓你寫出強大穩健的硬體控制系統。

本書特色

  ✪Linux下的基本環境安裝
  ✪完整說明電腦架構、CPU工作原理,晶片製作原理
  ✪ARM系統結構及組合語言
  ✪C程式的編輯、連結、安裝、運行
  ✪記憶體堆疊、堆積的管理
  ✪GNU C編譯器及擴充語法說明
  ✪C的資料結構及最完整的指標說明,範例
  ✪C和物件導向、C語言的程式模組化
  ✪C語言的多工設計及作業系統設計


目錄大綱


第1章  工欲善其事,必先利其器
1.1  程式編輯工具:Vim
1.2  程式編譯工具:make
1.3  程式管理工具:Git

第2章  電腦系統結構與CPU工作原理
2.1  一顆晶片是怎樣誕生的
2.2  一顆CPU是怎麼設計出來的
2.3  電腦系統結構
2.4  CPU性能提升:Cache機制
2.5  CPU性能提升:管線
2.6  多核心CPU
2.7  後莫爾時代:異質計算的崛起
2.8  匯流排與地址
2.9  指令集與微架構

第3章  ARM系統結構與組合語言
3.1  ARM系統結構
3.2  ARM組合語言指令
3.3  ARM定址方式
3.4  ARM虛擬指令
3.5  ARM組合語言程式設計
3.6  C語言和組合語言混合程式設計
3.7  GNU ARM組合語言

第4章  程式的編譯、連結、安裝和運行
4.1  從來源程式到二進位檔案
4.2  前置處理過程
4.3  程式的編譯
4.4  連結過程
4.5  程式的安裝
4.6  程式的運行
4.7  連結靜態程式庫
4.8  動態連結
4.9  外掛程式的工作原理
4.10  Linux核心模組運行機制
4.11  Linux核心編譯和啟動分析
4.12  U-boot重定位分析
4.13  常用的binutils工具集

第5章  記憶體堆疊管理
5.1  程式運行的“馬甲”:處理程序
5.2  Linux環境下的記憶體管理    
5.3  堆疊的管理
5.4  堆積記憶體管理
5.5  mmap映射區域探秘
5.6  記憶體洩漏與防範
5.7  常見的記憶體錯誤及檢測

第6章  GNU C編譯器擴充語法精講
6.1  C語言標準和編譯器
6.2  指定初始化
6.3  巨集構造“利器”:敘述運算式
6.4  typeof與container_of巨集
6.5  零長度陣列
6.6  屬性宣告:section
6.7  屬性宣告:aligned
6.8  屬性宣告:format    
6.9  屬性宣告:weak
6.10  內聯函數
6.11  內建函數
6.12  可變參數巨集

第7章  資料儲存與指標
7.1  資料型態與儲存
7.2  資料對齊
7.3  資料的可攜性
7.4  Linux核心中的size_t類型
7.5  為什麼很多人程式設計時喜歡用typedef
7.6  列舉類型
7.7  常數和變數
7.8  從變數到指標
7.9  指標與陣列的“曖昧”關係
7.10  指標與結構
7.11  二級指標
7.12  函數指標
7.13  重新認識void

第8章  C語言的物件導向程式設計思想    
8.1  程式重複使用與分層思想
8.2  物件導向程式設計基礎
8.3  Linux核心中的OOP思想:封裝
8.4  Linux核心中的OOP思想:繼承
8.5  Linux核心中的OOP思想:多形

第9章  C語言的模組化程式設計思想
9.1  模組的編譯和連結
9.2  系統模組劃分
9.3  一個模組的封
9.4  標頭檔深度剖析
9.5  模組設計原則
9.6  被誤解的關鍵字:goto
9.7  模組間通訊
9.8  模組設計進階
9.9  AIoT時代的模組化程式設計

第10章  C語言的多工程式設計思想和作業系統入門
10.1  多工的裸機實現
10.2  作業系統基本原理
10.3  中斷
10.4  系統呼叫
10.5  揭開檔案系統的神秘面紗
10.6  記憶體介面與映射
10.7  記憶體與外部設備
10.8  暫存器操作
10.9  記憶體管理單元MMU
10.10  處理程序、執行緒和程式碼協同

參考文獻


作者介紹


作者簡介

王利濤

  嵌入式工程師,培訓講師,多年嵌入式開發經驗,包括晶片測試、BSP、驅動開發、USB子系統等,目前在開發“嵌入式工程師自我修養”系列線上影片教學,以及在個人部落格“宅學部落”分享更多的嵌入式、Linux、AIoT技術。






相關書籍

SolidWorks Animator 動畫與攝影機(附範例VCD)

設計職人必修 Photoshop + Illustrator 圖案與背景設計快速攻略

Illustrator向量圖形設計

Web應用系統安全|現代Web應用程式開發的資安對策