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,要做到並行開發,那就真的需要很大的規劃了。


6 則留言:

  1. 一個案子有這麼多人手??
     
    [版主回覆11/07/2012 13:03:09]不是一個案子這麼多人。
    而是速度及規模。每個人都發揮專業力,所以產品效率及穩定度好。
    且經常性是二個案子同時跑,交界時會出現同時三個案子一起來。
    一個案子在收尾,另一個在啟頭。
    插件是解產品Bug,或是修改客戶需求功能。

    回覆刪除
  2. RTOS真的有這麼好用,想學想學...
     
    [版主回覆11/07/2012 13:07:36]RTOS是實現軟體元件的基礎結構,這樣才能使不同人開發程式可以同時作用。
    軟體若無法元件化,那案子就無法平行開發。

    回覆刪除
  3. Beee大大
    如果要學ARM + RTOS 有沒有什麼書 或 網站 好介紹的??
    [版主回覆11/11/2012 22:33:15]RTOS就找uCos,對岸相當火熱。
    ARM的話就自己買塊板子練習一下。
    記得一併買J-Link,這樣才好單步除錯。
    ARM要用得順,還是要實戰才行。

    回覆刪除
  4. ARM + RTOS 的開發環境一定是LINUX ?
    [版主回覆11/11/2012 22:35:15]沒有這樣限制,uCOS給的都是原始碼。會組合起來,那個平台都一樣。

    回覆刪除
  5. 所以在windows的開發環境也OK ??

    對岸的書似乎便宜很多,品質和內容OK嗎??
    剛看了一下博客來...對岸的都400以下,而台灣的都600以上 XD
    [版主回覆11/11/2012 23:02:00]Windows環境下RTOS只能發揮一半的能力。所以我都是做為模擬來用。
    因為在作業系統下再架小型作業系統,一般人不都會覺得奇怪?
    我一開始提出在Windows下做RTOS模擬,就被教授問,這樣做有何用?
    確實對於作業系統不熟的人,根本搞不清楚是那一個作業系統在動作。

    回覆刪除
  6. 抱歉,沒說清楚.
    我想知道的是開發環境是否像PIC一般有個IDE環境可在windows下模擬/開發/燒錄
    [版主回覆11/12/2012 11:07:18]ARM的IDE有很多套,因為已是主流。
    官方版本為MDK。
    IAR也很好用,我公司用這個。
    免錢的GNU版本也有,但要架起來要一些功力。

    回覆刪除