Micro-ROS 韌體已經成功完成 build 並產生了 .elf
, .hex
, .bin
三種格式的輸出檔案,這表示前面的 linker 問題已解決,build 已經成功 ✅。
$/home/ubuntu/data/firmware_ws/firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.hex
$/home/ubuntu/data/firmware_ws/firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.elf
$/home/ubuntu/data/firmware_ws/firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.bin
$/home/ubuntu/data/firmware_ws/firmware/freertos_apps/microros_olimex_e407_extensions/build/micro-ROS.map
📦 韌體檔案分析
區段 | 說明 |
---|---|
text | 程式碼區(flash 佔用) |
data | 初始化的全域變數(RAM 佔用) |
bss | 未初始化的全域變數(RAM 佔用) |
dec | 總大小(= text + data + bss) |
hex | 十六進位表示 |
📌 對 STM32F407VET6(512KB Flash / 128KB RAM)來說:
-
你使用了 Flash 約 186 KB / 512 KB
-
使用 RAM 約 119 KB / 128 KB
➤ 非常接近上限,建議你注意 stack、heap 空間配置,避免溢位
🔧 建議你接下來可以做的事:
-
✅ 燒錄韌體
-
使用 ST-Link CLI 或 GUI 工具(如 STM32CubeProgrammer)燒錄:
或使用 micro-ROS 提供的 flash script(視平台而定)。
-
-
✅ 開啟 micro-ROS agent 串接 ROS2 主機
-
在 ROS2 主機(例如 Raspberry Pi)上執行:
-
-
✅ 測試 ROS2 通訊是否成功
-
開 ROS2 topic monitor:
-
🛠 若你 RAM 太滿,可以這樣做:
-
移除不必要的
rcl
功能,僅保留rclc
-
精簡 message type(例如使用
std_msgs/msg/Int32
取代大型結構) -
減少 timer 頻率或 topic 數量
-
關閉 micro-ROS debug log(減少佔用)
沒有留言:
張貼留言