2022年4月12日 星期二

STM32 TouchGFX實際應用

 第一個是MCU換了。所以只能回去STM32CubeIDE上做編譯,這個問題不大。

然後再連上一個傳統的TFT,它是240*320 16bit color。
所以運作需要一個graphic buffer,容量為240*320*2 Byte = 153,600 Byte
一個MCU要超過64K RAM都不多。
所以第一個問題是要啟動 PartialFrameBufferManager
問題來了,要除錯看不到。
因為它是用hpp寫出來的,沒有用到就沒有實體程式。
有用到是有實體,但不在cpp檔中就無法設斷點。有時可以設斷點,但停下來很多變數又無法看。
另外若又加入freeRTOS,結果就是不動,還不知卡在那裏。
只好先拿掉freeRTOS,改成單工還可以追,只好先這樣弄。
弄出來的結果是RAM只用20KB,這個可以用的MCU就很多了。MCU不缺ROM,UI多是圖檔及字型檔,但RAM一向很少,RAM放不進去就無法用。

不過就算如此老闆還是想換成本低的MCU,主要是供貨問題。
不過我說沒法,整個專案生成時有150MB,大約一星期就可以生成這樣的量。換另一個MCU要做出類似的程式,沒有產生器,個人覺得進度以月來計。
結論是,TouchGFX確實綁在STM32上,但它可以將原先以月計的UI開發壓縮到以週計。
就看專案型式了,新專案比較適用,因為結案快,一年可以做好幾個案子。
若是cost down別人的,還是算了,光是MCU就壓不下來。

STM32 TouchGFX試用

 有客戶要做案子,希望看到會動的東西。

於是就用STM32的demo板做一個概念性的範例。
使用STM32F476 Discovery板做一個樣子。因為這個板子有支援,完全不需使用STM32CubeIDE及STM32CubeMX就可以更新程式。
然後就會遇到一個C工程師不太想遇到的問題: 升級成C++
個人不太想升,效益不好,90%的工作都在C上,升上去能用幾個案子?
所以只能選擇C/C++混編。
這個算簡單: C程式存成 *.c,不用改。
主要是在cpp內引用.c函式,要在函式前面多加 extern "C"
很快就做出樣本程式,還有Simulator的PC程式可以給客戶看一下。
對方很快的就提出正式規格了。

然後...痛苦的事一個一個來了。