總網頁瀏覽量

顯示具有 Linux驅動程式 標籤的文章。 顯示所有文章
顯示具有 Linux驅動程式 標籤的文章。 顯示所有文章

2026年4月3日 星期五

【ARM Cortex-A SoC 嵌入式 Linux 系統建置實戰研習:平台建置、移植與整合開發】課程大綱

 

課程大綱(講師將按照該梯次學員之整體背景、學習狀況與時間狀況而彈性調整增減該內容及順序):


1. 嵌入式系統簡介

   - 硬體平台(感測與控制類MCU V.S. 網路多媒體應用類之大型SoC)

   - 大型作業系統軟韌體 V.S. 裸機韌體之差異介紹(基礎觀念)

   - OS與non-OS之差異、用途等(闢除迷思)

   - 裸機(bare metal/non-OS)軟韌體範例介紹與現場demo

   - 嵌入式Linux作業系統與開源軟體專案簡介

   - 手動(Roll Your Ow/Build from Scratch)與使用buildroot或yocto建置BSP之差異

   - 本課程內容與使用高度現成平台(如Raspberry Pi與其官方主要推薦sop方式並作應用)之差異

   - 產業公司相關職缺介紹與概況

   - 如果本身是偏向純軟體背景,對於想成為一個能力堪稱完整的系統軟韌體研發工程師來說,該補足哪些知能?開發時要注意什麼?


2. ARM Cortex-A based SoC大型系統晶片與開發板硬體平台介紹

   - 電腦架構複習: 以各種微電腦晶片之原廠手冊內容為例

   - 課程實驗用之TI SoC AM3358架構、原廠技術文件介紹

   - 課程實驗用之開發板: Beaglebone black規格、電路圖(schematic)導讀、PCB Layout簡介

   - 基礎電子元件介紹、CMOS/TTL觀念、MOSFET/BJT電晶體

   - 記憶體之基礎觀念


3. 開發環境建置: 

   - Host PC端之虛擬機軟體下載與安裝

   - Host PC端之PC Linux distribution下載與安裝

   - Linux基礎指令操作

   - GNU交叉編譯工具鍊(GNU Toolchain)建置

   - Linux環境變數

   - COM Port相關原理(UART、UART to USB晶片模組、VCP等)

   - COM Port應用程式下載與安裝(如teraterm或putty等)

   - 課程實驗用開發板之儲存裝置空間配置規劃實作

   - Samba Server建置

   - SSH Server建置


4. 下列各單元之開源專案原始碼下載、配置(移植之過程)與編譯之步驟與背後原理,並使其成功執行於硬體開發板。包含各種Compile error情況該如何解決、編譯建置過程之log訊息閱讀。


4-1: U-Boot Bootloader(開機啟動程式)

    - 包含開機流程原理說明,從SoC內之ROM code至開機完成之各階段原理

    - 移植所需之.config

    - U-Boot常見指令

    - menuconfig

   

4-2: Linux kernel (Linux作業系統核心)

    - 移植所需之.config

    - uImage與zImage、LOADADDR與mkimage

    - dts/dtb 

    - Boot script建置(for uboot)及其內容指令與參數(如boot arguments)

    - 記憶體空間位址安排規劃、SoC之memory map說明

    - 如何透過uboot的TFTP load Kernel image到目標平台

    

4-3: Busybox Filesystem(檔案系統)

    - 創建rfs基本目錄for目標平台

    - 觀察busybox所需之動態連結函數庫

    - 建立基本device node

    - 創建init

    - 創建執行時期相關配置檔


5. 簡易Linux Device Driver驅動程式1: 基礎觀念

    - Linux系統架構(user/kernel space到硬體)、系統呼叫(system call)機制

    - device node(/dev/xxx)、major/minor number

    - kernel module與built-in觀念

    - 編譯建置方法

    - Makefile、Kconfig、.config與menuconfig

    - /proc與/sys簡介


6. 簡易Linux Device Driver驅動程式2: GPIO驅動程式

    - GPIO周邊裝置簡介

    - GPIO驅動LED之電子電路設計原理

    - 電路圖(schematic)導讀

    - BJT電晶體基礎特性及其作開關應用之電路原理

    - MMIO觀念

    - MMU、虛擬記憶體位址觀念

    - 周邊裝置之暫存器(register)位址與功能查找

    - 系統晶片之原廠技術資料手冊(Datasheet、Manual)內容導讀

    - pin mux

    - C語言重要觀念複習(如:指標、結構指標、暫存器之定址)

    - kernel driver範例程式逐行講解

    - kernel driver基礎kernel api介紹(如: ioremap)

    - 編譯建置.ko(kernel module)檔

    - 範例user app應用程式逐行講解

    - kernel driver與user app整合串接之實作原理


