fbpx

P 728x90 113

 

 

 linux luxury new

課程簡介 學習菜單 課程預覽 Q & A 課程諮詢 加入會員
現在位置:艾鍗學院數位學習嵌入式linux學程(豪華版)
10th el sale banner

★ 數位學習組合優惠實施中,歡迎填表洽詢!

★ 亦提供實體遠距同步嵌入式Linux課程,請點我 

你有這樣的問題嗎?

想從事嵌入式開發,卻不知道該如何切入?

▪ 有8051、AVR單晶片等MCU開發經驗,如I2C、SPI等,但不知如何將這些Driver移植Linux到平台

▪ 不清楚Linux系統程式設計、Linux 驅動程式的進入點在那裡?

▪ 不懂Linux 驅動程式要如何跟上層的應用程式溝通?不同的硬體裝置對Linux驅動程式的架構是不是也不同?

▪ 在Linux多工的環境下,程式該如何處理多工並同時存取?同步I/O與非同步I/O、中斷、DMA等I/O方式,Linux程式應如何撰寫?

▪ 看過一些Linux 驅動程式的書籍,但卻看不懂?或者是......好像懂,但卻又不知如何寫Linux驅動程式?

我可以學到什麼?

1.清楚掌握C語言的基本及進階觀念、嵌入式系統常用的技巧,並了解程式架構的可維護性、模組化。

2.能夠掌握程式的重要觀念,了解”軟體程式=演算法+資料結構”熟悉不同的設計模式與何時會應用。

3.了解Raspberry Pi的功能與應用,並透過Raspberry Pi 踏入 嵌入式Linux 的世界。

4.了解Linux system call ,而能運用它實現Linux程式,亦藉此了解OS在嵌入式系統所扮演的角色。

5.了解server/client程式運作與TCP/IP原理,並能夠以C語言實作TCP/UDP/Raw Socket.

6.學會如何在嵌入式Linux開發多執緒Pthread程式、網路Socket通訊程式。

7.了解Linux Driver撰寫的各個層面,包含核心API、中斷處理、同步、記憶體管理等等。

8.可以了解user-space與kernel-space之間的關係,Linux Device Driver與Linux作業系統的觀念,為將來的Driver coding打下良好的基礎

9.能具備撰寫Linux硬體驅動程式的能力,實戰GPIO, UART, I2C, SPI等Linux Driver,讓你能快速了解硬體架構及軟體架構

10.了解ARM核心的指令集、記憶體處理器(MMU)、中斷處理,並了解ARM CPU如何和GPU通訊

11.學習以bare-metal (Non-OS)方式驅動如,GPIO、UART、TIMER等I/O

12.透過實作ARM Bootstrap Loader,你可以了解從最底層的ARM Assembly到C main函式所發生的每一件事

學習地圖

學習菜單

• 課程總時數 : 107.5小時
• 觀看天數:180天
• 課程所附教材 : 精編講義、範例程式碼、獨家樹莓派開發套件包

Part1-精通C語言(點選展開)

  • 程式語言導論
  • C程式介紹
  • 運算式
  • 流程控制
  • 函式與巨集
  • 陣列與指標
  • 字串處理
  • 變數範圍
  • 檔案管理
  • NEW data Type

Part2-資料結構(點選展開)

  • 資料結構導論
  • ADT 抽象資料型別設計方法
  • Set 集合 ADT設計
  • Stack堆疊
  • Queue 佇列
  • Linked List鏈結串列
  • Tree樹狀結構
  • Graph 圖形結構
  • Search資料搜尋
  • Sorting資料排序

Part3-Raspberry Pi開發入門實作(點選展開)

  • 課程介紹
  • Raspberry Pi
  • Raspberry Pi 基本操作
  • 如何控制Raspberry Pi I/O

Part4-Linux系統程式設計(點選展開)

  • Low Level I/O Routine
  • File and Directory Manipulation
  • General Library Interface
  • Processes
  • Signals
  • POSIX Thread
  • InterProcess Communication
  • Shell programming
  • Linux Serial Programming
  • Linux Sokcet Programming
  • TCP/IP 網路簡介(1)
  • TCP/IP 網路簡介(2)
  • Wireshark 工具使用
  • TCP Socket程式與Socket API介紹
  • Socket多工處理
  • UDP Socket
  • Unix Domain Socket
  • Socket Option & Ioctl

Part5-嵌入式Linux 驅動程式(點選展開)

  • Linux 驅動程式架構
  • Linux HAL
  • Linux Driver開發流程
  • Linux Kernel核心程式開發與Makefile
  • Driver 模組編譯與載入
  • 字元裝置Driver
  • Linux Misc Device
  • Linux GPIO Driver Framework
    • Linux GPIO Lib
    • BCM2835 GPIO 控制說明
    • Linux GPIO Host Controller驅動程式
  • Linux 中斷服務程式
  • Linux中斷控制器HAL層
  • Bottom Halves (Tasklet & Work Queue)
  • 進階字元Driver
    • Wait Queue
    • Completion及非同步通知
    • Kernel Timer List for LED 閃爍
  • Linux Platform Device & Platform Driver
  • Linux Device Tree
  • Linux SPI Driver Framework
    • Linux SPI Client驅動程式 for SPI Flash
    • Linux MTD 驅動程式
    • Linux SPI Bus master驅動程式
  • Device Tree for ADC Driver (MCP3008)
  • Linux I2C Driver Framework
    • Linux I2C Bus master驅動程式
  • Linux UART Driver Framework
  • Linux User Space Driver - BCM2835 C I/O Library

