Open ccckmit opened 2 years ago
陳文吉 在家
陳威宇在家
鄭宇岑 在家
魏仲彥 在家
林庭光在家
羅彥翔 在家
王證傑 在家
鄭智陽 在家
何文旺 在家
王冠文 在家
李柏均 在家
吳昆儒 在家
胡禎恩 在家
張昀翰 在 家
林宥呈 在家
黃紹安 在家
張展睿 在家
蔡宗霖 在家
蘇彥華 在家
姜禹詩 在家
林鈺翔 在家
楊堤筑 在家
周佳蒨 在家
蔡宜潔 在家
林成也 在家
曾旭宏 在 家
現在開始用文字模式上,先看
看懂以下程式碼,有問題用文字問:
#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;
}
從頭開始讀這本書
有任何問題用文字問
王澤瑋 在家
施威帆 在家
邵南翔 在家
打上make qemu
之後就卡住了
按下 ctrl+A+X和ctrl+C也無法退出
Ctrl-A 放開後再按 X ,按法有技巧 (可以了之後請回訊息告訴我!)
李韋德在家
潘其恩在家
呂嘉融 在家
while ((*UART_LSR & UART_LSR_EMPTY_MASK) == 0); 老師這是在確認 UART_LSR位置的直 要大於 16嗎? UART_LSR_EMPTY_MASK: 110000(二進位) 還有為什麼要確認他的直大於16?
while ((*UART_LSR & UART_LSR_EMPTY_MASK) == 0); 老師這是在確認 UART_LSR位置的直 要大於 16嗎? UART_LSR_EMPTY_MASK: 110000(二進位) 還有為什麼要確認他的直大於16?
不是,是檢查 UART_LSR 中的UART_LSR_EMPTY_MASK 這個位元是否為 1,如果是代表可以寫入緩衝區了。
為甚麼裡面的數字都要使用16進位表示?
為甚麼裡面的數字都要使用16進位表示?
這樣才可以和 二進位對得起來,10 進位不好對!
再進來一次 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
李翊慈 在家
張詠翔 在家
張嘉芸 在家
趙唯安 在家
從頭開始讀這本書
有任何問題用文字在這個 issue 問,臉書也可以!
簽到範例:
示範