總網頁瀏覽量

顯示具有 beaglebone black 標籤的文章。 顯示所有文章
顯示具有 beaglebone black 標籤的文章。 顯示所有文章

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,亦可先點擊參考這篇介紹文章


2021年8月23日 星期一

Beablebone Black或Nano Pi很適合拿來作為Embedded Linux的研究/學習平台!

歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

先聲明,這篇不是工商服務廣告,單純介紹和分享一些嵌入式系統板子的使用經驗。

BeagleboneBlack(BBB)這板子真的蠻不錯的,

除了上面的AM3358 SoC系統晶片維持TI SoC的一貫風格(TI OMAP系列SoC也是如此) 釋出很多SoC的詳盡手冊資料(眾多開發板上的SoC款式,我看過釋出資料最詳細的就是他們公司)、很適合拿來做有深度的研究之外,

也真的很適合拿來做技術教學,

TI官方網站的AM3358 SoC頁面(上面提供許多詳盡的資料)


BeagleboneBlack板子的schematic(電路圖)PCB設計都有公開,而板子上的User LED有4個,

很方便拿來做Linux Kernel Device Driver串接上層user space的Application program(藉由system call機制存取底層資源)的相關基礎教學Demo用~  

還可順便講解一些基礎的介面電子電路原理 (對較篇向純軟體背景或者非電機電子科系的學員們,也會有不少幫助)。


                                                              圖諞來源: Beaglebone black電路圖
https://github.com/beagleboard/beaglebone-black/blob/master/BBB_SCH.pdf?raw=true



圖諞來源: Beaglebone black電路圖
https://github.com/beagleboard/beaglebone-black/blob/master/BBB_SCH.pdf?raw=true


圖諞來源: https://elinux.org/Beagleboard:BeagleBoneBlack#Minix_.28Discontinued.29


也可以從Beagleboard官方網站連進去觀看各種資訊和資源~

Beagleboard官方網站


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

另外,像是Nano Pi系列的板子也很棒喔,

除了期價格和性能比很好,

其相關的技術文件資訊(如其相關的技術文件資訊連結2)也算頗為豐富,電路圖資訊也很完全,

而板子上面的核心SoC系統晶片的方面,

除了社群網頁上放置其SoC的架構和完整的規格資訊之外(Datasheet),其原廠Allwinner也有在wiki page他們的官方網站上放置關於晶片的介紹。

---------

其它也還有許多很不錯的嵌入式系統開發板,未來若有機會的話再一一介紹,也歡迎各家廠商來洽推廣談合作方式!

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


2021年8月13日 星期五

【Embedded Linux(嵌入式Linux)系列課程】Bootloader開機啟動程式之編譯建置與執行 課程簡介

Embedded Linux系列之Bootloader課程簡介

Bootloader 為 開機啟動程式,其主要任務簡而言之為在電腦系統上電(Power ON)之初的階段,對系統硬體(包含CPU自身、Clock系統、周邊裝置、DRAM、Storage device等)進行一系列的初始化,並負責啟動作業系統核心(OS Kernel)。

註: 若拿SoC based嵌入式系統和PC系統作比對,粗略而言,則嵌入式系統的bootloader,即涵蓋了PC系統的BIOS及bootloader的功能(意思就是負責上電之初的硬體初始化與帶起OS Kernel等工作,在嵌入式系統上都是由bootloader負責)。這只是作個粗略的比對/比擬,當然兩種系統在細節上還是有些差異。

本課程將會帶領學員:

  • 在Host PC端之安裝於虛擬機器的Ubuntu Linux distribution環境中,透過純文字指令式(command line)之方式進行開發(讓學員了解Embedded Linux系統於產業界的常見開發方式)
  • 使用GNU編譯工具練(GNU Toolchain)對UBoot source code進行編譯,建置出MLO或稱x-loader的SPL (Secondary program loader) 與 uboot.img (Third stage program loader),並且於核心系統晶片(SoC)為ARM Cortex-A8 CPU based AM3358的BeagleboneBlack RevC開發板上執行
  • 針對課程實驗內容所用到的Storage Device(SD Card)作妥適的分割與格式化處理
  • 介紹UBoot的部分常用指令並引導學員進行實作練習
  • 背景基礎觀念
    • Bootloader運行流程,從ROM Code(bootROM)到MLO (SPL, Secondary program loader)階段,再到 uboot.img (Third stage program loader)的執行流程基礎原理
    • 相關軟韌硬體平台觀念(non-OS/OS based系統差異、MPU/MCU/SoC、DRAM/SRAM、NOR/NAND/eMMC flash memory特性,何謂Memory map I/O與Port map I/O)

UBoot於BeagleboneBlack開發板之執行之畫面 (尚未置入Linux Kernel與filesystem)如下影片。

註: 實驗用開發板並不一定只限於BeagleboneBlack,若學員希望使用/學習其它款式的硬體平台,請事先與講師討論協議。


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


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

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

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

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