Re: [心得] S3C2410 Bootloader

看板ASM (組合語言)作者 (liszt & bach)時間16年前 (2009/01/30 14:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/6 (看更多)
※ 引述《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
文章代碼(AID): #19WfjsJX (ASM)
討論串 (同標題文章)
文章代碼(AID): #19WfjsJX (ASM)