15 9 月 2014

嵌入式 C語言 課程 – Embedded Linux 移植必備技能最佳首選

嵌入式 課程嵌入式 系統 C語言 課程簡介

嵌入式 C語言


104人力銀行目前職缺請參考→1 0 4目前 Embedded Linux 相關職缺查詢 請在 關鍵字 搜尋 ” Embedded Linux ”

嵌入式 系統 課程特色

在 嵌入式 系統處處受限的環境中,C 語言得力於編譯出來的執行檔小、執行速度快、容易移植到不同平台等優點,其中也是學會 Embedded Linux 移植前必學技能,因此成為 嵌入式 系統 的首選語言。想進入 嵌入式 系統 的世界,熟悉 C 語言成了此領域的最低門檻。本課程會詳細解說 C 語言的各項語法,並加強 嵌入式 系統 會用到的部份,讓您取得進入 嵌入式 系統 設計的門票。是給沒學過 C 語言、或稍有基礎的學員,最適合的 入門課程。


嵌入式 C語言 Embedded-linux課程

嵌入式系統 嵌入式 C語言 與 一般 C語言 的差異

C語言
  • 特別注重如何用 嵌入式 C語言 控制硬體:
    一般 C語言 不需去控制硬體,不過 嵌入式 C語言 需要學會如何用程式去控制硬體。
  • 特別注重執行檔底層運作原理:
    一般 C語言 只要能編譯出執行檔,放到 Windows 上跑即可。 嵌入式 C語言 會詳細介紹執行檔運作時的底層原理。如:「負數」在電腦內如何表示的問題。一般 程式設計師 只要能寫出「-2」就可以了。嵌入式 C 語言 工程師得知道,在電子電路層面上,是根本沒有「負號」這個觀念的,電子電路只能用「0 與 1」來表示「負數」。如何做到這點,就是我們 嵌入式 C語言 課程內容會教的。
  • 特別注重 C 語言中的「條件編譯」:
    一般 C 語言 工程師,他們執行檔案的硬體平台只有 Intel x86 一種,所以他們的程式碼撰寫時,不用考慮到這份原始碼可能會移植到不同硬體的情況。但要寫到「一份程式」能在「千萬種不同手機」上跑起來,就是功力了。因此,寫 嵌入式 C語言 的 工程師,會大量運用一大堆 if ~ then 的條件判斷,讓程式編譯成執行檔時,會根據目標硬體的不同,編譯出不同硬體平台的執行檔。而這種手法,就稱為「條件編譯」,乃 嵌入式 軟體工程師 特別需要訓練的能力。

嵌入式 課程 嵌入式 課程 目標

  • 熟悉 嵌入式 C語言 開發環境的架設與使用。
  • 了解 C 語言變數、分支、迴圈、函式…等基本語法。
  • 認識前處理器、指標、特殊宣告等嵌入式系統常用的技巧。
  • 知道一般 C語言與 嵌入式 C 語言不同之處。

icon_arrow_orange 課程對象


icon_arrow_orange 課程內容

第一章 課程介紹 與 環境安裝

  • C 語言 歷史介紹
  • 開發環境安裝
  • 開發板 與 PC 的連接
  • 如何傳送檔案到開發板

第二章 C 語言程式骨架與編譯流程

  • C 語言原始碼基本架構
  • 編譯與執行
  • 一般編譯與執行
  • 交叉編譯與執行
  • 使用 Make 編譯執行檔
  • 除錯工具 gdb 介紹
  • 如何對開發板執行遠程除錯

第三章 定數、變數、常數

  • 定數四大種類
    – 整數定數:123, 0123, 0x123, 123L, 123LL, 123u
    – 浮點數定數:1.23, 1.23F, 1.23L, 1.23e-5
    – 文字定數:’a’, L’a’, “Hello”
    – 布林值定數:true, false
  • 變數
    – 宣告公式:正負號 長度 型態 名稱 = 初值
    – 命名規則與習慣
    – 溢位與不足(Overflow vs. Underflow)
    – 固定寬度變數:int8_t, uint8_t, int16_t, uint16_t, …
    – 轉型(Casting)
  • 常數
    – #define 常數
    – const 常數
    – enum 常數

第四章 運算子

  • 運算子簡介
  • 各種運算子介紹
    – 算數運算子
    – 關係運算子
    – 條件運算子
    – 位元運算子
    – 其它運算子
  • 運算子優先順序與結合性
  • 運算式(Expression)

第五章 分支與迴圈

  • 分支:if~else, switch~case
  • 迴圈:for, while, do~while

第六章 複合資料結構

  • 陣列
    – 宣告方法
    – 陣列在底層記憶體的排列方式
  • 字串
    – char * 與 char [ ] 的不同
    – 常用的字串函數
  • 結構體(struct)
    – 簡介、定義、宣告
    – 結構體在底層記憶體的排列方式
    – 結構體成員對齊記憶體存取邊界的方法(Memory Alignment)
    – 位元欄位(bitwise field structure)
  • 組合體(union)
    – 簡介、定義、宣告
    – 組合體在嵌入式系統上的應用場合

第七章 指標

  • 簡介與定義:指標 = 存放位址的變數
  • 宣告與初始化
  • 各種指標介紹與應用
    – 整數、浮點數、字元指標
    – 萬用指標:void *
    – 陣列指標
    – 常數指標 vs. 指標常數(Pointer of Constant vs. Constant Pointer)
  • 如何直接存取嵌入式系統內的特定位址
    – 宣告語法
    – 慣用資料型態:unsigned long *
    – volatile 修飾字

第八章 函數

  • 函數定義、宣告、呼叫
  • 區域變數、全域變數、與靜態變數
  • 參數如何傳遞:傳值呼叫 vs. 傳址呼叫
  • 指向函數的指標(Function Pointer)
  • 回呼函數(Callback Function)
  • 利用函數傳回「左值(l-value, Left Value)」

第九章 檔案操作

  • 檔案串流介紹(File Streaming)
  • 使用 C 標準函式庫存取檔案:fopen(), fclose(),…
  • 使用 Linux 系統呼叫存取檔案:open(), close(),…
第十章 前置處理器
  • 前置處理器命令簡介
  • 巨集定義指令(#define)
    – 定義常數與函數
    – 字串化運算子(Stringify Operator):#
    – 字符相接運算子(Token Concatenation Operator): ##
  • 條件式編譯(#if)
    – 語法介紹:#ifdef, #if defined(…)
    – 使用時機
    – 當成註解使用:#if 0 ~ #else ~ #endif
  • 標頭檔引入(#include)
    – 語法:#include 與 #include “…”
    – 多重引入所造成的問題(Multiple Include Problem)
  • 其它指令:#error, #pragma,…

第十一章 使用C語言模擬物件導向

  • 物件導向程式設計簡介與好處
  • 使用 C 語言模擬「封裝」
  • 使用 C 語言模擬「繼承」
  • 使用 C 語言模擬「多型」

第十二章 其它嵌入式 C 語言技巧

  • GNU 對 C 語言的擴充語法
    – switch ~ case 支援「範圍」
    – 零長度陣列
    – __builtin_XXX 系列函數
  • 嵌入式 C 語言中 if 條件特殊寫法: if (0= =x)
  • 可變動函數參數個數(Variable Parameters of Functions)
  • 程式優化技巧
    – 環狀緩衝區
    – 查表法

icon_arrow_orange 課程時數

嵌入式 C 語言 入門課程:24 小時
課程內容 時有更新,奇科電腦 保留課程內容變動之權利,最新詳情請洽02-27116373