Re: [心得] S3C2410 Bootloader
※ 引述《lihgong (當憲兵是我一輩子的恥辱)》之銘言:
: 在原本的架構裡, 直接讓 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時, 會怎麼做)
以 Linux 來說 慢速 IO 的處理方式跟您的很像
通常 Linux ISR 會分兩步驟
第一是必須立即處理的部份
比方說回應裝置、設定 register 等等
之後會利用比方說 tasklets (或 softirq 等等)
待核心有空閒時
scheduler 把該 tasklets 排給 cpu 執行
這時就可以接著處理第二部分
例如讀取或寫入裝置的資料
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.102.106
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 6 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章