Sc-banner

 

  linux banner 2017 v21 710 5 1
學程簡介 課程大綱 課程預覽 專題實績 會員優惠

 

▪ 從初學者到進階學習者,完整嵌入式教育訓練規劃  

▪ 課程可依需求搭配選擇,填表預約免費諮詢!

 
課程大綱

embedded linux ai course 2018

"course

 

第一階段   嵌入式Linux系統建置實務

明明是基本功的部分卻卡好久?從不會到會的關鍵一步,重點統整、障礙突破,帶你穩紮穩打基本功,了解遇到問題該怎麼解決,快速上手Linux系統。

此門課是為了進入嵌入式Linux開發的預備課程,要在Linux作業系統開發,對Linux這套作業系統的操作環境須要有一定的熟悉度,包含Linux系統架構、檔案系統結構、指令操作、網路設定、常用伺服器建置等。

  
 
  • 開發平台硬體Raspberry Pi 3
  • 套件安裝管理及Linux常用指令
    • 套件安裝 dpkg及用法
    • 套件安裝 apt-get及用法
    • 套件安裝 apt-cache及用法
    • 網路配置
    • 服務配置 -啟用SSH
    • 常用指令
    • 開機重啟 命令
    • Linux相關指令分類
 
  • 檔案結構與檔案系統
    • 檔案類型 與副檔名
    • 權限
    • 檔案系統 類型
    • 系統結構
    • 硬碟分割
  • 使用者帳號管理
  • 伺服器安裝與設定
    • SAMBA

 

第二階段   嵌入式Linux設計開發與軟硬體整合

了解嵌入式系統架構並能進行軟硬體系統的整合、移植與開發,幫助開發者Debug與分析問題。

在拿到一般嵌入式 BSP後懂得如何開始,會知道如何進行核心組態與編譯, Boot loader 編譯以及Root File system建立等。 能熟悉GNU Toolchain的使用,包含GNU AutoTools與Makefile的撰寫。熟悉Open Source 程式與函式庫的移植技巧 。 課程利用Raspberry Pi  開源硬體,讓你從空的SD card,從無到有建構自己的嵌入式Linux 系統並能使板子能開機 (Board bring up)。在Linux系統建立完成之後,教你開發 Linux Pthread、Socket及File (Device) I/O的系統程式。最後,以嵌入式Linux常見的產品,如IPCam、Wi-Fi Router、NAS,手把手教你這些功能是如何被實現的。

 
  • 嵌入式系統軟硬體架構與開發流程
  • 嵌入式 Linux BSP 建立 :
    • 安裝 Toolchain 與專案編譯環境設定
    • Boot loader 簡介與U-boot 編譯與使用
    • Linux Kernel 配置與編譯
    • Root filesystem 建立-使用buildroot/Yocto
  • Flash Layout 配置與Linux MTD
 
  • Open source 程式移植
    • gcc 常用 編譯參數說明與最佳化
    • Make、 Makefile 說明
    • GNU Build System- Automake
    • BusyBox
  • 嵌入式Linux實作整合應用
    • Media Player:Porting MP3 Player
    • NAS: Porting SAMBA
    • Wi-Fi Router:Wi-Fi Driver, hostapd, dhcpd, bridge, ...
    • IP Camera:Porting Streaming server

 

第三階段   嵌入式Linux驅動程式實戰

不管你是要自己撰寫或移植,這都是資深嵌入式系統工程師的必修課。

熟悉Linux驅動程式架構並能實際動手撰寫Linux 核心底層的驅動程式。 了解如何撰寫Linux硬體驅動程式,配合Raspberry Pi 硬體實戰 GPIO Driver、Linux中斷處理、UART Driver、SPI Driver、I2C Driver、ADC Driver等Driver。

  
 
  • 字元裝置Driver
  • Linux Misc Device
  • Linux GPIO 驅動程式 for LED, Button,Relay
  • Raspberry Pi 3 功能說明與BCM283x 使用說明
  • Pi 擴充卡硬體功能介紹與電路圖接腳說明
  • Linux 中斷註冊 & 中斷控制器HAL層架構
  • Pi 擴充卡硬體功能介紹與電路圖接腳說明
  • Bottom Halves (Tasklet & Work Queue)
  • 進階字元Driver:
    • Non- blocking I/O : 使用Wait Queue & completion 機制
    • kernel 對UserSpace通知: SIGIO 信號非同步通知,call_usermodehelper()
 
  • Kernel Timer List (Jiffies, timer ticks) for LED 閃爍
  • Linux Serial port 驅動程式 for Bluetooth 模組
  • Linux Platform Device & Platform Driver 架構
  • Linux Device Tree
  • Linux SPI Client驅動程式 for ADC Driver (MCP3008)
  • Linux IIO Driver(Linux Industrial I/O Subsystem)
  • Linux SPI Bus master 驅動程式 for BCM2835 SPI controller
  • Linux I2C Client驅動程式 for EEPROM
  • Linux I2C Bus master驅動程式 for BCM2835 I2C controller
  • Linux User Space Driver - BCM2835 C I/O Library

 

第四階段   嵌入式Linux應用實戰

A.嵌入式AI影像辨識

