[08C040]嵌入式Linux系統、

文章推薦指數: 80 %
投票人數:10人

讓學員熟悉嵌入式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.)完成軟韌體程式設計和系統調試  



請為這篇文章評分?