2017年4月21日 星期五

FreeRTOS Coroutine的限制

MCU因RAM不足,去動Coroutine的方法,但不太順。有switch case存在時就會掛。
後來改為if else就好了。然後找到這篇;
http://www.freertos.org/co-routine-limitations.html
難怪很少人用,有坑。
用photothreads則沒有看到這個問題。
因為Coroutine也是由switch case做出來的,才會有此問題。
結論是,不要在switch case內使用crDELAY,就可以。那只好改成一長串的if else。

記下來,以免又採到坑。