天天看點

緊急避坑 stm32cube+freertos+fatfs挂載正常

這個問題一不留心就出錯,排查了好多天。

網上方法試了都不行,甚至無奈去看底層函數,都發現沒有用,後來想到可能優先級問題。

緊急避坑!!!如果沒有用freertos,那中斷優先級設定沒啥關系。但如果用了freertos,那SDIO的優先級必須要注意跟freertos區分開來,不能高過他!不然就是mout正常,read等其他操作都傳回錯誤3 not ready。

緊急避坑 stm32cube+freertos+fatfs挂載正常

其實當你開啟freertos,然後點選NVIC時候,cube會提醒你,要注意函數的中斷優先級和freertos優先級的關系。

(如果中斷處理程式調用RTOS函數,請確定其搶占優先級低于最高的SysCall中斷優先級。如FreeRTOS中的“LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY”)

緊急避坑 stm32cube+freertos+fatfs挂載正常

當初沒怎麼注意,現在才發現這是多麼重要!!

還有一個要注意的小地方