IAR 设置问题

1、worksplace 的设置问题:edit configuration
在这里插入图片描述
IAR 设置问题_第1张图片
IAR 设置问题_第2张图片
这样,每个工程都可以有一个workplace,方便切换。

2、文件夹包含问题
IAR 设置问题_第3张图片

3、包含.dat文件问题
IAR 设置问题_第4张图片
.dat 实际为宏定义一些参数,在宏定义的参数名称前加上 -D 即可
IAR 设置问题_第5张图片

4、版本问题
IAR 设置问题_第6张图片

5、IAR中设置Tab键方法
IAR中设置Tab键方法发下: Tools --》 Options --》Editor --》Menu --》选择Edit

1.Tab Size设置为4,Index Size 也设置为4,这样就可以实现直接按Tab键就可以缩写4个空格。
2.Default character 选择为 UTF-8。
3.勾选 Show line numbers 代码显示行号。
IAR 设置问题_第7张图片

  1. Auto indent --》 Configuer… 打开设置
    根据自己的喜好或公司规约。
    IAR 设置问题_第8张图片

6、Sourceinsight中设置Tab键方法
Options --》 Document Options的选项。
IAR 设置问题_第9张图片
Expand tabs(扩展制表符)的选项:将你的TAB键作为空格键使用,并且每次自动打上Tab Width个宽度。
IAR 设置问题_第10张图片

Auto Indent(自动缩进)配置页面:
IAR 设置问题_第11张图片

IAR 设置问题_第12张图片

在上图中:Auto Indent Type下面有三个选项,分别为None、Simple、Smart。三者的含义分别如下:

1、none表示不自动缩进

2、simple表示自动缩进,但是会与上一行保持一致,也就是在同一列

3、smart表示自动智能缩进,它会在上一行的列数下再缩进一次。

通过设置IAR、Sourceinsight的参数,使其保持一致,就不再会出现Sourceinsight编辑好的文件,到了IAR中就显示完全乱了。

7、快捷键设置
进入Tools --à Options --à选择Edit

Auto Indent 自动对齐

Block Comment 注释"//"

Block Uncomment 取消注释"//"
IAR 设置问题_第13张图片
快速对齐整个文件,快速注释/反注释一段或者整段代码。

8、使用第三方编辑器编辑代码
进入Tools --》 Options --》选择Edit -》 External Editor

Editor:选择第三方软件的启动地址

Arguments: F I L E P A T H FILE_PATH FILEPATH

即可选择第三方的文档编辑器编辑代码。
IAR 设置问题_第14张图片
编辑代码还行,毕竟IAR编辑真的好丑,但是调试时跳转不了。

9、Colors and Fonts设置
设置关键字等的字体及颜色,可以调整为自己喜欢的颜色和字体。
IAR 设置问题_第15张图片
设置后出来的效果
IAR 设置问题_第16张图片

10、IAR生成HEX
打开工程的Option选项,切换到Output Converter标签,如下图所示
勾选Generate additional output可生成用于下载的hex文件,Output format可设置生成的文件格式(bin hex等),若勾选Override default可修改默认生成文件名。
IAR 设置问题_第17张图片

11、IAR生成ELF
切换到Linker标签页中的Output,可用生成ELF文件,如下所示
Output filename可修改生成的文件名,默认格式为.out可直接修改扩展名为.elf,其实这里的.out就是.elf文件相同格式。
IAR 设置问题_第18张图片
IAR 设置问题_第19张图片
我们来看下生成的elf文件
IAR 设置问题_第20张图片
可勾选Include debug information in output,设置生成的elf文件是否包含debug信息。

12、out(ELF)文件转换成HEX文件
IAR有一个工具:安装目录下bin\ielftool.exe 可以使用
该指令方法是: ielftool --ihex *.out *.hex
–ihex 是个参数,表示转换为HEX文件
*.out 要转换的OUT格式的源文件
*.hex 输出的HEX的文件名
转换后,可以用串口方式烧写了!

13、设置程序存放地址
在工程上点右键->linker->edit,这里可以设置中断向量表(VectorTable)和程序存放地址(Memory Regions)。IAP程序(相当于bootloader)中断向量表设在0x08000000程序起始地址设为0x08000044(多出来的0x44用来放大小为0x40的向量表);普通用户程序(被引导的)分别设为:0x08003000,0x08003000。
IAR 设置问题_第21张图片

IAR 设置问题_第22张图片

14、下载文件
在这里插入图片描述
Download active application:和download and debug功能类似
Download file… : 下载.out文件到flash
erase memory:擦除memory
要启用download功能,设置debugger -> download 中的verifv download
IAR 设置问题_第23张图片

15、linker链接
设置如下 B I N
IAR 设置问题_第24张图片

16、输出map配置
在工程中,默认是输出了map文件,如果没有输出,需要如下配置:
IAR 设置问题_第25张图片
当按照上面配置勾选了“生产map”文件,就可以看到如下情况:
IAR 设置问题_第26张图片
17、添加灵动微MCU
链接: Pack文件.
在这里插入图片描述
到网站上下载Pack,安装后,在工程属性里面就可选择灵动微的MCU
IAR 设置问题_第27张图片
18、用J-Link下载程序出现错误提示:Failed to get CPU status after 4 retries Retry?

下载程序是出现提示。
IAR 设置问题_第28张图片
具体的原因如下:
1)检测mcu是否有供电。在mcu没供电时,JLink上的LED是红色的。此时下载会出现上述提示。

19.编译报错 Error[Lp011]: section placement failed
在这里插入图片描述
问题原因:
编译后的代码超出分配的程序代码空间。

如下所示。 芯片的分配的ROM代码空间为 0x801FFFF - 0x8002000 = 0x1DFFF = 122879
IAR 设置问题_第29张图片
我们比较两个程序的map文件。
下图左边(Errors:none),程序代码占用空间为 86828+36020 = 122848 , 没有超出 我们分配的空间。
而右边报错Error[Lp011](Errors:1), 程序代码占用空间为 86828+36196 = 123024 , 已经超出 我们分配的空间。所以报错Error[Lp011]。

IAR 设置问题_第30张图片
两个程序的差异部分,就仅差1条指令
在这里插入图片描述

char PocData【200= “AT+ZTTSP=;strcpy(PocData, "AT+ZTTSP="); 

这两条指令都是把“AT+ZTTSP=”赋值给PocData, 但是
char PocData【200】 = “AT+ZTTSP=”指令,会占用大量的data memory

你可能感兴趣的:(IAR)