7. 訊號量測儀器操作

   - 三用電表

   - 示波器

   - 邏輯分析儀


8. Linux系統軟韌體開發之Debug除錯技巧與經驗分享


-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2026年1月7日 星期三

今年2026預計對IC設計公司的嵌入式Linux 驅動程式的訓練課程進行授課合作

 

繼之前的聯詠之後,今天又收到一家國內的大型老牌上市櫃 IC設計公司的嵌入式Linux 驅動程式的訓練課程需求的開課單位邀請授課,而上課接受課程訓練的學員,當然也同樣是公司內的系統軟韌體研發工程師。


-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2025年9月8日 星期一

感謝任職於 IC設計公司 慧榮科技 的 主任工程師 積極來找我進行私人一對一嵌入式系統軟韌硬體基礎學習

 


任職於 世界頂尖NAND flash memory controller IC設計公司 慧榮科技 的 韌體程式研發 主任工程師 學員 (跟我同屆,過去他是讀淡江大學的大學&碩士班畢業,他也曾經長期任職於 廣達電腦 擔任軟體工程師) ,

他在昨天白天上完我的 嵌入式Linux系統建置(包含Linux驅動程式基礎)的 團體課程 後,今天上午馬上又繼續跟我上私人一對一授課(之前有好幾次也都是如此),內容為 MCU(微控制器/單晶片微電腦) 韌體研發相關的嵌入式系統軟韌硬體基礎。 

實在是相當的務實且積極。



今天課程內容提到 透過 ISP (In System Programming) 對MCU內的SPI flash (program memory) 軟韌體燒錄環境/電路相關原理與實作 (以Atmel/Microchip 8051 ISP MCU: AT89S51/AT89S52 作為原理學習與實驗之硬體平台)

以Keil IDE的模擬除錯模式對GPIO作GPO(General Purpose Output)應用的驅動的範例的C語言程式進行反組譯(disassembly)來對8051 MCU內的CPU內的核心暫存器 (PC、SP、PSW、ACC...) 等相關原理作說明 (注意: 其中有許多設計原理基礎觀念,在其它的CPU系列架構上是共通的),指令集機械碼(數位訊號0與1的邏輯電壓的組合)對應的符號(組合語言/assembly language),





此外,針對許多 軟韌體程式研發工程師 在 工作研發過程 會使用到的透過Debugger對MCU/SoC進行的online debug的功能背後的原理,也以ARM Cortex-M0+/M4官方架構圖、AT89S51 MCU內部block diagram形式的架構圖來進行說明,並提到了大約10幾年前較常見的除錯介面 JTAG (Joint Test Action Group) 及 近年來較普遍的 SWD (Serial Wire Debug) 介面的差異。




 

最後以 Intel MCS-51指令集 組合語言 的範例程式所組譯出來的hex檔,透過Atmel設計規格的USB ISP模組 (可對AT89S51/52等款式進行軟韌體燒錄、可對ATMEGA328及其它相關款式MCU進行燒錄及除錯) 燒錄,燒錄進AT89S52平台並透過學員手上自購的KT89S51開發板(dev. board)進行ISP燒錄實驗驗證,並再次搭配該開發板之電路圖對此次的驗證情境進行軟韌體及電子電路/元件的整合設計原理上的確認。





-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章



2021年8月16日 星期一

【阿良的嵌入式系統技術學習區】 嵌入式Linux (Embedded Linux) 基礎實務 課程內容介紹

課程涵蓋內容如下:


  • 說明:  雖然近年來已經有Yocto、Buildroot、OpenWrt等組件工具可以簡化許多在嵌入式Linux建置過程中的繁複流程(若未來有機會的話,可能會開這些工具的使用教學課程),但是,無論在許多有做SoC的IC design house(IC設計公司) 或者 系統廠 的嵌入式Linux軟韌體相關研發單位,嵌入式Linux各階段軟韌體的基礎建置(包含對應的編譯開發環境的各環節)能力,也就是本課程的教學主軸,仍是非常重要的,在過程中將會學習到許多在進行嵌入式Linux系統開發時所需的基礎觀念和經驗。
  • 在此課程內容中,有著許多細節,通常對於初學者自學而言將會消耗大量的時間在克服一些技術細節方面所帶來的困難,大多需要實際的經驗才能在較短的時間內克服,所以若讓有經驗的人指導,在學習上將會事半功倍。
  • 課程實驗內容將透過 純文字指令方式(command line) 進行,符合科技產業界對於此類系統的開發方式

  • 實驗硬體平台預計為ARM Cortex-A8 based SoC(系統晶片)為核心之開發板(Beaglebone Black)

本園區之FB粉絲專頁如下:

--------------------

孫文良 (阿良的嵌入式系統技術學習區)

個人簡介: https://sites.google.com/view/wenliangsun/

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,請先參考 課程招生網頁連結