版本 2b69ad45b4feb4bd989c7043bfb2f835b6eab87a
Changes from 2b69ad45b4feb4bd989c7043bfb2f835b6eab87a to fc603a68fe18b9161c4d9db2f97f85a6334402d1
---
title: 課程進度與開放資源
categories: embedded, arm, stm32, rtos, kernel, linux, ncku
toc: no
...
- Instructor: [Jim Huang](/User/jserv) (黃敬群) `<jserv.tw@gmail.com>`
* [Facebook 粉絲專頁](https://www.facebook.com/JservFans) (不要擔心提了笨問題,這就是專門和學生互動的)
- 討論區: [https://www.facebook.com/groups/system.software2016/](https://www.facebook.com/groups/system.software2016/)
- 共筆: [https://embedded2016.hackpad.com](https://embedded2016.hackpad.com)
- 課程信箱: `<embedded.master2015@gmail.com>`
- 參考硬體平台: [STM32](/embedded/STM32F429), STMicroelectronics
嵌入式作業系統設計與實作 (Spring 2016)
------------------------------------------------------
![](/embedded-os.png)
|Week |Date |Subject |Assignment|
|:----|:----|:----|:----|
|#1 | Feb 23 | [2016q1 Overview](https://embedded2016.hackpad.com/ep/pad/static/0cCQaaQEOoy) | = [2016q1: Homework1](/embedded/2016q1h1) = |
|#2 | Mar 1 | [2016q1:基本能力鑑定測驗](/embedded/2016q1w2) | - |
|#3 | Mar 8 | [Code Review](https://embedded2016.hackpad.com/ep/pad/static/kpfgwU6YgOF) | = [2016q1:Homework2]
|#3 | Mar 8 | [Code Review](https://embedded2016.hackpad.com/ep/pad/static/kpfgwU6YgOF) | = [2016q1:Homework2](/embedded/2016q1h2) = |
|#4 | Mar 15 | ARM Architecture and Optimization Concepts |
|#5 | Mar 22 | Compilers + Calling Convention |
|#6 | Mar 29 | From Hello to Preemptive Scheduler |
|#7 | Apr 5 | Embedded Linux Conference |
|#8 | Apr 12 | OS Scheduling |
|#9 | Apr 19 | |
|#10 | Apr 26 | |
|#11 | May 3 | |
|#12 | May 10 | |
|#13 | May 17 | |
|#14 | May 24 | |
|#15 | May 31 | |
|#16 | Jun 7 | |
|#17 | Jun 14 | |
|#18 | Jun 21 | |
進階嵌入式系統設計與實作 (Fall 2015)
------------------------------------------------------
![](/embedded/logo-2012-small.png)
|Week |Date |Subject |Assignment|
|:----|:----|:----|:----|
|#1 | Sep 18 | [2015q3 Overview](https://embedded2015.hackpad.com/ep/pad/static/QXYBh2n9wLD) | = [2015q3: Homework1] ; [2015q3: Ext1](/embedded/2015q3h1ext) = |
|#2 |Sep 25 | [2015q3:基本能力鑑定測驗] | - |
|#3 |Oct 2 | [ARM Architecture and Optimization Concepts](https://embedded2015.hackpad.com/ep/pad/static/vq55AYjcDYY) | = [2015q3: Homework2] ; [2015q3: Homework3] = |
|#4 |Oct 9 | 國定假日 | - |
|#5 |Oct 16 | [Compilers + Calling Convention](https://embedded2015.hackpad.com/ep/pad/static/83hsxgJZcZd) | = [2015q3: Homework4] = |
|#6 |Oct 23 | [專題演說](https://embedded2015.hackpad.com/ep/pad/static/jIMTMzNA9k3) | = [2015q3: Homework5] = |
|#7 |Oct 30 | [Code Review](https://embedded2015.hackpad.com/ep/pad/static/xDmCCv0k00K) | = [2015q3: Homework6] = |
|#8 |Nov 6 | [C Programming + ARM](https://embedded2015.hackpad.com/ep/pad/static/7ZSsa98cSKw) | = [2015q3: Homework7] = |
|#9 |Nov 13 | [From Hello to Preemptive Scheduler](https://embedded2015.hackpad.com/ep/pad/static/RjDVuOb23bM) | = [2015q3: Homework8] = |
|#10 |Nov 20 | [From ARM core to Peripherals](https://embedded2015.hackpad.com/ep/pad/static/epwUzCt8QBD) | = [2015q3: Homework9] = |
|#11 |Nov 27 |[STM32 + Peripherals](https://embedded2015.hackpad.com/ep/pad/static/e3IjL7Kq3Lr) | = [2015q3: Homework10] =
|#12 |Dec 4 | Peripherals: [GPIO](/embedded/GPIO) [ADC](/embedded/ADC) | [QA: GPIO](https://embedded2015.hackpad.com/Peripheral-GPIO-ZKuqhg7lhrn), [QA: ADC](https://embedded2015.hackpad.com/Peripheral-ADC-6Je0oGuYmLy) |
|#13 |Dec 11 |; Peripherals: [SPI](/embedded/SPI); [uVisor](http://soft.cs.tsinghua.edu.cn/os2atc2015/ppt/hjq.pdf) | [QA: SPI](https://embedded2015.hackpad.com/Peripheral-SPI-yWQ8AZuqfi7) |
|#14 |Dec 18 |[課程公告](/embedded/2015q3w14); Peripherals: [USART](/embedded/USART), [Flash](/embedded/Flash), [I2C](/embedded/I2C) | [QA: USART](https://embedded2015.hackpad.com/Peripheral-USART-5c1m7nktyMN), [QA: Flash](https://embedded2015.hackpad.com/Peripheral-Flash-PlDo5CQ60ev), [QA: I2C](https://embedded2015.hackpad.com/Peripheral-I2C-Y0EhgBi5myw) |
|#15 |Dec 25 | 專題演說 | [QA: USB](https://embedded2015.hackpad.com/Peripheral-USB-mdOjvkUd5Xd) |
|#16 |Jan 1 | Happy New Year! | * |
|#17 |Jan 8 | [Code Review / 作業回顧](https://embedded2015.hackpad.com/ep/pad/static/wxFjlwT5Ayg) | * |
|#18 |Jan 15 | [Software Quality + Security Issues](https://embedded2015.hackpad.com/ep/pad/static/V9Rv8ABEYeT) | * |
[2015q3:基本能力鑑定測驗]: 2015q3w2
[2015q3: Homework1]: 2015q3h1
[2015q3: Homework2]: 2015q3h2
[2015q3: Homework3]: 2015q3h3
[2015q3: Homework4]: 2015q3h4
[2015q3: Homework5]: 2015q3h5
[2015q3: Homework6]: 2015q3h6
[2015q3: Homework7]: 2015q3h7
[2015q3: Homework8]: 2015q3h8
[2015q3: Homework9]: 2015q3h9
[2015q3: Homework10]: 2015q3h10
嵌入式作業系統設計與實作 (Spring 2015)
------------------------------------------------------
![](/embedded-os.png)
|Week |Date |Subject |Assignment|
|:----|:----|:----|:----|
|#1 | Feb 24 |[2015q1 Overview] | * |
|#2 |Mar 3 | [2015q1:基本能力鑑定測驗] | [Lab 38]: ARM Cross-Development Environment |
|#3 |Mar 10 | [ARM Architecture + OS Concepts] | [Lab 39]: FreeRTOS |
|#4 |Mar 17 | [ARM Exceptions/Interrupts] | [Lab 40]: Scheduling |
|#5 |Mar 24 | [Embedded Linux Conference 2015] | [Lab 41]: 基礎觀念訓練 |
|#6 |Mar 31 | [ARM and RTOS: Part I] | 確認 [Lab 38], [Lab 39], [Lab 40], [Lab 41] 均充分完成 |
|#7 |Apr 7 | [ARM and RTOS: Part II] | [Lab 42]: Mini ARM OS |
|#8 |Apr 14 | [From Hello to Preemptive Scheduler] | [Lab 42]: Mini ARM OS |
|#9 |Apr 21 | [Kernel Concepts and Threading] | [Lab 43]: Runtime Behavior |
|#10 |Apr 28 | [2015q1:Group Presentation(1)] | * |
|#11 |May 5 | [2015q1:Group Presentation(2)] | * |
|#12 |May 12 | [2015q1:Group Presentation(3)] | * |
|#13 |May 19 | [2015q1:Group Presentation(4)] | * |
|#14 |May 26 | [2015q1:Group Presentation(5)] | * |
|#15 |Jun 2 | [2015q1:Group Presentation(6)] | * |
|#16 |Jun 9 | [2015q1:Group Presentation(7)] | * |
|#17 |Jun 16 | [2015q1:Group Presentation(8)] | * |
|#18 |Jun 23 | [2015q1:Group Presentation(9)] | * |
[2015q1 Overview]: 2015q1w1
[2015q1:基本能力鑑定測驗]: 2015q1w2
[ARM Architecture + OS Concepts]: 2015q1w3
[ARM Exceptions/Interrupts]: 2015q1w4
[Embedded Linux Conference 2015]: http://events.linuxfoundation.org/events/embedded-linux-conference
[ARM and RTOS: Part I]: 2015q1w6
[ARM and RTOS: Part II]: 2015q1w7
[From Hello to Preemptive Scheduler]: 2015q1w8
[Kernel Concepts and Threading]: 2015q1w9
[2015q1:Group Presentation(1)]: 2015q1w10
[2015q1:Group Presentation(2)]: 2015q1w11
[2015q1:Group Presentation(3)]: 2015q1w12
[2015q1:Group Presentation(4)]: 2015q1w13
[2015q1:Group Presentation(5)]: 2015q1w14
[2015q1:Group Presentation(6)]: 2015q1w15
[2015q1:Group Presentation(7)]: 2015q1w16
[2015q1:Group Presentation(8)]: 2015q1w17
[2015q1:Group Presentation(9)]: 2015q1w18
[Lab 38]: Lab38
[Lab 39]: Lab39
[Lab 40]: Lab40
[Lab 41]: Lab41
[Lab 42]: Lab42
[Lab 43]: Lab43
進階嵌入式系統開發與實作 (Fall 2014)
------------------------------------------------------
![](/embedded/logo-2012-small.png)
|Week |Date |Subject |Assignment|
|:----|:----|:----|:----|
|#1 |Sep 18 | [2014q3 Overview] | [Lab 31](https://embedded2014.hackpad.com/2014q3-Week-1-mQLneatLPcT): ARM Environment |
|#2 |Sep 25 | [ARM Architecture (cont)] | [Lab 32]: QEMU + FreeRTOS |
|#3 |Oct 2 | [ARM Architecture (cont2)] | [Lab 33]: GDB + FreeRTOS |
|#4 |Oct 9 | [ARM Architecture and Interface] | [Lab 34]: Buffer overflow |
|#5 |Oct 16 | [Hardware Concepts Review] | [Lab 35]: STM32F429 |
|#6 |Oct 23 | [Code Review for Lab 32-33] | [Lab 35]: STM32F429 |
|#7 |Oct 30 | [Code Review + ELF] | [Lab 36]: ELF |
|#8 |Nov 6 | [Interrupt/Exceptions + RTOS] | [Lab 37]: Memory allocation |
|#9 |Nov 13 | [2014q3:Group Presentation (1)] | - |
|#10 |Nov 20 | [2014q3:Group Presentation (2)] | - |
|#11 |Nov 27 | [2014q3:Group Presentation (3)] | - |
|#12 |Dec 4 | [2014q3:Group Presentation (4)] | - |
|#13 |Dec 11 | [2014q3:Group Presentation (5)] | [侯捷 C++ 底層技術課程分享](https://www.facebook.com/events/481983738609693/) |
|#14 |Dec 18 | [2014q3:Group Presentation (6)] | - |
|#15 |Dec 25 | [2014q3:Group Presentation (7)] | - |
|#16 |Jan 1 | Happy New Year! | - |
|#17 |Jan 8 | [2014q3:Group Presentation (8)] | - |
|#18 |Jan 15 | [2014q3:Group Presentation (9)] | - |
|#18 |Jan 17 | 期末展示 | - |
[2014q3 Overview]: 2014q3w1
[ARM Architecture (cont)]: 2014q3w2
[ARM Architecture (cont2)]: 2014q3w3
[ARM Architecture and Interface]: 2014q3w4
[Hardware Concepts Review]: 2014q3w5
[Code Review for Lab 32-33]: 2014q3w6
[Code Review + ELF]: 2014q3w7
[Interrupt/Exceptions + RTOS]: 2014q3w8
[2014q3:Group Presentation (1)]: 2014q3w9
[2014q3:Group Presentation (2)]: 2014q3w10
[2014q3:Group Presentation (3)]: 2014q3w11
[2014q3:Group Presentation (4)]: 2014q3w12
[2014q3:Group Presentation (5)]: 2014q3w13
[2014q3:Group Presentation (6)]: 2014q3w14
[2014q3:Group Presentation (7)]: 2014q3w15
[2014q3:Group Presentation (8)]: 2014q3w17
[2014q3:Group Presentation (9)]: 2014q3w18
[Lab 32]: Lab32
[Lab 33]: Lab33
[Lab 34]: Lab34
[Lab 35]: Lab35
[Lab 36]: Lab36
[Lab 37]: Lab37
嵌入式作業系統設計與實作 (Spring 2014)
------------------------------------------------------
![](/embedded-os.png)
|Week |Date |Subject |Assignment|
|:----|:----|:----|:----|
|#1 |Feb 18 | [Overview: Embedded Systems and OS] | [Lab 25] |
|#2 |Feb 25 | [ARM Architecture Evolution] | [Lab 26] |
|#3 |Mar 4 | [Case: Quadcopter] | [Lab 27] |
|#4 |Mar 11 | [Assignment Review] | [Lab 28] |
|#5 |Mar 18 | [ARM Cortex-M + RTOS Concepts] | [Lab 29] |
|#6 |Mar 25 | [ARM I/O, Interrupt, Exception] | [Lab 30] |
|#7 |Apr 1 | 春假 | : |
|#8 |Apr 8 | [Advanced OS Design issues] | : |
|#9 |Apr 15 | [Group Presentation (a)] | : |
|#10 |Apr 22 | [Group Presentation (b)] | : |
|#11 |Apr 29 | [Group Presentation (c)] | : |
|#12 |May 6 | [Group Presentation (d)] | : |
|#13 |May 13 | [Group Presentation (d)] | : |
|#14 |May 20 | [Group Presentation (f)] | : |
|#15 |May 27 | [Group Presentation (g)] | : |
|#16 |Jun 3 | [Group Presentation (h)] | : |
|#17 |Jun 10 | Talk: 雲、端、架構 | : |
|#18 |June 17 | Group Presentation | : |
|#18 |Jun 21 | Embedded Technology Conference | : |
[Overview: Embedded Systems and OS]: 2014-w1
[ARM Architecture Evolution]: 2014-w2
[Case: Quadcopter]: 2014-w3
[Assignment Review]: 2014-w4
[ARM Cortex-M + RTOS Concepts]: 2014-w5
[ARM I/O, Interrupt, Exception]: 2014-w6
[Advanced OS Design issues]: 2014-w8
[Group Presentation (a)]: 2014-w9
[Group Presentation (b)]: 2014-w10
[Group Presentation (c)]: 2014-w11
[Group Presentation (d)]: 2014-w12
[Group Presentation (f)]: 2014-w14
[Group Presentation (g)]: 2014-w15
[Group Presentation (h)]: 2014-w16
[Lab 25]: Lab25
[Lab 26]: Lab26
[Lab 27]: Lab27
[Lab 28]: Lab28
[Lab 29]: Lab29
[Lab 30]: Lab30
進階嵌入式系統開發與實作 (Fall 2013)
------------------------------------------------------
![](/embedded/logo-2012-small.png)
|Week |Date |Subject |Assignment|
|:----|:----|:----|:----|
|#1 |Sep 17 | [Overview: Embedded in our world] | [Lab 19]: QEMU |
|#2 |Sep 23 | [ARM Architecture and SoC] | [Lab 20]: GNU Toolchain |
|#3 |Oct 1 | [Operating Systems for Embedded] | [Lab 20]: GNU Toolchain |
|#4 |Oct 8 | [ARM: Instructions] | [Lab 21]: RTOS (1) |
|#5 |Oct 15 | [ARM: Toolchain and Peripherals] | [Lab 22]: RTOS (2) |
|#6 |Oct 22 | [ARM: Interrupts and Exceptions] | [Lab 23]: RTOS (3) |
|#7 |Oct 29 | [Code Review] | - |
|#8 |Nov 5 | [Code Review + Group Presentation(1)] | [Lab 24]: Hardware |
|#9 |Nov 12 | [3D Printer + Group Presentation(2)] | - |
|#10 |Nov 19 | [Group Presentation(3)] | - |
|#11 |Nov 26 | [Speech + Group Presentation(4)] | - |
|#12 |Dec 3 | [Group Presentation(5)] | - |
|#13 |Dec 10 | [Group Presentation(6)] | - |
|#14 |Dec 17 | [Group Presentation(7)] | - |
|#15 |Dec 24 | [Group Presentation(8)] | - |
|#16 |Dec 31 | [Group Presentation(9)] | - |
|#17 |Jan 7 | [Group Presentation(10)] | - |
|#18 |Jan 12 | 期末展示 | - |
[Overview: Embedded in our world]: 2013-w1
[ARM Architecture and SoC]: 2013-w2
[Operating Systems for Embedded]: 2013-w3
[ARM: Instructions]: 2013-w4
[ARM: Toolchain and Peripherals]: 2013-w5
[ARM: Interrupts and Exceptions]: 2013-w6
[Code Review]: 2013-w7
[Code Review + Group Presentation(1)]: 2013-w8
[3D Printer + Group Presentation(2)]: 2013-w9
[Group Presentation(3)]: 2013-w10
[Speech + Group Presentation(4)]: 2013-w11
[Group Presentation(5)]: 2013-w7
[Group Presentation(6)]: 2013-w7
[Group Presentation(7)]: 2013-w7
[Group Presentation(8)]: 2013-w15
[Group Presentation(9)]: 2013-w7
[Group Presentation(10)]: 2013-w7
[Lab 19]: Lab19
[Lab 20]: Lab20
[Lab 21]: Lab21
[Lab 22]: Lab22
[Lab 23]: Lab23
[Lab 24]: Lab24
[Lab 25]: Lab25
[Lab 26]: Lab26
嵌入式作業系統設計與實作 (Spring 2013)
------------------------------------------------------
![](/embedded/logo-2012-small.png)
|Week |Date |Subject |Assignment|
|:----|:----|:----|:----|
|#1 |Feb 19 | [課程介紹 + 期初考]
|#2 |Feb 26 | [Embedded Operating System Concepts] | [Lab 8] : GNU Toolchain + RTOS ([Sol 8]) |
|#3 |Mar 5 | [RTOS Characteristics] | [Lab 9] : Multitasking programming ([Sol 9]) |
|#4 |Mar 12 | [從火星探測號談 scheduling] | [Lab 10] : Priority Inversion ([Sol 10]) |
|#5 |Mar 19 | [ARM Architecture Intro] | [Lab 11]: Build RTOS for ARM ([Sol 11]) |
|#6 |Mar 26 | [ARM Architecture Intro] + 月考 | [Lab 12]: RTOS Visualization ([Sol 12]) |
|#7 |Apr 2 | 春假 | |
|#8 |Apr 9 | [ARM and Assignment Review] | [Lab 13]: ARM Programming with GNU Toolchain ([Sol 11]) |
|#9 |Apr 16 | [I/O, Interrupt, Exception (ARM)] | [Lab 14]: OS and BSP Porting ([Sol 14]) |
|#10 |Apr 23 | [RTOS Evaluation] | [Lab 15]: Benchmarking concepts |
|#11 |Apr 30 | [Case Study: Train control] + 月考 | [Lab 15]: Validation and benchmarking |
|#12 |May 7 | [Tickless scheduling] | [Lab 16]: Hardware Enablement |
|#13 |May 14 | [Embedded Kernel Design Review] | [Lab 17]: Tickless scheduling for ARM hardware |
|#14 |May 21 | [Embedded Kernel Design Review-2] | [Lab 18]: OS Evaluation for ARM |
|#15 |May 28 | [Automotive Linux Summit (Spring)] +月考| |
|#16 |Jun 4 | Open Discussion | |
|#17 |Jun 11 | The End | |
[課程介紹 + 期初考]: 2013w1
[Embedded Operating System Concepts]: 2013w2
[RTOS Characteristics]: 2013w3
[從火星探測號談 scheduling]: 2013w4
[ARM Architecture Intro]: 2013w5
[ARM and Assignment Review]: 2013w8
[I/O, Interrupt, Exception (ARM)]: 2013w9
[RTOS Evaluation]: 2013w10
[Case Study: Train control]: 2013w11
[Tickless scheduling]: 2013w12
[Embedded Kernel Design Review]: 2013w13
[Embedded Kernel Design Review-2]: 2013w14
[Lab 8]: Lab8
[Sol 8]: Sol8
[Lab 9]: Lab9
[Sol 9]: Sol9
[Lab 10]: Lab10
[Sol 10]: Sol10
[Lab 11]: Lab11
[Sol 11]: Sol11
[Lab 12]: Lab12
[Sol 12]: Sol12
[Lab 13]: Lab13
[Lab 14]: Lab14
[Sol 14]: Sol14
[Lab 15]: Lab15
[Lab 16]: Lab16
[Lab 17]: Lab17
[Lab 18]: Lab18
[Automotive Linux Summit (Spring)]: http://events.linuxfoundation.org/events/automotive-linux-summit-spring
[LinuxCon Japan]: http://events.linuxfoundation.org/events/linuxcon-japan
進階嵌入式系統開發與實作 (Fall 2012)
------------------------------------------------------
![](/embedded/logo-2012-small.png)
|Week |Date |Subject |Assignment|
|:----|:----|:----|:----|
|#1 |Sep 18 | [Overview: Embedded - Why and How] | [Lab 1]: QEMU |
|#2 |Sep 25 | [ARM Architecture] (Basic) | [Lab 2]: GNU Toolchain + QEMU/ARM |
|#3 |Oct 2 | [Realtime Operating System] (Basic) | [Lab 2]s: GNU Toolchain + QEMU/ARM |
|#4 |Oct 9 | [Timer, Interrupt, Exception in ARM] | [Lab 3]: GNU Toolchain + RTOS |
|#5 |Oct 16 | [RTOS Design and Implementation] | [Lab 4]: RTOS for MCU |
|#6 |Oct 23 | [Code review of Lab assignments] | [Lab 5]: RTOS modifications |
|#7 |Oct 30 | [Peripherals and hardware interface] | [Lab 6]: Hardware |
|#8 |Nov 6 | [Embedded Linux Conference Europe] | 分組準備與討論 |
|#9 |Nov 13 | [Group Presentation (1)] | 分組準備與討論 |
|#10 |Nov 20 | [Group Presentation (2)] | [Lab 6]: Hardware + Unit Test |
|#11 |Nov 27 | [Group Presentation (3)] | [Lab 6]: Hardware + On-Chip Debugger |
|#12 |Dec 4 | [Group Presentation (4)] | [Lab 7]: On-Chip Debugger + semihosting |
|#13 |Dec 11 | [Group Presentation (5)] | Hack! |
|#14 |Dec 18 | [Group Presentation (6)] | Hack! |
|#15 |Dec 25 | [Group Presentation (7)] | Hack! |
|#16 |Jan 1 | Happy New Year - 2013 | N/A |
|#17 |Jan 8 | Final project review (and vote) | N/A |
|#18 |Jan 15 | Make Your Own System (and profit) | DONE |
[Overview: Embedded - Why and How]: 2012w1
[ARM Architecture]: 2012w2
[Realtime Operating System]: 2012w3
[Timer, Interrupt, Exception in ARM]: 2012w4
[RTOS Design and Implementation]: 2012w5
[Code review of Lab assignments]: https://gitcafe.com/embedded2012/P-jserv
[Peripherals and hardware interface]: 2012w7
[ARM Cortex-M series]: 2012w7
[Microkernel overview]: 2012w12
[Embedded Linux Conference Europe]: https://events.linuxfoundation.org/events/embedded-linux-conference-europe
[Group Presentation (1)]: 2012w9
[Group Presentation (2)]: 2012w10
[Group Presentation (3)]: 2012w11
[Group Presentation (4)]: 2012w12
[Group Presentation (5)]: 2012w13
[Group Presentation (6)]: 2012w14
[Group Presentation (7)]: 2012w15
[Lab 1]: Lab1
[Lab 2]: Lab2
[Lab 3]: Lab3
[Lab 4]: Lab4
[Lab 5]: Lab5
[Lab 6]: Lab6
[Lab 7]: Lab7