nios EDS 程序大小.docx

上传人:b****8 文档编号:27774567 上传时间:2023-07-04 格式:DOCX 页数:11 大小:265.62KB
下载 相关 举报
nios EDS 程序大小.docx_第1页
第1页 / 共11页
nios EDS 程序大小.docx_第2页
第2页 / 共11页
nios EDS 程序大小.docx_第3页
第3页 / 共11页
nios EDS 程序大小.docx_第4页
第4页 / 共11页
nios EDS 程序大小.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

nios EDS 程序大小.docx

《nios EDS 程序大小.docx》由会员分享,可在线阅读,更多相关《nios EDS 程序大小.docx(11页珍藏版)》请在冰豆网上搜索。

nios EDS 程序大小.docx

niosEDS程序大小

摘要

由於體積和成本因素,嵌入式系統的記憶體都很小,所以系統開發人員都很在意編譯出的程式碼大小,本文討論減少NiosIIEDS編譯程式碼大小的方法。

使用環境:

NiosIIEDS7.2SP1

介绍

以DE2而言,在芯片记忆最多只能49KB,SRAM只有512KB,SDRAM也只有8MB,這和英特尔x86平台動不動都有上G的記憶體不同,尤其有時為了簡化调试因素,只用在芯片记忆時,最常遇到的就是在芯片记忆塞不下所編譯的程式碼,以下討論幾種能有效減少NiosII程式碼的方法。

解答

1.使用发行模式

預設為调试模式,由於需要调试标志,檔案大小較大。

選好项目,按右鍵,活跃修造配置->勾選Relase。

由於NiosIIEDS除了軟體项目外,還會自帶一個系统程序库项目,兩個项目都要改成发行模式。

2.調整gcc參數

NiosIIEDS預設的gcc並沒有啟動最佳化,可以調成-O3或者-Os。

選好项目,按右鍵,物产,左側選C/C++修造,在左側总设置选中選水平(-O3)或优选大小(-Os),效果可能要自己實際試試看,且將将军,在右側選优选多数的优化调试平实選无。

 

3.使用减少的设备驱动程序

一些周邊提供了兩種模式的驅動程式,一種強調的是‘速度’,一種強調的是‘檔案大小’,NiosIIEDS預設使用強調‘速度’的驅動程式,勾選减少了设备驱动程序可有效減少程式碼大小。

選好项目,按右鍵,系统程序库物产,將减少了设备驱动程序打勾。

4.縮小最大文件标码常數

預設為32,根據NiosII软件开发商的手册說法,將此常數變小有助於減少編譯程式碼大小。

選好项目,按右鍵,系统程序库物产,設定最大文件标码常數。

5.將stdout、stderr、stdin設為零位

若你的軟體程式完全沒用到stdout、stderr、stdin,可將此設為零位,將可略為減少編譯程式碼大小。

選好项目,按右鍵,系统程序库物产,將stdout、stderr、stdin設為零位。

6.使用小C程序库

若你使用到ANSIC函數,可選擇使用小C程序库,這是gcc為嵌入式系統重新量身訂作的ANSIC标准图书馆。

選好项目,按右鍵,系统程序库物产,將小C程序库打勾。

7.使用Unix样式文件输入/输出

若你還想進一步減少編譯程式碼大小,就連小C程序库都不要用,事實上,NiosII的HAL已經提供了Unix样式文件输入/输出函數,直接使用將可有效減少編譯程式碼大小。

8.自己實作ANSIC函數

若你只需要一小部份的ANSIC函數,事實上可以自己實作,而不要使用整個ANSIC程序库。

如getchar()函數:

getchar

1的int(空隙)

{

2

  炭灰c;

3

  回归(读(0,&c,1)==1)?

 (未签名的炭灰)c:

 EOF;

4

}

9.使用Lightwieght设备驱动程序API

一些周邊如JTAGUART、UART、Optrex16207LCD支援轻量级设备驱动程序API,可減少編譯程式碼大小。

選好项目,按右鍵,系统程序库物产,將轻量级设备驱动程序API打勾。

10.使用最小的字符方式API

若你僅使用簡單的IO功能,可不需包括ANSI的stdio.h,而用sys或者alt_stdio.h取代、sys或者alt_getcharalt_stdio.h提供了alt_printf()、alt_putchar()、alt_putstr()的與(),如此將可減少編譯程式碼大小。

11.移除不需要的驅動程式

若有硬體周邊存在,無論你軟體程式是否存取該硬體,NiosIIEDS預設會幫你加上該硬體的驅動程式,如此將會增加編譯程式碼大小,請手動移除不需要的硬體驅動程式。

12.避免干净的出口

清洗出口會將所有C函數內部输入/输出缓冲清除,並呼叫任何對atexit()註冊的函數,NiosIIEDS預設使用干净的出口。

選好项目,按右鍵,系统程序库物产,不要選干净的出口(充足的缓冲)。

 

13.勾選节目从未退出

嵌入式系統通常不會結束,所以可勾選节目从未退出減少出口所造成的負擔。

選好项目,按右鍵,系统程序库物产,勾選节目从未退出。

14.不要使用C++

NiosIIEDS預設支援C++,但C++所編譯的程式碼大小較大,建議使用純C語言撰寫。

選好项目,按右鍵,系统程序库物产,不要勾選支持C++。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1