版本 d6eef9becfc0084ee9a81a55692df84499bcb574
Veck(蕭奕凱)
veck 蕭奕凱
自我介紹 Introduction
- 政治大學資訊科學系碩士班 102 級 (National ChengChi University, Department of Compter Science)
- LinkedIn:https://tw.linkedin.com/in/veckhsiao
- GitHub:https://github.com/fbukevin
- Email:fbukevin@gmail.com
- 通勤方式:(高鐵學生方案:NT. 740)
- ↓ 09:36 629 HSR Taipei Kingdom to Tainan City
- ↑ 21:15 756 HSR Tainan City to Taipei Kingdom
作業 Lab
Lab38:ARM Cross-Development Environment
- 驗證
Introduction to ARM Architecture <https://docs.google.com/presentation/d/1cFBRICktpVQAOLzE5eDKD-OM4ckJuncFsn39Wg8aLZI/edit#slide=id.p14>
_ 簡報內容 - 學習 GNU Toolchain
- 使用 QEMU 作為指令集模擬器
Hackpad <https://embedded2014.hackpad.com/Week2-Lab38-goDHyn1QVA5>
/GitHub <https://github.com/fbukevin/arm-lecture>
- 作業狀況: 完成基本作業要求,並於此次作業中練習了 GCC 的相關用法(例如怎麼下 GCC Tag),並且學習了 ARM 基本語法以及 AMR 與計算機組織學過的 MIPS 有何差異
- 驗證
Lab39:FreeRTOS
體驗一個具體而微的 MCU 程式開發過程,使用 GNU Toolchain
藉由 QEMU 模擬環境,嘗試控制週邊 (STM32 USART) 並觀察其行為
接觸
FreeRTOS </embedded/freertos>
_Hackpad <https://embedded2015.hackpad.com/Week3-Lab39-ni3tzoIax7Y>
/GitHub <https://github.com/fbukevin/freertos-basic>
作業狀況:學習使用 QEMU 模擬 STM32,成功將 FreeRTOS 以 QEMU 模擬器啟動,實現將一個作業系統移植到嵌入式開發版上的目標,並且完成作業要求,能夠新建立 task 以及了解 shell 的運作和擴增功能, 還有就是學習到裸機(bare-metal machine)的實際概念,即便是採用 C 語言開發出來的 FreeRTOS 也不具備 I/O,需要自己處理,認識到輕量化的 C 標準函式庫 newlib,可以達到前述目的,另外學習到了 semihosting 的概念(用模擬器時沒很有感覺,後來真的 porting 才知道就是一直以來覺得很酷的『用電腦連線到裝置去操作裝置』)
.. image:: /veckLab39.png
Lab40:Scheduling
- 分析
FreeRTOS </embedded/freertos>
_ 排程行為 - 學習 ARM Cortex-M3 架構並且理解
SysTick <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0179b/ar01s02s08.html>
_ - 設計出一個具體而微的 FreeRTOS 視覺化機制
Hackpad <https://embedded2015.hackpad.com/Week4-Lab40-jZmJ9A1pfYD>
/GitHub <https://github.com/fbukevin/visualizer>
- 作業狀況:因為大一的邏輯設計沒有學很深,所以等於是複習了 tick 的概念,了解到電腦機械的計時方式,在這個作業中研究了 tick 轉換為 human-readable 時間的作法,並且延續 Lab 40,進一步研究了 task scheduling 的議題,以及採用 grasp 進行 scheduling 的視覺化
.. image:: /veckLab40-1.png 但是 grasp 的使用上我覺得有點不便,因為之前在學習資料分析上使用過 Python 的 matplotlib 這個繪圖套件,加上這個 lab 的 log 資料集轉換程式就是用 Python 寫的,我就嘗試改寫該程式,加入這個套件,以下是 context switch 的成果
.. image:: /veckLab40-2.png
- 分析
Lab41:
- 善用春假,好好補強基礎觀念
- 你問我答:請利用共筆提問
Hackpad <https://embedded2015.hackpad.com/Week5-Lab41-1NfMvKE38g8>
_- 作業狀況:這個作業主要是讓我們利用春假時間,複習作業系統與計算機組織的重要觀念
Lab42:
- 研究一個具體而微的作業系統
- 專案整合與程式碼移植
- 學習 GNU Toolchain,驗證
Week #6 </embedded/2015q1w6>
,Week #7 </embedded/2015q1w7>
,Week #8 </embedded/2015q1w8>
_ 所學 - 實做 OS scheduler
Hackpad <https://embedded2015.hackpad.com/Week7-Lab42-yhKpwgmegwz>
/GitHub <https://github.com/fbukevin/mini-arm-os>
- 作業狀況:這個作業我感覺到最大的學習點是了解 context switch 的最底層指令是如操作,然後就是這份作業完整的使用 ARM 組合語言來實作一個微型作業系統
.. image:: /veckLab42.png
期末專題 Final Project
- 主題 Topic:FreeRTOS
- 工作 Work:延續 2014 年同學的成果,繼續延伸研究這個作業系統,並更新、補充與改善內容
- 成果 Presentation:
心得 Review
自我評量 (1 ~ 10) Self-assessment
- Score:
- Comment: