文章

顯示從 3月, 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