透過本課程可以了解邊緣運算 : 嵌入式AI技術實現架構,並能夠實際進行AI影像辨識之應用

 
  • 終端裝置的AI運算與應用
    • 如何用Intel Movidius Neural Compute Stick(NCS)實現AI邊緣運算
    • Intel Movidius Compute Stick 架構
    • Intel NCS SDK安裝與程式開發說明
    • Run CNN model (MINST) on Raspberry Pi
 
embeddedlinux MovidiusAI Edge Computing

 

B.ROS機器人開發

教你用ROS快速建置可以運行的機器人系統

ROS (Robot Operation System,機器人作業系統) 、SALM(simultaneous localization and mapping,即時定位與地圖構建) 、Navigation(導航)等。搭配ROS認證機器人Turtlebot與程式開發實作,在ROS的開源平台下,帶你靈活運用各種機器人相關研究的資源和演算法,快速掌握機器人的開發關鍵。未來,無論是開發機器人、自駕車或是無人機,都將更easy!

  
 
  • ROS環境建置與必會指令教學:
    • ROS機器人作業系統介紹
    • ROS框架與系統架構
    • ROS必會指令教學(Kinetic ver)與實作演練
    • Raspberry pi 3 必會操作 (Ubuntu 16.04 with Mate desktop)
    • ROS系統安裝教學 (Ubuntu 16.04 with Mate desktop)
      • 系統image檔下載與安裝
      • Ubuntu系統測試
      • 無線網路設置與GUI介面安裝
      • 遠端控制設定
    • 開發環境建置教學
      • 設定roscd路徑
      • 測試ROS node
      • 安裝基礎套件(libserial、ros_control)
      • 常見問題與解決方案說明
 
  • Laser Based 2D SLAM演算法實戰
    • Gmapping (地圖構建開源套件)教學
      • Gmapping操作與介紹
      • Gmapping應用說明
      • Gmapping實作演練
    • Hector SLAM教學
      • Hector SLAM演算法原理解析
      • Hector SLAM應用說明
      • Hector SLAM實作演練

  

 
  • 常見2D SLAM & Estimation 演算法實戰
    • 常見演算法介紹(Hector SLAM、Gmapping、KartoSLAM、CoreSLAM、LAgoSLAM…)
    • 演算法比較
    • 演算法數學式解析
    • 演算法實作演練
  • Laser Odom fused with IMU (EKF: robot_localization pkg.)實戰
    • Laser Odom教學
    • Laser Odom應用說明
    • IMU(慣性感測元件)說明
    • 實作演練
  • Navigation Stack Setup
  • Navigation演算法架構講解
 
  • Localization
    • AMCL(adaptive Monte Carlo localization)原理與應用說明
    • AMCL實作演練
  • System overall integration
  • 演算法相關重要參數
  • 專案實務開發常見問題與解決方案說明

 ROS class 728x90

 

C.深度學習AI實現

Coming Soon...

預先洽詢享超早鳥優惠


online banner

 

Linux系統程式設計  
▶ 了解Linux system call (如I/O, IPC, pthread等),而能運用這些system call實現linux程式,亦藉此了解OS在嵌入式系統所扮演的角色
▶ 了解 server/client程式運作與 TCP/IP原理
▶ 能夠以 C語言實作 TCP/UDP/Raw Socket
▶ 能夠以 ioctl/fcntl/setsockop去控制 Socket;的行為
▶ 實現 Broadcast,Multicast
  
 
  • 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
  Linux系統程式設計-Linux Socket
  • TCP/IP 網路簡介(1)
  • TCP/IP 網路簡介(2)
  • Wireshark 工具使用
  • TCP Socket程式與Socket API介紹
  • Socket多工處理
  • UDP Socket
  • Unix Domain Socket
  • Socket Option & Ioctl

 
ARM Boot Loader設計  
▶ 了解ARM核心架構與ARM例外處理
▶ 能熟悉ARM組合語言並能撰寫Startup code與Linker Script
▶ 配合Raspberry Pi硬體自幹 Boot code
  
 
  • SoC基本架構
  • ARM處理器架構
  • ARM組合語言
  • Thumb mode
  • 標準程序呼叫
  • ARM Exception handling /例外中斷處理
  • 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

 

延伸學習-課程預覽
課程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-SensorGPSWiFI等。都必須有賴於Android Framework HAL軟體架構.所謂的Android HAL,就是介接上層用JAVA寫的Framework code Linux底層的部份。使得APP只看到HAL層,HAL內部負責底層Linux的溝通。而底層硬體就是和linux Driver 有關了。總之,底層要先能動,上層APP才可以用

▪ 學嵌入式可以做什麼?

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

【合報享超值優惠,歡迎洽詢!】

 

OpenCV-A 728x90

 

FPGA 728x90

 

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

艾鍗強調"How to do"與"Trial and error"並引導"How to think"的訓練方式,擔任本學程的講師皆為實際從事產品開發設計的資深RD工程師/研發經理,正因為如此,每一門課都是提供業界實際的開發方法,不僅提供原理、架構、觀念,我們更把實務上產品開發過程中所遇到的問題,累積解決問題的經驗整理成課程,透過Hands on training的方式,教授業界實務開發要領與分享工程問題解決Know-How,讓你可以快速了解Embedded Linux的開發工作,並能真正將Embedded Linux導入產品開發。

課程諮詢

 

 

【學程】嵌入式Linux開發實務 假日進修班 開課日期:107/08/18(六) 課程時段:假日上課 上課時間:09:30~17:30   年中限時優惠,立即洽詢!