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

版本 85e70cdc08acaa2a30137846cad6df8d5e8bcc40

embedded/Lab14

Changes from 85e70cdc08acaa2a30137846cad6df8d5e8bcc40 to current

---
title: Lab14: OS and BSP Porting
toc: no
...

預期目標
-------
- 移植作業系統核心
- 學習 ARM 系統程式開發

ARM Information
-------------
------------------------------
* ARM GCC Inline Assembler Cookbook
   - http://www.ethernut.de/en/documents/arm-inline-asm.html

* ARM “Cortex-M3 Technical Reference Manual”
  - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337i

* ARMv7-M Architecture Reference Manual
  - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0403c

作業要求
-------------
* 修改 Lab-14/rtenv 目錄底下的檔案,使 kernel.c 為主體的簡易作業系統,得以在 STM32F10x 環境運作
   - 預期的執行行為應該與 `Lab-11</embedded/Lab11>`_ 相同
   - 預期的執行行為應該與 [Lab-11](/embedded/Lab11) 相同
   - 可使用原有 FreeRTOS 在 STM32/ARM_CM3 平台的原始程式碼

* 檢查項目:
   - system call: fork(), getpid(), read(), write()
   - FIFO / ring buffer

* 將 kernel.c 原本的 memcpy(), strcmp(), strlen() 改為 inline assembly 撰寫,並善用 ARM condition code

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

- 寄件到 <jserv.tw@gmail.com>
  - 標題: 
    * 成大: "[NCKU/Lab14]" 開頭,後面加學號與姓名
    * 中正: "[CCU/Lab14]" 開頭,後面加學號與姓名
    * 格式不合者,不計分!

- 信件內應該指出 Git repository 並簡述修改的想法與過程