Damien

@DamienChen

我好爛

Joined on Feb 13, 2023

  • EDID全名為Extended Display Identification Data,是由VESA協會制定的顯示器標準資訊格式。具體來說,可以把 EDID 當成一個顯示器的 metadata / 身分證,其內容會包含顯示器的相關資訊,如顯示器名稱、產品序號、支援解析度、聲音格式等等。目的為告訴輸出端顯示器支援的能力,確保電腦或是機上盒等影音輸出裝置,在連接上顯示器後,能根據資訊輸出正確的影音格式,因此可以避免無法顯示或顯示比例不正常等狀況發生。 目前此項技術已廣泛應用於影音顯示介面如 DisplayPort、HDMI。在實作上,為了要容納先前提到的EDID資訊於顯示器中,儲存在 EEPROM 中,並且在HDMI介面會利用I2C的介面來進行雙向的資料傳輸。 EDID 透過 I2C 與 source 進行傳輸 image image 目前 HDMI 介面使用 EDID v1.3,DP 介面則使用 EDID v1.4
     Like  Bookmark
  • PCI Read / Write PCI Configuration Space PCI Configuration Space 和一般記憶體空間是分離的,通常可以透過 I/O space 和 MMIO 的方法存取,但 PCI device 還沒分配到資源之前,只能透過 I/O space 的方式去存取。 傳統的 PCI 裝置的 Configuration Space 包含了 64 Bytes 的 header space 和 192 Bytes 的 capability space,總共 256 Bytes. CPU 可以透過 BDF 加上 register offset 的方式存取 I/O address space 讀取 PCI header. 接下來我們都將以 type 0 (非 Brdige)的設備為例。 下圖為 header space 的架構: image
     Like  Bookmark
  • 集合的概念在高中數學就接觸過,大學則學到了位元的四則運算(AND、OR、NOT、XOR等等)。 集合論與位元運算,兩者看似毫不相關的東西,卻有著奇妙的數學關係聯繫著。 集合轉換成位元表示 集合由元素組成,例如 S = {1, 2, 3}。在程式領域遇到有關集合的題目,通常使用 hash table 紀錄一個集合裡面出現的元素。 在集合論中,我們學到了聯集(∪)、交集(∩)以及其他等概念。若我們要找到兩個集合的交集,就要走遍每個 hash table 的元素。 換個思維思考,若我們使用位元 0 代表數字沒有在集合中,位元 1 代表數字有在集合裡,那就可以使用位元表達一個集合。二進位由右至左第 i 個 bit 代表 i 是否在集合中。例如 S = {1, 2, 3} 就可用 1110 表示,反之亦然。
     Like  Bookmark
  • ref: A complete guide for RTOS 什麼是 Priority Inversion 在 real-time OS 中,由於低優先權任務正在 access shared resource 且高優先權任務也需要該 shared resource,導致 高優先權任務需要等待低優先權任務。 下圖為一個 priority inversion 經典例子: image
     Like  Bookmark
  • contributed by < Damien-Chen > :::danger 不要打錯自己的 GitHub 帳號名稱。 :notes: jserv ::: 開發環境 Windows 11-WSL2-Ubuntu-20.04.5-LTS
     Like  Bookmark
  • contributed by < Damien-Chen > 測驗一 說明 考慮 next_pow2 可針對給定無號 64 位元數值 x,找出最接近且大於等於 2 的冪的值,例如: next_pow2(7) = 8 next_pow2(8) = 8 next_pow2(13) = 16
     Like  Bookmark