STM32 - Embedded IDE - GCC - 顯著減少固件的體積

導言


在這里插入圖片描述
如上圖所示,在編譯器附加選項(全局)里添加--specs=nano.specs,告訴編譯器使用newlib-nano替代newlib去編譯代碼。

newlib vs. newlib-nano

  • newlib 是 GNU ARM 工具鏈默認的 C 標準庫,功能完整,但體積較大(包含了完整的 printf/scanf、浮點支持、本地化、多線程等)。
  • newlib-nano 是針對嵌入式優化的裁剪版本,去掉了大部分不必要的功能,使用更小的緩沖區,更適合 Flash 和 RAM 都比較緊張的 MCU(比如 STM32G431)。

一、測試編譯


在這里插入圖片描述
在這里插入圖片描述
如上兩圖所示:

  • RAM的使用從13344 / 1024 = 13.03125kb 變成 10816 / 1024 = 10.5625kb。
  • FLASH的使用從75104 / 1024 = 73.34375kb 變成 45676 / 1024 = 44.60546kb。

總之,--specs=nano.specs的效果非常明顯。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93287.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93287.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93287.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python的美食交流社區系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持: 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具:Navicat/SQLyog等都可以 摘要&…

《Redis持久化機制對比與RDB/AOF調優方案》

📚 Redis持久化機制對比與RDB/AOF調優方案 🧠前言 在生產環境中,Redis 常常被用作緩存,但在更多場景下,它還存儲著核心業務數據(如會話、訂單、隊列任務等)。一旦 Redis 宕機、數據丟失&#…

eXtremeDB 醫療設備開發實戰:從合規到實時,構建 EN62304 級數據管理系統

在醫療設備開發領域,數據管理的 “可靠性” 與 “合規性” 是不可逾越的紅線 —— 監護儀心率數據的丟失可能延誤診斷時機,胰島素泵劑量記錄的錯誤則直接威脅患者生命安全。eXtremeDB 憑借對 EN62304 標準的深度合規支持、硬實時數據處理能力及多層次安全…

linux 設備驅動的分層思想

一、 概述像這樣的分層設計在linux的input、RTC、MTD、I2c、SPI、tty、USB等諸多類型設備驅動中屢見不鮮,下面對這些驅動進行詳細的分析。二、 輸入設備驅動輸入設備(如按鍵、鍵盤、觸摸屏、鼠標等)是典型的字符設備,其一般的工…

【嵌入式硬件實例】-555定時器驅動直流無刷電機

555定時器驅動直流無刷電機 文章目錄 555定時器驅動直流無刷電機 1、555定時器介紹 2、BLDC,無刷直流電機 3、DRV10866 驅動器 4、硬件準備與接線 5、電路工作原理 在這個項目中,我們將使用 555 定時器 IC 和 DRV10866 驅動器 IC 制作 BLDC、無刷直流電機驅動電路。無刷電機可…

Helm 常用命令 + Bitnami 中間件部署速查表

文章目錄一、Helm 常用命令速查表1.1. 倉庫管理1.2. Chart 搜索1.3. 應用部署1.4. 應用管理二、Bitnami 常用中間件部署示例三、常用自定義參數(values.yaml 配置項)四、安裝后的訪問方式五、一鍵安裝腳本 install-middleware.sh5.1. 完整腳本5.2. 使用方…

Ansible 自動化運維實戰系列(六):Valut詳解

Ansible 自動化運維實戰系列(六):Valut詳解📚 系列導航一:概述二:命令1)創建加密文件2)加密已有文件3)查看加密文件4)編輯加密文件5)解密文件6&am…

《探秘瀏覽器Web Bluetooth API設備發現流程》

網頁若需與藍牙設備通信,往往需依賴本地客戶端或專用驅動程序作為中介,不僅增加了用戶操作成本,也限制了Web應用在跨設備場景中的拓展。而Web Bluetooth API的出現,直接賦予了網頁與低功耗藍牙(BLE)設備對話的能力,從智能手環的健康數據同步,到智能家居設備的遠程控制,…

