ccccourse / sp110b

課程:系統程式 -- 筆記、習題與報告
1 stars 50 forks source link

系統程式 第 15 週 -- 簽到討論區 #20

Open ccckmit opened 2 years ago

ccckmit commented 2 years ago
  1. https://www.sifive.com/software
    • 方法 1 : Download Freedom Studio
    • 方法 2 : 下載 GNU Embedded Toolchain + QEMU
    • 方法 3: 直接使用 kinmen6.com 上的環境 ssh guest@kinmen6.com 密碼 kinmen6110b

從頭開始讀這本書

有任何問題用文字在這個 issue 問,臉書也可以!

簽到範例:

  1. 陳鍾誠 在 e320
  2. 史奴比 在 家

示範

guest@localhost:~/sp/11-riscv/mini-riscv-os/01-HelloOs$ make
riscv64-unknown-elf-gcc -nostdlib -fno-builtin -mcmodel=medany -march=rv32ima -mabi=ilp32 -T os.ld -o os.elf start.s os.c
guest@localhost:~/sp/11-riscv/mini-riscv-os/01-HelloOs$ ls
Makefile  os.c  os.elf  os.ld  README.md  start.s
guest@localhost:~/sp/11-riscv/mini-riscv-os/01-HelloOs$ make run
make: *** No rule to make target 'run'.  Stop.
guest@localhost:~/sp/11-riscv/mini-riscv-os/01-HelloOs$ make qemu
Press Ctrl-A and then X to exit QEMU
qemu-system-riscv32 -nographic -smp 4 -machine virt -bios none -kernel os.elf      
Hello OS!
RyanChen-01 commented 2 years ago

陳文吉 在家

daniel74859641 commented 2 years ago

陳威宇在家

zhengyucen commented 2 years ago

鄭宇岑 在家

stereomp3 commented 2 years ago

魏仲彥 在家

Lin610313 commented 2 years ago

林庭光在家

Roy-Roo commented 2 years ago

羅彥翔 在家

stayjay commented 2 years ago

王證傑 在家

OohelloworldoO commented 2 years ago

鄭智陽 在家

WForU commented 2 years ago

何文旺 在家

Sakura01210 commented 2 years ago

王冠文 在家

Bernie3852 commented 2 years ago

李柏均 在家

wukunru commented 2 years ago

吳昆儒 在家

Selesfia commented 2 years ago

胡禎恩 在家

patrick901218 commented 2 years ago

張昀翰 在 家

york31390 commented 2 years ago

林宥呈 在家

shaoan901226 commented 2 years ago

黃紹安 在家

ray9016 commented 2 years ago

張展睿 在家

Kenttsai1 commented 2 years ago

蔡宗霖 在家

404HK416 commented 2 years ago

蘇彥華 在家

2001wei commented 2 years ago

姜禹詩 在家

Vialbum commented 2 years ago

林鈺翔 在家

YangTiChu commented 2 years ago

楊堤筑 在家

feliciachou commented 2 years ago

周佳蒨 在家

jenny126 commented 2 years ago

蔡宜潔 在家

Uriel58 commented 2 years ago

林成也 在家

qwezxca123 commented 2 years ago

曾旭宏 在 家

ccckmit commented 2 years ago

現在開始用文字模式上,先看

  1. https://gitlab.com/ccc110/sp/-/tree/master/11-riscv/mini-riscv-os/01-HelloOs

看懂以下程式碼,有問題用文字問:

#include <stdint.h>

#define UART        0x10000000
#define UART_THR    (uint8_t*)(UART+0x00) // THR:transmitter holding register
#define UART_LSR    (uint8_t*)(UART+0x05) // LSR:line status register
#define UART_LSR_EMPTY_MASK 0x40          // LSR Bit 6: Transmitter empty; both the THR and LSR are empty

int lib_putc(char ch) {
    while ((*UART_LSR & UART_LSR_EMPTY_MASK) == 0);
    return *UART_THR = ch;
}

void lib_puts(char *s) {
    while (*s) lib_putc(*s++);
}

int os_main(void)
{
    lib_puts("Hello OS!\n");
    while (1) {}
    return 0;
}

從頭開始讀這本書

有任何問題用文字問

nakirifumiya commented 2 years ago

王澤瑋 在家

Soober9260 commented 2 years ago

施威帆 在家

zraiz commented 2 years ago

邵南翔 在家

stereomp3 commented 2 years ago

打上make qemu之後就卡住了

stereomp3 commented 2 years ago

image 按下 ctrl+A+X和ctrl+C也無法退出

Ctrl-A 放開後再按 X ,按法有技巧 (可以了之後請回訊息告訴我!)

derek120432 commented 2 years ago

李韋德在家

nnnnnnn1266 commented 2 years ago

潘其恩在家

jiajianong commented 2 years ago

呂嘉融 在家

z22756392z commented 2 years ago

while ((*UART_LSR & UART_LSR_EMPTY_MASK) == 0); 老師這是在確認 UART_LSR位置的直 要大於 16嗎? UART_LSR_EMPTY_MASK: 110000(二進位) 還有為什麼要確認他的直大於16?

ccckmit commented 2 years ago

while ((*UART_LSR & UART_LSR_EMPTY_MASK) == 0); 老師這是在確認 UART_LSR位置的直 要大於 16嗎? UART_LSR_EMPTY_MASK: 110000(二進位) 還有為什麼要確認他的直大於16?

不是,是檢查 UART_LSR 中的UART_LSR_EMPTY_MASK 這個位元是否為 1,如果是代表可以寫入緩衝區了。

stereomp3 commented 2 years ago

為甚麼裡面的數字都要使用16進位表示?

ccckmit commented 2 years ago

為甚麼裡面的數字都要使用16進位表示?

這樣才可以和 二進位對得起來,10 進位不好對!

ccckmit commented 2 years ago

再進來一次 Google Meet 看看

如要加入這場視訊會議,請按一下這個連結:https://meet.google.com/ryc-fhgp-mpn 你也可以透過電話加入通話,只要撥打 +1 423-405-3363,然後輸入以下 PIN 碼即可:446 980 784# 如要查看其他電話號碼,請按一下這個連結:https://tel.meet/ryc-fhgp-mpn?hs=5

cabdy1735 commented 2 years ago

李翊慈 在家

choco427 commented 2 years ago

張詠翔 在家

ChiaYunn commented 2 years ago

張嘉芸 在家

wei-annn commented 2 years ago

趙唯安 在家