新唐cortex-m051中慎用printf()函數—-一個printf()函數4kB大小

來源:互聯網
上載者:User

   最近整合項目,遇到一個問題,我一開始沒有注意,後來才慢慢發現,那就是我的程式已經燒不進去晶片中,經過翻查手冊後才發現,新唐cortex-m051的Flash只有8KB,我的程式編譯完之後bin檔案竟然有16KB,而我的程式加上注釋也只有1300多行,怎麼會那麼大呢?

 

  筆者不知道是什麼問題,於是就開始刪減程式,把一些可以要可以不要的程式刪除,(就是要了之後會更人性化的部分部分),等刪除到printf 的時候,奇怪的事情出現了,我刪除了4個printf,bin檔案從16KB縮減到13KB,於是我把所有的printf都刪除了,程式直接縮減到11KB。後來在一個程式中,非常小的程式中,一個printf函數調用,竟然多了4KB的空間。

 

  由於一個函數而使我的程式大了那麼多,我很好奇,於是便去翻查這個函數的原型,在新唐cortex-m0中到底是怎麼封裝的,可惜卻沒有找到,於是接下來弄別的程式,也沒有管其它了,12月16日,新唐會來南京開巡迴演講,到時候我會問清楚他們的,等有了答案我再和大家分享

 

  對於嵌入式編程來說,每個位元組的空間都是那麼的珍貴,希望各位同仁在編程的時候,慎用printf,雖然這個函數確實很方便,但是對於空間不足的來說,只能望而卻步了,可以用它系統內建的UART功能中的send_to_PC()即發送一個位元組通過串口到電腦。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.