各位晚安
廢話不多說,show me the code:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1)
{
// Stay IDLE .. Everything is done in the ISR Handler
}
}
上面這段程式碼想必大家非常熟悉
問題來了
看看那段 while(1)
即便主要功能都做在中斷裡面
平常中斷沒發生時,處理器難道沒有比 busy loop 更節能的事情做嗎?
還是說
例如 cortex-M4 這類 SoC 的 pipeline 有針對 busy loop 做能耗調整?
又或者說
在這種時候通常會進到睡眠模式之類的來等待中斷發生
你各位都是怎麼處理這個 while(1)??
掛?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.167.238 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1692100569.A.C4A.html
→
08/15 19:56,
9月前
, 1F
08/15 19:56, 1F
噓
08/15 19:58,
9月前
, 2F
08/15 19:58, 2F
噓
08/15 19:58,
9月前
, 3F
08/15 19:58, 3F
→
08/15 19:59,
9月前
, 4F
08/15 19:59, 4F
我都念costco呀
推
08/15 19:59,
9月前
, 5F
08/15 19:59, 5F
※ 編輯: dces4212 (36.230.167.238 臺灣), 08/15/2023 20:01:01
推
08/15 20:05,
9月前
, 6F
08/15 20:05, 6F
推
08/15 20:12,
9月前
, 7F
08/15 20:12, 7F
推
08/15 20:18,
9月前
, 8F
08/15 20:18, 8F
推
08/15 22:01,
9月前
, 9F
08/15 22:01, 9F
→
08/15 22:01,
9月前
, 10F
08/15 22:01, 10F
→
08/15 22:02,
9月前
, 11F
08/15 22:02, 11F
→
08/15 22:03,
9月前
, 12F
08/15 22:03, 12F
→
08/15 22:05,
9月前
, 13F
08/15 22:05, 13F