看板 LinuxDev 關於我們 聯絡資訊
在原本的架構裡, 直接讓 FatFs存取 SD driver 因為我的 SD driver 寫得很爛, 只能用迴圈 polling 如果呼叫 FatFs 的程式的 priority 太高, 整個系統會被鎖死 FatFs call HAL level Middleware ---> SD driver (BAD driver) ---- 經過一些嘗試, 我的目標是讓 SD driver 不要霸佔 CPU 不能用 high priority task 執行 SD driver 我在 FatFs 到 Driver 中間, 安插一個 SD Task (low priority task) 把 SD 卡的操作移轉到 SD Task, 如此一來, SD driver 就不能霸佔 CPU了 FatFs call OS-level CMD OS-level call HAL-level Middleware ---> SD driver ---> SD Task ---> SD driver ------------------------------------------------------------------ high blocking low hot-waiting/polling priority call priority driver ---- (不知道真正的OS, 碰到非得polling慢速IO時, 會怎麼做) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.92.127
zstar:當前程序 sleep,交出 CPU 使用權,wait event發生~ 01/30 15:27
milochen:請教一下,是怎樣的慢速IO 非得用 polling? 02/01 10:45
lihgong:說慢也不會慢(@25Mhz, SD), 只是我暫時想不出怎麼把driver 02/01 15:47
lihgong:寫成IRQ/ DMA的形式, 只好一直polling 02/01 15:47
milochen:其實polling寫的出來,IRQ的也都寫的出來。 02/01 21:19
milochen:原來如此,如果有個 OS 的解法,就更簡潔漂亮了 02/01 21:20