Jenkins+Python自動化持續集成詳細教程

Python接口自動化測試零基礎入門到精通(2025最新版)Jenkins安裝 ? Jenkins是一個開源的軟件項目,是基于java開發的一種持續集成工具,用于監控持續重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續…

C++面試——內存

一、簡述堆和棧的區別維度棧(Stack)堆(Heap)生命周期隨函數調用自動創建/銷毀由程序員或垃圾回收器控制分配速度極快(僅移動指針)慢(需查找空閑塊、維護元數據)空間大小較小&#xf…

UVM驗證(三)—UVM機制(1)

目錄 (一)Factory工廠機制 1. 工廠機制核心邏輯:“注冊 - 創建 - 覆蓋” 2. 代碼映射:從概念到實現 3. 實驗目標:用 dadd_fixen_driver 固定 data_en1 4. 工廠機制的價值:“靈活驗證的基石” 5. 常見…

前往中世紀 送修改器(Going Medieval)免安裝中文版

網盤鏈接: 前往中世紀 免安裝中文版 名稱:前往中世紀 送修改器(Going Medieval)免安裝中文版 描述: 在Going Medieval的世界中,黑暗時代的社會已瀕臨崩潰。14世紀末瘟疫肆虐,全球95%的人口因…

Font Awesome 參考手冊

Font Awesome 參考手冊 引言 Font Awesome 是一個功能強大的圖標庫,它允許開發者通過簡單的 CSS 類來添加圖標到網頁中。本手冊旨在為開發者提供全面的 Font Awesome 使用指南,包括圖標選擇、樣式定制以及常見問題解答。 圖標選擇 圖標分類 Font Awesome 提供了多種類別…

源網荷儲一體化零碳智慧工業園區建設

針對傳統工業園區等電力消納大戶存在的供電模式單一、能源管理錯雜、園區人員設備安全統籌不到位等諸多問題,通過AI分析及物聯網等新技術和自研交直流關鍵設備的應用,在三維場景中構建集智慧能源、智慧安防、碳排放管理及智慧運營等功能于一體的新型零碳…

MySQL表操作(DDL)

MySQL表操作創建表查看表結構修改表結構增加一列刪除一列修改某一列的屬性修改某一列的名字修改某一列的屬性和名字插入幾條信息刪除表創建表 語法: CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collat…

【總結】Python多線程

【總結】Python多線程備注一、基本概念二、備注 2025/08/15 星期五 最近用到了python的多線程發現和其他語言有點不同記錄一下 一、基本概念 首先要理解一下線程、進程和協程的概念 線程(Thread):是計算機能夠調度的最小計算單位 進程&…

【c++深入系列】:萬字詳解模版(下)

🔥 本文專欄:c 🌸作者主頁:努力努力再努力wz 💪 今日博客勵志語錄: 成功沒有標準答案,但堅持永遠是必選項 ★★★ 本文前置知識: 模版(上) 那么在之前的文章中我們展示…

Docker部署美化SunPanel導航頁

使用Cloudflare Tunnels穿透的地址:星霜導航 由于是使用的iStore里面的SunPanel導航頁,只是基本的功能 頁腳配置 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" conte…

支持向量機的原理和案例解析

支持向量機的原理和案例解析一、支持向量機的核心目標&#xff1a;間隔最大化步驟1&#xff1a;定義分離超平面步驟2&#xff1a;定義樣本到超平面的距離&#xff08;間隔&#xff09;步驟3&#xff1a;間隔最大化的目標步驟4&#xff1a;簡化目標函數二、通過拉格朗日乘子法求…

【教程】Nginx 源碼安裝

開發環境&#xff1a;VMWare 操作系統&#xff1a;紅帽 Linux 8 ? 前言 以離線環境安裝為前提&#xff0c;需準備以下 rmp 包內容&#xff1a; gccmakepcre-develzlib-developenssl-devel 如何準備可參考【教程】準備離線可用的 RPM 包 ? 流程 準備離線包 # 安裝 rpm yu…