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

版本 f23773826a5c5c960a876d110f4f12ec3a11e684

embedded/Lab10

Changes from f23773826a5c5c960a876d110f4f12ec3a11e684 to current

---
title: Lab10: Git, FreeRTOS
toc: no
...

預期目標
-------
- 以 Git 管理與追蹤開發過程
- 引入自動評分機制
- 學習使用 FreeRTOS 進行系統開發,體驗 priority inversion

預先準備
-------
- 在本 wiki 註冊帳號
- 加入/訂閱位於 Google Groups 的 `embedded2013 郵件討論群組<https://groups.google.com/group/embedded2013>`_,以獲得討論資訊
- 在 `GitCafe<https://gitcafe.com>`_ 註冊帳號
- 加入/訂閱位於 Google Groups 的 [embedded2013 郵件討論群組](https://groups.google.com/group/embedded2013),以獲得討論資訊
- 在 [GitCafe](https://gitcafe.com) 註冊帳號
  - 確認在 Account Settings 加入 SSH Key
  - 可參考「`產生 SSH key 給 Bitbucket/Github 使用<http://nyllep.wordpress.com/2012/01/21/sshkey-for-bitbucket/>`_」一文
  - 於 GitCafe 中的 SSH key 設定,可參閱「`GitCafe SSH key設定官方說明  <https://gitcafe.com/GitCafe/Help/blob/master/Setup_Git.md/>`_」
  - 可參考「[產生 SSH key 給 Bitbucket/Github 使用](http://nyllep.wordpress.com/2012/01/21/sshkey-for-bitbucket/)」一文
  - 於 GitCafe 中的 SSH key 設定,可參閱「[GitCafe SSH key設定官方說明  ](https://gitcafe.com/GitCafe/Help/blob/master/Setup_Git.md/)」

- 將註冊的帳號名稱,通知講師 <jserv.tw@gmail.com>,於 `Organization **embedded2013**<https://gitcafe.com/embedded2013>`_ 加入用於紀錄開發動態的 Git repository
  - 範例: `P-jserv<https://gitcafe.com/embedded2013/P-jserv>`_,最好與 wiki 帳號名稱一致,以利於識別
- 將註冊的帳號名稱,通知講師 <jserv.tw@gmail.com>,
  - 於 [Organization **embedded2013**](https://gitcafe.com/embedded2013) 加入用於紀錄開發動態的 Git repository
  - 範例: [P-jserv](https://gitcafe.com/embedded2013/P-jserv),最好與 wiki 帳號名稱一致,以利於識別
  - 點選 **SSH (Read+Write)** 可得到 git repository 的位址,如上例為

    ``git@gitcafe.com:embedded2013/P-jserv.git``

- 參閱 `Git 簡易操作</git>`_ 與 `寫給大家的 Git 教學<http://www.slideshare.net/littlebtc/git-5528339>`_
- 參閱 [Git 簡易操作](/git) 與 [寫給大家的 Git 教學](http://www.slideshare.net/littlebtc/git-5528339)


自本次開始所採用的 Git repository
-------------------------------
- 線上瀏覽
  * https://gitcafe.com/embedded2013/Labs

- 已取得 `GitCafe<https://gitcafe.com>`_ Notification 告知 P-xxx 之 Git repository 後,即可著手進行開發。以 "`jserv</User/jserv>`_" 為例:(請替換成指定的帳號)
- 已取得 [GitCafe](https://gitcafe.com) Notification 告知 P-xxx 之 Git repository 後,即可著手進行開發
- 以 "[jserv](/User/jserv)" 為例:(請替換成指定的帳號)

.. code-block:: prettyprint

    git clone git@gitcafe.com:embedded2013/P-jserv.git
    cd P-jserv
    git remote add labs https://gitcafe.com/embedded2013/Labs.git
    git fetch labs
    git rebase labs/master

- 往後只要重複執行前項的後兩個指令 (``git fetch`` 與 ``git rebase``),即可取得最新的作業及參考內容
- 將過程所需要的檔案透過 ``git add`` 指令加入到工作區,接著透過 ``git push`` 來提交修改
  * 最好事先以 ``git pull`` 確認整合伺服器端的修改

- 確認詳加閱讀「`寫給大家的 Git 教學<http://www.slideshare.net/littlebtc/git-5528339>`_」投影片以得知 Git 基本操作
- 確認詳加閱讀「[寫給大家的 Git 教學](http://www.slideshare.net/littlebtc/git-5528339)」投影片以得知 Git 基本操作
- 或,僅想測試 Labs 的操作 (適合在課堂 / 電腦教室的環境)

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

FreeRTOS
----------------
- [FreeRTOS Tutorial](http://www.socialledge.com/sjsu/index.php?title=FreeRTOS_Tutorial)
- [CptS 466: Spring, 2013: Embedded Systems](http://eecs.wsu.edu/~aofallon/cpts466/schedule.htm)

作業要求
------------
* 適度修改 Lab-10/mtask 目錄底下的檔案
* 藉由 FreeRTOS 的 Semaphores 與 IPC 機制,模擬出 Mars Pathfinder 的 priority inversion 狀況
* 程式碼需要提交到 Git
   * 在信件中要提及 Git repository 與簡述修改

* 來信告知在 FreeRTOS 模擬 Mars Pathfinder 的情況

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

* 寄件到 <jserv.tw@gmail.com>
  * 標題: “[NCKU/Lab10]” 開頭,後面加學號與姓名
    * 中正: 改為 “[CCU/Lab10]” 開頭

  * 格式不合者,不計分!

小提示
-----
- Ubuntu Linux 預設的文字編輯器為 nano,對許多習慣於 vi/vim 的使用者來說,較為不便,可透過以下指令選擇:

    ``sudo update-alternatives --config editor``

- 可安裝 ``tig``,一個輕便好用的 Git client 軟體