文章

顯示從 2025 起發佈的文章

[筆記] ARM Compiler 6 且不勾選 MicroLIB,晶片無法開機運行?

圖片
問題:STM32晶片用 ARM compiler 6 版本編譯,不勾選 MicroLIB,如下圖設定。燒錄後,晶片不會自動運行? 1. 使用 C++ 編譯,不能再勾選 MicroLIB,因為組譯會出現錯誤。MicroLIB 不支援C++。 2. 改回 ARM Compiler 5,勾選 MicroLIB。 3. 使用 C++ 編譯,需要重新定義一些 stdio 的函數,參考  keil MDK AC5向AC6迁移后如何重定向printf_ac6 printf-CSDN博客 。 4. 使用 C++ 編譯的解決方式,新增 Compiler I/O,如下圖。如果有用到 File or TTY,就勾選起來。

STM32H743VIT6 開發板並帶有 CAM 和 LCD 模組

圖片
        STM32H743 開發板帶有 DCMI 的鏡頭模組和 LTDC 控制器可外接 LCD 顯示模組,晶片的內部時脈最高可達 480MHz,內建 Flash 和 SRAM 記憶體,開發板的正背面,如下圖所示。開發板上面還有 SD 卡槽和 USB 接口,在應用方面可開發為照相機﹑攝影機﹑行車紀錄器...等終端產品。         晶片開機啟動機制:STM32H7x 系列晶片有一根 BOOT 接腳,當腳位電壓為低時,開機通電後,系統會從 Flash 的 0x08000000 位址開始執行,這塊區域正是我們所存放的應用程式碼。萬一我們程式碼寫得不夠完整而造成晶片系統陷入異常的時候,此時可能我們也無法透過 ST-Link 燒錄或除錯,遇到這種情況,必須將 BOOT 腳位電壓拉高,再開機通電,讓晶片進入 Bootloader。晶片在生產期間,ST會將官方的 Bootloader 燒錄在 Flash 的 0x1FF00000 位址,於是通電後進入這段程式後,我們就可以透過官方工具 STM32CubeProgrammer 從 USB 端口進行燒錄下載。 開發板生產商提供鏡頭與顯示模組的範例程式碼,連結如下 http://www.fdiot.top/forum.php?mod=forumdisplay&fid=52 ,我們用 Keil IDE 環境就能編譯並除錯運行。所提供的範例不帶 RTOS 架構,為了往後擴展便利,我將此範例架構修改為 RTOS 系統。首先,在 Keil 環境下需添加三個部分:CMSIS-RTOS2 ﹑  Device-Startup ﹑  RTOS,如下所示。 然後,程式碼呼叫 osKernelInitialize() 初始化函數,再創建新的線程函數 osThreadNew ( Routine, NULL, &osAttr ),最後呼叫 osKernelStart() 啟動函數,開發板就能運行 RTOS 架構了。 操作影片 https://youtube.com/shorts/LuNI9CanfJ4?feature=share

初學 ESP32-S3 攝像模組的開發

圖片
        ESP32-S3模組的核心是 XTensa 雙核的處理器,運行最高時脈為 240MHz。這個無線模組具備 WiFi 2.4G 無線網路,還有低功耗的藍芽 BLE。模組外觀如下圖一,晶片本身帶有兩組 USB 介面,其中一組是 USB_UART 通訊介面,另一組為 USB OTG。圖一的右邊 type-C USB 是 serial 通訊端口,用來接 Arduino IDE 或者 debug 之用,圖一的左邊 type-C USB 則是 OTG 之用。 圖一:攝像模組的外觀         ESP32-S3 模組的硬體規格能從晶片命名來得知,我們從外觀圖知道這是 N16R8 編號,再根據技術文件的命名規則(下圖二),因此這顆模組帶有 Flash 16MB (Quad SPI) 以及 PSRAM 8MB (Octal SPI),這項資訊會用在稍後的 Arduino IDE 的環境設定。 圖二:晶片模組的命名規則         依據上述的規格,開啟 Arduino IDE,在工具欄位底下設定相關的參數,如下圖三。開發板選擇"ESP32S3 Dev Module",然後記憶體分配的模式設為Huge APP,這樣才有足夠的空間存放攝像模組的APP程式碼。 圖三:Arduino IDE 的環境配置         接下來,我們要驗證攝像模組是否能不能正常運作。因此,開啟範例選項,如下圖四,選擇 CameraWebServer 的參考範例。在範例的程式碼中,先要選擇這個模型,下面這段定義要被採用,編譯過程便會將模組對應的腳位啟用。最後,我們再填入無線網路的 ssid 與 password,並且檢驗編譯範例有沒有出現錯誤。                #define CAMERA_MODEL_ESP32S3_EYE    // Has PSRAM 圖四:攝像模組的參考範例         成功編譯後,再進行燒錄。在圖一的模組外觀,上面有兩顆小按鈕,左邊是 rese...