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。

記下來,以免又採到坑。

4 則留言:

  1. bee 大
    請問stm32 系列要如何自學,網路上的基本教學極少,自學簡直動彈不得,連控制LED的範例都很困惑!

    arduion就超多資源,就算不懂也有資料庫能調用!

    FreeRTOS 要如何使用!我參考彥霖 實驗筆記!

    其實千頭萬緒不知道如何問起!謝謝打擾~

    回覆刪除
    回覆
    1. stm32duino呀,大部分arduino lib都可以直上

      刪除
  2. 公司是教電子工程師用CubeMX去設定,加上自動載入FreeRTOS。
    RTOS基本動作其實差不多,教材都是用uCOS-II。
    另外一個自學是用mbed吧!
    Arduino資源是多,做成可用的東西是可以,若是拿來做成產品量產,會有問題。
    這個問題要看行業別吧!如果要做成單件產品,還是用MCU比較有出路。

    回覆刪除
  3. 感謝 bee大 !
    已利用cubeMx + Keil 完成點亮LED,比較有動力學習下去!
    STM系列的細部控制真的很細!功能強大~

    回覆刪除