iT邦幫忙

risc-v相關文章
共有 53 則文章

技術 予焦啦!結論與展望(一):Hoddarla 專案的過去、現在與未來

阮毋是喜愛虛華,阮只是環境來拖磨; 人客若叫阮,風雨嘛著行,為伊唱出留戀的情歌。 -- 流浪到淡水 終於進到結尾的部份了。過去三十天在鐵人賽官方規定的範疇內...

鐵人賽 Software Development DAY 30

技術 予焦啦!附錄:那些作業系統的巨人們與參考資料

沒有人是一座孤島,而技術與軟體亦然。早在 Hoddarla 抵達系列文本篇最後的基本命令列功能之前、甚至在任何筆者的瘋狂構想之前,就早已有無數的資訊科技如堅固的...

鐵人賽 Software Development DAY 24

技術 淺談特權模式與模式切換

恐龍書上的 User Mode 與 Kernel Mode 在恐龍書中有提到,作業系統一般會在 User Mode 與 Kernel Mode 之間切換,Ker...

鐵人賽 Software Development DAY 29

技術 予焦啦!附錄:詭異的時間中斷(timer interrupt)擱置位元(pending bit)

在 3.0 那一篇,筆者介紹時間中斷與簡單的實作。也許也有讀者注意到了不太順暢的部分,那就是直接跳躍到作業系統模式去控制,卻沒有說明機器模式的中斷相關控制暫存器...

鐵人賽 Software Development DAY 28

技術 予焦啦!附錄:旅途拾貝

今天是 Hoddarla 系列文中的附錄第 0 篇。筆者在這一年半的準備期當中送了兩個 patch 給 Golang 上游。一次是分心想要更了解 Golang...

鐵人賽 Software Development DAY 27

技術 予焦啦!基本的命令列

本節是以 Golang 上游 7ee4c1665477c6cf574cb9128deaf9d00906c69f 為基準做的實驗 予焦啦!昨天我們終於抵達了...

鐵人賽 Software Development DAY 26

技術 予焦啦!Hello World 與 Uart 機制觀察

本節是以 Golang 上游 7ee4c1665477c6cf574cb9128deaf9d00906c69f 為基準做的實驗 予焦啦!針對外部中斷的機制,...

鐵人賽 Software Development DAY 25

技術 予焦啦!RISC-V 外部中斷機制

予焦啦!上一章,我們完成了基本的排程;至少,程式的流程不會再因為單一的執行緒需要睡眠或是為了取得某些鎖而卡住。雖然也和本系列文的其他機制一樣粗暴而粗糙,但我們可...

鐵人賽 Software Development DAY 24

技術 予焦啦!Golang 執行期的鎖

予焦啦!我們昨日實作完簡易排程,確保 Golang 執行緒(M)都會被排到 CPU 資源。但是卻有不定時炸彈會出現,那就是試圖解鎖非上鎖的鎖的錯誤;大部分時候都...

鐵人賽 Software Development DAY 23

技術 予焦啦!實作基本排程

本節是以 Golang 上游 6a79f358069195e1cddb821e81fab956d9a0c7d1 為基準做的實驗 予焦啦!昨日我們觀察了 Go...

鐵人賽 Software Development DAY 17

技術 動態記憶體分配

先備知識: Linker Script 的撰寫技巧 撰寫 Linker Script 可以讓編譯器在連結的階段按照我們的想法將每個 Section 放到指令的記...

鐵人賽 Software Development DAY 16

技術 Hello, OS!

資料傳輸 常見的資料傳輸方式有兩種: Serial 將一串資料拆成多個資料,一次傳一個資料。 pros: 成本低 Parallel 有多條傳輸線,因此...

鐵人賽 Software Development DAY 22

技術 予焦啦!Golang 執行緒與作業系統執行緒

本節是以 Golang 上游 6a79f358069195e1cddb821e81fab956d9a0c7d1 為基準做的實驗 予焦啦!昨日以前的第三章解決...

鐵人賽 Software Development DAY 21

技術 予焦啦!實作上下文機制

本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!今天我們就來驗收前兩...

鐵人賽 Software Development DAY 20

技術 予焦啦!Golang 當中的訊號(signal)機制

予焦啦!正如 Golang 自己維護了記憶體管理機制(競技場、記憶體抽象層、垃圾回收、...)般,讓 ethanol 核心取用 RISC-V 硬體功能的部分可以...

鐵人賽 Software Development DAY 19

技術 予焦啦!scratch 控制暫存器

本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!上下文(contex...

鐵人賽 Software Development DAY 18

技術 予焦啦!RISC-V 的計時器中斷機制

本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!在前兩天的斷章當中,...

鐵人賽 Software Development DAY 17

技術 予焦啦!問題分析

本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!正式進入下半場之前,...

鐵人賽 Software Development DAY 16

技術 予焦啦!參數與環境變數

本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!經過了第零章確保開發...

鐵人賽 Software Development DAY 15

技術 予焦啦!Golang 記憶體初始化

本節是以 Golang 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!在昨日基本地完成 sysA...

鐵人賽 Software Development DAY 14

技術 予焦啦!Ethanol 記憶體映像規劃

本節是以 Golang 上游 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 本節所對應的修補當中,有些...

鐵人賽 Software Development DAY 8

技術 RISC V::中斷與異常處理 -- PLIC 介紹

本文目標 認識 PLIC, IRQ 與 ISR 綜合先前所學,應用在實際案例上 進入正題 PIC PIC (Programmable Interrupt C...

鐵人賽 Software Development DAY 13

技術 予焦啦!裝置樹(DTB)解析

本節是以 Golang 上游 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!昨日打通了 thro...

鐵人賽 Software Development DAY 7

技術 RISC V::中斷與異常處理 -- 中斷篇

你可曾想過現今的電腦是如何同時運行多個應用程式? 又或是單核心電腦如何做到多工? 為銜接之後的議題,我們需要先認識 RISC-V CPU 中的中斷機制。 複習:...

鐵人賽 Software Development DAY 6

技術 RISC V::中斷與異常處理 -- 異常篇

一般在修讀 Operating System 時,都會學習到 Interrupt 的概念,此外,電腦在運作時也會碰到大大小小的問題。你可曾好奇電腦是如何排除這些...

鐵人賽 Software Development DAY 12

技術 予焦啦!虛擬記憶體啟用後的除錯

本節是以 Golang 上游 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!昨日啟用了虛擬位址的...

鐵人賽 Software Development DAY 11

技術 予焦啦!在 ethanol 中啟用虛擬記憶體

本節是以 Golang 上游 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!昨日直接瞄準一組虛擬...

鐵人賽 Software Development DAY 5

技術 RISC V::RV32I 指令介紹

本文目標 學習 RV32I 進入正題 RV32I 是 32-bit 的基本整數指令集,該指令集會使用到 32 個暫存器 (x0-x31),且一共有 47 道...

鐵人賽 Software Development DAY 4

技術 RISC V::關於基本暫存器

本文目標 認識暫存器 建立 Callee save 與 Caller save 的觀念 了解呼叫慣例 進入正題 下圖列舉了 RISC-V 處理器中的通用暫存...

鐵人賽 Software Development DAY 10

技術 予焦啦!RISC-V 虛擬記憶體機制簡說

本節是以 Golang 上游 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!昨日最後觀察到的錯誤...