Part6-ARM Bootloader設計(點選展開)

  • SoC基本架構
  • ARM處理器架構
  • ARM組合語言
  • Thumb mode
  • ARM 標準程序呼叫
  • Memory Barrier & Coprocessor
  • 系統程式-Linker & startup code
  • Bare-metal Development using Raspberry Pi 3
    • 認識Broadcom BCM283x SoC
    • Raspberry Pi 3開機流程
    • 實作 GPIO 驅動-LED、 Button
    • 實作BCM2835 中斷控制器
    • 實作System Timer 、 GPIO中斷
    • 實作UART
  • GPU 與ARM間的溝通
    • 用Mailbox 界面實作Framebuffer
    • Long Polling技術
    • Lab:實驗: Websocket 前後端通訊
    • Lab:實驗: 建立多人聊天室

 

 

贈獨家開發套件包

new Raspberry PI IO v3

 

 

全新數位學習平台

 

728x90企業預付 1

課程預覽
嵌入式Linux驅動程式設計

 

Linux系統程式設計 ARM Boot Loader 設計
C語言精修 資料結構

 

延伸課程

 

 

 

 

 

 

 

 

課程Q&A
   ▪ 什麼是嵌入式系統?有哪些技術範疇?

「嵌入式系統」是一種嵌入在裝置內部,為特定應用而開發的計算機系統,嵌入式系統的設計可說是小規模的系統整合,是一涵蓋資訊、通訊、電子領域之專業;同時其技術領域縱跨軟體嵌入式作業系統RTOS、韌體、I/O介面及硬體裝置範疇。因此從事嵌入式系統開發,必須具備能夠整合軟硬體的紮實功夫。

   ▪ 為什麼選擇用Raspberry Pi來學習嵌入式Linux?

Raspberry Pi 是一片Linux-Based的開源硬體板子,其硬體線路 & SoC DataSheet的揭露相較其他板子算是相當完整,對於想學習嵌入式Linux核心的開發,包含Linux裝置驅動式程式Linux USB驅動程式ARM Bootloader開發不會一直遇到沒有硬體資訊的窘境。此外,由於Raspberry Pi 拉出了40 Pin I/O 介面(包含電源),對於想要以實戰方式學習Linux裝置驅動程式的人將會非常有感覺,而不僅僅是概念上的認知。另外Raspberry Pi 3 具有Wi-Fi和BLE, 所以學習物聯網相關的技術如 IoT Gateway、Sensor Node設計等,硬體支援度也相當好。

其實不少人都玩過Raspberry Pi,但多數人止於”使用”階段,很少真正懂得Pi內部的軟硬體架構設計。艾鍗是以教授業界對於嵌入式Linux系統開發所需的職能作為訓練的目標,而Raspberry Pi 僅是我們硬體教學平台的選擇之一。我們的訓練從空的SD卡開始,由核心原始碼編譯到根目錄檔案系統的完整建置。接著你能熟悉Linux系統程式設計、看得懂DataSheet,理解Linux Driver框架、了解Linux 核心、並能實際完成Linux核心驅動程式。接著你能更進一步挑戰ARM Bootloader 設計,理解ARM CPU架構與指令集、ARM 中斷向量表與SoC間的行為,了解一個程式到底是如何被執行的種種細節 。(此時,你將真正搞懂什麼是”微處理器”)。

   ▪ Android HAL跟嵌入式Linux的關聯性在哪邊?

首先必須了解Google Android Framework,是一個GUI 圖形系統。而如何讓APP也能存取到底層的硬體如G-Sensor,GPS,WiFI等。都必須有賴於Android Framework 的HAL軟體架構.所謂的Android HAL,就是介接上層用JAVA寫的Framework code 和Linux底層的部份。使得APP只看到HAL層,HAL內部負責底層Linux的溝通。而底層硬體就是和linux Driver 有關了。總之,底層要先能動,上層APP才可以用!

   ▪ 學嵌入式可以做什麼?

▲有嵌入式Linux技術在身,你可以從事: 嵌入式Linux相關職缺  

▲有嵌入式Linux技術在身,你可以開發:
電腦/嵌入式系統一電腦、手機及其他消費性電子產品的開發、生醫儀器、ICT資通訊產品
控制系統一自動控制系統(PID)、HMI程式、馬達驅動、機械手臂、機器人
通訊系統一無線通訊、網卡開發
IoT 物聯網— IoT Gateway、Sensor Node
影像處理—應用影像識別、影像處理

   ▪ 艾鍗的嵌入式數位課程有什麼不一樣?

艾鍗的數位課程設有專屬諮詢平台,為你解答課程問題、提供學習建議,讓線上學習不再是單打獨鬥!我們強調“How to do”與“Trial and error”並引導“How to think”的訓練方式,授課講師皆為實際從事產品開發設計的資深RD工程師,因此,每一門課都是教授實務的Coding方法。配合我們專為學習者設計的開發套件進行實作演練,你也可以是實戰派能手!

 

課程諮詢

 

e call