导航:首页 > 源码编译 > iar编译时代码变绿

iar编译时代码变绿

发布时间:2025-03-02 10:46:02

1. 如何设置iar优化等级

果在A行设置的断点,单步调试的时候却只能到达A后边的某几行,可能的一个原因就是代码优化的等级太高了,导致编译器实际上没有在A行停顿。
解决办法:
在OPTION下修改优化等级

IAR默认的是最高优化等级。如果程序不大建议不优化。如果优化等级高,那么一些非汇编的延时函数可能无法执行,一些局部变量的值可能在使用过后,即便没有离开自己的作用

2. 如何查看IAR编译器编译后的汇编代码,我想知道这个编译器是如何处理中断的

编辑界面右击工程点击options菜单项,选择c/c++ compiler选项卡中的list选项,勾选output assembler files,编译后则生成离线汇编代码文件。
调试界面下,点击view / disassembly 菜单项,则显示在线汇编代码窗口。

3. 用IAR嵌入式编译程序,“section=”是什么意思

#pragma section( "section-name" [, attributes] ) 作用是由程序指定创建一个段
一般默认段都是由编译器自动指定的 不过看你这样的写法 IAR的时候是没有默认段的 必须由编写者手动指定
比如#pragma section = ".data"就是创建一个名字为.data的段,
然后下面调用
data_ram = __section_begin(".data");
来获取这个段的首地址以备其操作
其他类似
关于pragma section的详细说明如下。 对于#pragma 预处理还有很多功能 感兴趣可以自行搜索
==================================================================================
#pragma section。创建一个段。
其格式为:#pragma section( "section-name" [, attributes] )
section-name是必选项,用于指定段的名字。该名字不能与标准段的名字想冲突。可用/SECTION查看标准段的名称列表。
attributes是可选项,用于指定段的属性。可用属性如下,多个属性间用逗号(,)隔开:
read:可读取的
write:可写的
execute:可执行的
shared:对于载入该段的镜像的所有进程是共享的
nopage:不可分页的,主要用于Win32的设备驱动程序中
nocache:不可缓存的,主要用于Win32的设备驱动程序中
discard:可废弃的,主要用于Win32的设备驱动程序中
remove:非内存常驻的,仅用于虚拟设备驱动(VxD)中
如果未指定属性,默认属性为read和write。
在创建了段之后,还要使用__declspec(allocate)将代码或数据放入段中。
例如:
//pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}
该例中, 创建了段"mysec",设置了read,write属性。但是j没有放入到该段中,而是放入了默认的数据段中,因为它没有使用__declspec(allocate)进
行声明;而i放入了该段中,因为使用__declspec(allocate)进行了声明。

阅读全文

与iar编译时代码变绿相关的资料

热点内容
ofo服务器波动是什么意思 浏览:524
app不见了怎么恢复华为 浏览:891
和家欢商城APP怎么样 浏览:49
嗷呜app怎么老师没有网络 浏览:51
域名如何划分阿里云服务器 浏览:971
程序员应会开发技术 浏览:853
pdf带链接 浏览:699
中兴手机加密失败怎么办 浏览:606
六大算法之三动态规划csdn 浏览:121
linux如何使用静态库 浏览:495
ubuntu安装驱动命令行 浏览:763
pdf修改字体大小 浏览:861
scrm源码下载 浏览:29
印尼孕妇溯源码燕窝的价钱 浏览:905
mel和python 浏览:758
vb背单词软件源码 浏览:801
epld和单片机 浏览:506
主力资金源码分析 浏览:574
怎么去掉pdf水印 浏览:767
北京边缘融合服务器云服务器 浏览:958