[08C040]嵌入式Linux系統、
文章推薦指數: 80 %
讓學員熟悉嵌入式Linux Device Driver課程所需具備之嵌入式Linux BSP操作及嵌入式Linux程式設計(含進階C語言),課程以實際在ARM開發版上操作教學,讓學員未來能更專注於 ...
課程大綱
【實戰模組A】物聯網產品硬體設計技術應用實戰
課程目標
1.熟悉電路圖繪製。
2.熟悉PCB印刷電路板佈局(PCBLayout)設計與PCB製造過程(Gerber資料/鑽孔資料)。
3.培訓成為PCBLayout能夠獨當一面的電子工程師。
課程大綱
1.PCB軟體安裝、各項環境設置
2.Tools個人設置、使用者介面介紹
3.元件庫建立
4.繪製電路圖、簡介使用元件庫、連線、圓形、弧形、長方形和TEXT
5.電氣規則檢查(ERC)
6.設計印刷電路板/PCBLayout(手動佈線/Autorouter自動佈線器)
7.繪圖與製造資料的輸出(Gerber資料/鑽孔資料)
【實戰模組B】Linux作業系統使用/GNUMake及Makefile檔案介紹
課程目標
讓學員熟悉嵌入式LinuxDeviceDriver課程所需具備之嵌入式LinuxBSP操作及嵌入式Linux程式設計(含進階C語言),課程以實際在ARM開發版上操作教學,讓學員未來能更專注於學習嵌入式系統相關知識。
讓學員熟悉嵌入式LinuxProgramming課程所需具備之GNUMake知識,課程以實際在ARM開發版上操作教學,讓學員可在未來能更專注於學習嵌入式系統相關知識。
課程大綱
1.HowtoBuildanEffectiveEmbeddedLinuxEnvironment
2.嵌入式Linux指令使用
3.嵌入式Linux開機管理與網路設定
4.IntroductionARMBSP&SDK(適用於A8、ARM11、9)
5.CreateEmbeddedSystemGNUDevelopmentToolchain
6.BootLoader(A8、ARM11-S3C6410、ARM9-S3C2440)BriefIntroduction
7.ConfigureandMakeEmbeddedSystemKernel/CreateRoot-FileSystem(arm-linux)
8.Lab:CreateKernelandRoot-FileSystem(ARM-Linux)
9.HowtoPortingtheLinuxtoNewA8、ARM11-S3C6410、ARM9-S3C2440
10.GNUMake/Makefile★AnIntroductiontoMakefiles★HowtoWritingMakefileRulesandWritingtheCommandsinRules★HowtoUseVariables★ConditionalPartsofMakefiles★HowtoRunMake★UsingImplicitRules
【實戰模組C】嵌入式C語言實戰【適合嵌入式系統+單晶片+電控開發】
課程目標
1.培養正確完整的嵌入式C語言程式設計概念與程式設計基本能力。
2.培養完整且符合業界之C語言韌體設計的能力。
3.增加學員使用C語言開發應用程式的能力。
4.整個課程內容包含C韌體程式技術,包含業界需要的進階韌體程式設計技巧。
課程大綱
1.C&C++ToolsIntroductionandSetup
2.C&C++程式架構、常數(Constants)、資料型態/Alignment與運算式、Endian-ness與ByteOrdering、嵌入式CBitwise運算子
3.C&C++基本輸入輸出(Input/Output)
4.流程控制敘述(FlowControl&Loop)
5.C&C++編譯器前置處理器(PreprocessorCompilerControl):#include、#define/#undef、#if/#else/#endif/#ifndef
6.指標(Pointer)、陣列(Array)、字串:字元陣列與字元指標(String:CharacterArray,CharacterPointer)、stringifyoperator、TokenConcatenationOperator、MemoryAlignmentLAB
7.指標陣列(PointerandArray)進階用法:多重指標與多維陣列、指標陣列化(PointertoArray)
8.陣列指標化(ArraytoPointer)
9.C&C++函式(Function):函數的定義及呼叫、函數的原型宣告、參數的傳遞與預設初值、C++函數的Overload(同名異式、函數覆載)...unknownparameter的運用
10.MixedCandAssembly(includeParameterpassing)
11.static、volatile、constandtypedef
12.結構型態(StructureTypes):struct、enum、unionType、檔案IO處理(FileI/O)、bitwisefieldstructure
13.指標進階應用(函式指標(Functionpointer)、結構型態與指標、void指標(voidpointer)
【實戰模組D】設計實作ARM物聯網嵌入式開發板-以ARMCortexAx為例
課程目標
嵌入式技術是近年竄起直升的熱門科技,而嵌入式技術目前正廣泛運用在多元的產品上,但各產品所使用之嵌入式作業系統也是百家爭鳴,並無統一之標準。
然而就嵌入式BootLoader和OS/Driver等設計,以及開發之實務上的操作程序而言,卻有脈絡可循,在熟悉這套程序和方法之後,只要搭配硬體上對產品之特定SoC(SystemonChip)的了解,便能舉一反三,藉以開發各項嵌入式產品。
而本課程就以ARM處理器核心為例,並利用實驗板ARMCortexAx進行實作,讓學員藉此逐步了解嵌入式系統之各種不同應用的ARM硬體架構,包括:ARMCortexAx處理器底層架構、ARM處理器之組合語言、BootLoader、開機初始化流程、FLASH的Read/Write/Erase、開發板內之各類嵌入式硬體介面控制實作,以及如何將嵌入式ARM+LinuxPorting至ARM開發版,以此熟悉嵌入式開發版設計的程序和方法。
藉此自製ARM嵌入式開發板之能力,做為徜徉嵌入式技術領域的敲門磚。
課程大綱
一、嵌入式ARM計算機組織
1.嵌入式ARMCortexAx處理器系統架構2.嵌入式ARM處理器軟體設計
★【Lab】:輔以大量的ARM組語LAB講解★【Lab】:FlashtheLEDonBootLoader3.ARMCortexAxCPU規格書說明4.FlashRom及相關週邊IC規格書說明5.嵌入式ARM開發板電路講解-ARMCPU/ROM/RAM/Peripheral二、實作ARM嵌入式系統開發平台-以ARMCortexAx為例
1.適用於ARMCortexAx之BootLoader簡介2.如何撰寫BootLoader與BootLoader程式功能3.如何撰寫FlashRom的Read/Write/Erase程式4.U-Boot與ADSBootLoader的移植5.透過JTAG下載BootLoader至ARM板6.透過BootLoader下載編譯好的嵌入式LinuxKernelImage7.透過BootLoader下載編譯好的嵌入式RootFileSystem8.BootLoader&嵌入式Linux之開機流程
【實戰模組E】嵌入式Linux系統實作與程式設計實務
課程目標
本課程之Linux系統實作與程式設計,全部是在ARMCortexAx、ARM11-S3C6410、ARM9-S3C2440嵌入式開發板上實作完成。
課程內容從ARMCortexAx開發板平台開始介紹,講解ARM開發板、GNUToolchain(CrossCompiler)、BootLoader、建立自己的嵌入式Kernel與RootFileSystem,再以自己建立的【嵌入式ARM+Linux】學習Linux指令使用及開機管理與網路設定。
接著在ARM開發板以自己建立的【嵌入式ARM+Linux】為作業系統,以此雙OS系統為基礎在上面講授各種Linux程式設計。
整個【嵌入式ARM+Linux】程式設計課程,講師會現場撰寫實作程式的範例,隨後將程式透過CrossCompiler後上傳至ARM開發板執行。
不同於一般幾乎都在PC的Linux上講授Linux程式設計。
而且這些程式範例均會在ARM開發板上與硬體結合,使學員可以熟悉《軟硬兼施》的程式設計,讓偏【純軟的工程師】不會看到硬體就傻眼、讓偏【純硬的工程師】不會看到軟體就頭痛。
課程結束後可以熟悉【嵌入式ARM+Linux】程式設計。
課程大綱
EmbeddedLinux設計,適用於ARM-Linux
1.WhatisNeededLibforEmbeddedSystem?(SystemCalls&Library)
2.EmbeddedLinuxFileI/O:★【Lab】STDIO/STDOUTProgramming
3.EmbeddedLinuxFilesandDirectories:★【Lab】open/create/read/write/lseek/fcntl/close
4.EmbeddedLinuxStandardI/OLibrary:【Lab】BufferingI/O、ReadingandWritingaStream、BinaryI/O、FormattedI/O
5.EmbeddedLinuxSystemDataFiles&Info:【Lab】LinuxSystemInformationProgramming
6.EmbeddedLinuxTermios:【Lab】RS232Programming
7.EmbeddedLinuxProcessControl:【Lab】fork、vfork、exec
8.EmbeddedLinuxSignals:【Lab】signal、killandraiseFunctions、sigactionFunction
9.EmbeddedLinuxInter-ProcessCommunication:【Lab】Pipes、FIFOs、MessageQueues、Semaphores、SharedMemory
10.EmbeddedLinux多執行緒程式設計:【Lab】pThreadProgramming、MutuxProgramming
11.EmbeddedLinuxNetworkSocketProgramming:【Lab】TCP/UDPProgrammingEmbeddedLinuxShell程式設計【Lab】EmbeddedLinuxShellProgramming:SimpleShellExample、ShellOperatorsExample、ShellLogicStructuresExample
【實戰模組F】StepbyStep講授嵌入式開發板Linux驅動程式實務
課程目標
學習不牽涉到硬體控制之單純的Linux驅動程式,是不難的。
學習如何撰寫Linux驅動程式是難在其與硬體結合,使得驅動程式必須正確的驅動要控制的硬體。
本課程重點在StepbyStep介紹嵌入式產品開發過程中,產品研發人員如何實地撰寫【嵌入式Linux驅動程式】,我們從簡單的開發板之Linux驅動程式可適用於ARM-Linux架構入手,進而至CharacterDevice的撰寫(分別以LED或SEG-7裝置實作),並可執行在ARM-Linux系統,並剖析Linux驅動程式與硬體間的運作,再深入Linux驅動程式撰寫的各個層面,同時搭配各種不同的周邊裝置,如LED、LCD、Keypad、SEG-7、Network裝置等一般嵌入式系統常用之硬體。
講師於課堂中撰寫這些常見的驅動程式,並在現場於ARMCortexAx開發板上測試撰寫的【嵌入式Linux系統驅動程式】,讓學員實際熟悉【嵌入式Linux系統驅動程式】於實務上是如何撰寫,且於現場實際上機測試的過程中,更提供了從業學員之間技術交流的機會,締造教學相長之契機,共同朝向發揚嵌入式產業之目標邁進。
課程大綱
1.嵌入式Linux驅動程式程式架構
2.嵌入式Linux驅動程式之程式設計流程:BuildingandRunningModule★【LAB】HelloWorldonARM開發板
3.嵌入式Linux字元驅動程式★【LAB】ASimpleLEDDeviceDriveronARM開發板
4.除錯技術:DebuggingTechniques★【LAB】Createa/ProcEntryFilesystemonARM開發板
5.進階Linux字元驅動程式★【LAB】TheLEDDeviceDriverUsingIOCTLonARM開發板
6.GettingHoldofMemoryandHardwareManagement★【LAB】ARMBSPI/OOperationsonARM開發板
7.嵌入式LinuxPlatformDevice及PlatformDriver
8.FlowofTime:CurrentTime、DelayingExecution、TaskQueues、KernelTimers★【LAB】ARMBSPExperimentforLCM(orLED)DeviceonARM開發板(CurrentTime、DelayingExecution、TaskQueues、KernelTimers)
9.嵌入式LinuxInterruptHandling★【LAB】ARMBSPInterruptExampleonARM開發板
10.嵌入式LinuxMemoryMappedI/O:★【LAB】FrameBuffer(TFTLCD顯示)onARM開發板
11.LinuxDeviceTree、LinuxUARTDriver、LinuxSPIDriver、LinuxI2CDriver、LinuxUserSpaceDriver
12.網路卡驅動程式(以網路晶片dm9ks為例)dm9ksIC'sNetworkDeviceDriverTracing
13.EmbeddedLinux-USBDeviceDriver(USB驅動程式)
★【LAB】ASimpleUSBDriveTracing
14.AddyourDeviceDriverintoKernel/HowtoPortingDeviceDriverstothe2.6Kernel★【LAB】OnARM開發版Experiment:
(1.)AddaLEDDriverintoKernel
(2.)MakeKernel
(3.)Testing
15.ConcurrencyintheKernel:Spinlockandmutexe、Semaphores
【實戰模組G】物聯網IoT無線傳感網路系統實戰
課程目標
本課程主要介紹Zigbee-Pro標準網路協定,幫助學員快速瞭解ZigBee技術、802.15.4、NWK、HAL、Z-StackOS等與Zigbee相關的技術規格及實務應用,以發展標準Zigbee系統產品,可縮短相關ZigBee產品的開發時程。
課程大綱
1.各種物聯網感知層感測器:溫度感測器、濕度感測器、光敏感測器、煙霧感測器、門磁感測器等
2.Introduction6LowPAN
3.ZigbeeIC基礎實驗LAB:IO控制、Timer、Interrupt、PowerConsumer
4.ZigBeeZ-STACK介紹及TIZ-STACK函數演示
5.Z-STACKOS層的應用技巧:建立自己的任務、事件觸發、回應等
6.Z-STACK下OS層的LED實驗及UART使用
7.在Z-STACK上建立自己的專案工程
8.ZigBeeZ-STACK組網過程
9.Z-STACKHAL層程式設計技巧
10.Z-STACKNWK層程式設計技巧:星狀、串狀、網狀網路、路由深度等的設置
11.ZIGBEE的綁定原理及應用
12.LAB:ZigbeeLight&Switch(燈及開關)ON/OFFcontrol的應用程式設計
【實戰模組H】物聯網IoT嵌入式Linux與多媒體應用專案實作:物聯網智能家庭自動化、網路通訊I/O與多媒體系列
課程目標
1.完全以業界所需實務為導向,將嵌入式Linux常見之應用技術於課堂上直接講授並且實作。
2.軟硬體直接整合,課程範例將直接在ARM開發板上執行測試。
課程大綱
一、網路通訊I/O
1.ARM開發板GPIOLinux驅動程式
2.ARM開發板UART驅動程式控制實驗
3.ARM開發板周邊Linux驅動程式控制實驗
4.TCP/IPSocketProgrammingonARMDevelopmentPlatform
5.SerialProgrammingforPOSIXonARMDevelopmentPlatform
6.HttpServerIntroduction&PortingtoARMDevelopmentPlatform.(Httpd&BoA)
7.PortingSQLiteDataBasetoARMDevelopmentPlatform
★IntegratedExample:HowtoDesignaHomeAutomationSystem
二、多媒體系列
1.ARM開發板GPIOLinux驅動程式
2.ARM開發板周邊Linux驅動程式控制實驗
3.Multi-MediaSystemProgramming
4.QTXWindowSystem
三、物聯網智能家庭自動化
學習方式:通過課程指定的實際專案案例,對本課程學習效果做一個總結,增強理論的掌握和動手能力,專案全程有老師輔導並控制開發進度,最後進行作品的驗收。
PS1:本次課程指定的實際專案:物聯網智能家庭自動化(RS232傳輸介面)。
PS2:學員需自行準備專案BOM表之零件備料,以DIP為主。
PS3:因PCB板製作需時大約7至14工作天,及專案BOM表之零件備料也要花時間,所以課程進度【實戰模組H】,會安排在課程進度A之後,適當時間就開始進行,以利於課程進度的進行。
課程內容:
(1.)根據需求編寫需求分析報告和詳細設計,經講師評審通過後,進行下列步驟:
(2.)電路圖和PCB設計、PCB板製作(送PCB板廠洗板)
(3.)器件選型、專案BOM表之零件備料、學員進行元件焊接
(4.)完成硬體調試
(5.)完成軟韌體程式設計和系統調試
延伸文章資訊
- 1縮減Linux 嵌入式系統軟體: 方法與實例
作為例子, 說明如何建立一個完整的嵌入式Linux. 系統。 最後我們把擁有以上所有功能的安全閘道. 器, 從使用Redhat 的系統(約1.3 GBytes) 以及.
- 26/23嵌入式Linux開發實務x Linux驅動程式實戰 - iT 邦幫忙
C.ROS機器人開發. 線上教學: 第五階段_Linux系統程式設計第六階段_ARM Boot Loader設計. 【適合對象】 V欲學習Embedded Linux開發技術並能具體進行嵌入式產...
- 3Embedded Linux系統移植實作 - 中華行動數位
由淺入深連貫性教學,完整的學程規劃 Linux系統管理→C語言→Linux程式設計→Embedded Linux實作→嵌入式Device Driver開發實務→Android BSP Porti...
- 4[08C040]嵌入式Linux系統、
讓學員熟悉嵌入式Linux Device Driver課程所需具備之嵌入式Linux BSP操作及嵌入式Linux程式設計(含進階C語言),課程以實際在ARM開發版上操作教學,讓學員未來能更專注...
- 5如何進入Linux嵌入式系統(Embedded Linux system) @ Just ...