2012年5月6日 星期日

STM32和RTOS的完美配合

STM32後期,Timer越來越多,和週邊控制相關的信號,Bee皆以Timer做為產生或是觸發源。
另有一些和軟體相關,或是慢速度IO則以RTOS中的時間延時函式來做。
這樣的組合,使STM32無需高度依賴高即時性的RTOS,使用上更加方便。

不過也引入一點問題:系統要如何分割?
在這點上面,Bee目前所處的團隊完全看不出這個問題。因為分工得很好,各思其職。
在名目上有二組人,一組是做系統,一組是做人工智慧。

Bee在系統組內,做IO設定的軟體,也就是利用Timer及RTOS實現各式週邊。
因為工作都是一個人規劃,所以無分割上的衝突。

之所以工作分到Bee這裏來,是因為STM32手冊有1300頁之大。所以有人會說STM32並不好入門。

功能最大的Timer,具有多種能力,可以是Input也可以是Output,連畫電路的工程師都搞不清楚。

最後都是由Bee來建議使用腳位。

基本上要操作STM32,需要Cortex-M3使用手冊,這個不是ST給的。一份stm32 reference manual。
還有一個型號的manual。除了Cortex-M3使用手冊之外,其餘皆為原文。

這種軟硬體間的苦工,就由Bee包了。另外RTOS也是。
RTOS將硬體隔開,人工智慧的程式在測試及移植上較為容易得多。

只需提供好進入函式,不用擔心干擾其他程序,可以盡全力執行。其餘必要工作,不是RTOS負擔,就是Timer和DMA做了。

這樣工程就由數人同時開發。另有一人全力最統合,就是將開發完成的程式組合起來並測試。
系統中還有一位工程師是做介面的,將資料送到PC的介面程式。基本上就是人機界面。

軟體工程師的職務如下
系統工程師1:硬體及驅動,這就是Bee目前的職務
系統工程師2:整合及系統建造
系統工程師3:人機界面
演算法工程師:機器學習及人工智能開發
測試工程師:測試整機成果

若是沒有RTOS,要做到並行開發,那就真的需要很大的規劃了。