分享到plurk 分享到twitter 分享到facebook

版本 664df4a78d3da84ef034e55a38b061cc510681d5

embedded/Lab11

Changes from 664df4a78d3da84ef034e55a38b061cc510681d5 to current

---
title: Lab11: Build RTOS for ARM
toc: no
...

預期目標
-------
- 學習 ARM 系統開發
- 實作 RTOS 的基礎特徵: priority-based schedule 與 message queue

自 Git repository 取得程式碼
-------------------------------
- 請參照 `Lab-10</embedded/Lab10>`_ 得知 Git 使用方式
- 請參照 [Lab-10](/embedded/Lab10) 得知 Git 使用方式
- 取得最新的作業及參考內容

.. code-block:: prettyprint

    git fetch labs
    git rebase labs/master

- 將過程所需要的檔案透過 ``git add`` 指令加入到工作區,接著透過 ``git push`` 來提交修改
  * 最好事先以 ``git pull`` 確認整合伺服器端的修改

- 僅想測試 Labs 的操作 (適合在課堂 / 電腦教室的環境)

    ``git clone https://gitcafe.com/embedded2013/Labs.git``


QEMU執行
----------------
* 編譯給定的迷你作業系統

.. code-block:: prettyprint

    make

* 安裝 QEMU ARM system emulation

.. code-block:: prettyprint

    sudo apt-get install qemu-system

或者安裝單一 ARM 平台

.. code-block:: prettyprint

    sudo apt-get install qemu-system-arm

* 啟動 QEMU

.. code-block:: prettyprint

    qemu-system-arm \
        -M versatilepb -cpu arm926 \
        -nographic \
        -kernel kernel.elf

* 離開 QEMU 模擬環境: 先按下 Ctrl-A 再按下 x 

作業要求
------------
* 適度修改 Lab-11/ 目錄,將原本單純的 ARM 多工作業系統改為支援以下:
   * priority-based scheduling
   * message queue

* 預期執行時期的行為應該與 `Lab-9</embedded/Lab9>`_ 相同
* 預期執行時期的行為應該與 [Lab-9](/embedded/Lab9) 相同
* 提示
  * 可參考 FreeRTOS 的原始程式碼,參照 TCB 與其對應的 stack

繳交作業
------------
* 截止日期:
  * 成大/中正: Apr 8, 2013 (含) 之前