IAR 设置问题

1、worksplace 的设置问题:edit configuration**

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样,每个工程都可以有一个workplace,方便切换。

2、文件夹包含问题**

在这里插入图片描述

3、包含.dat文件问题**

在这里插入图片描述
.dat 实际为宏定义一些参数,在宏定义的参数名称前加上 -D 即可
在这里插入图片描述

4、版本问题**

在这里插入图片描述

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 代码显示行号。
在这里插入图片描述

  1. Auto indent --》 Configuer… 打开设置
    根据自己的喜好或公司规约。
    在这里插入图片描述

6、Sourceinsight中设置Tab键方法**

Options --》 Document Options的选项。
在这里插入图片描述
Expand tabs(扩展制表符)的选项:将你的TAB键作为空格键使用,并且每次自动打上Tab Width个宽度。
在这里插入图片描述

Auto Indent(自动缩进)配置页面:
在这里插入图片描述

在这里插入图片描述

在上图中: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 取消注释"//"
在这里插入图片描述
快速对齐整个文件,快速注释/反注释一段或者整段代码。

8、使用第三方编辑器编辑代码**

进入Tools --》 Options --》选择Edit -》 External Editor

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

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

即可选择第三方的文档编辑器编辑代码。
在这里插入图片描述
编辑代码还行,毕竟IAR编辑真的好丑,但是调试时跳转不了。

9、Colors and Fonts设置**

设置关键字等的字体及颜色,可以调整为自己喜欢的颜色和字体。
在这里插入图片描述
设置后出来的效果
在这里插入图片描述

10、生成Bin 、hex文件

打开工程的Option选项,切换到Output Converter标签,如下图所示
勾选Generate additional output可生成用于下载的hex文件,Output format可设置生成的文件格式(bin hex等),若勾选Override default可修改默认生成文件名。
在这里插入图片描述
Intel extended 就是Hex文件 Binary 就是Bin文件
生成的文件一般在project ->Debug->Exe文件夹下面

11、IAR生成ELF**

切换到Linker标签页中的Output,可用生成ELF文件,如下所示
Output filename可修改生成的文件名,默认格式为.out可直接修改扩展名为.elf,其实这里的.out就是.elf文件相同格式。
在这里插入图片描述
在这里插入图片描述
我们来看下生成的elf文件
在这里插入图片描述
可勾选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。
在这里插入图片描述

在这里插入图片描述

14、下载文件**

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

15、linker链接**

设置如下 B I N
在这里插入图片描述

16、输出map配置 查看代码大小**

在工程中,默认是输出了map文件,如果没有输出,需要如下配置:
在这里插入图片描述
当按照上面配置勾选了“生产map”文件,就可以看到如下情况:
在这里插入图片描述
IAR编译的最后会出现以下三个值:

先解释一下,
48028字节的代码(占FLASH)
69096字节的常量只读数据(占FLASH)
74465字节的读写变量数据(占SRAM)

生成的bin文件大小:48028+69096= 117124bytes=114.38Kbytes

17、添加灵动微MCU**

链接: Pack文件.
在这里插入图片描述
到网站上下载Pack,安装后,在工程属性里面就可选择灵动微的MCU
在这里插入图片描述

18、用J-Link下载程序出现错误提示:Failed to get CPU status after 4 retries Retry?**

下载程序是出现提示。
在这里插入图片描述
具体的原因如下:
1)检测mcu是否有供电。在mcu没供电时,JLink上的LED是红色的。此时下载会出现上述提示。

19.编译报错 Error[Lp011]: section placement failed**

在这里插入图片描述
问题原因:
编译后的代码超出分配的程序代码空间。

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

在这里插入图片描述
两个程序的差异部分,就仅差1条指令
在这里插入图片描述

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

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

20.仿真时提示Warning: Stack pointer is setup to incorrect alignment. Stack addr = 0xFFFFFFFF**

在这里插入图片描述
并且,进入仿真界面后,也没有停留在main处。
解决办法:

Option 》Debugger 》Download》勾选 Use flash loader 即可。当使用jlink时,后续可以取消勾,不会出现再报错!直接用jlink下载会更快。
在这里插入图片描述

21.CSTACK HEAP 设置一次可用栈的大小,HardFault_Hander

CSTACK:限制函数中定义数组的最大值,否则进入HardFault_Hander
在这里插入图片描述
HEAP:限制动态分配内存(C函数库中的malloc)的大小,不用可以设置为0

22.如何下载IAR历史版本

http://files.iar.com/ftp/pub/box/ EWARM-CD-7503-10751.exe

前面地址是固定的,后面黄色的是软件的版本号.
但是前提是你要知道软件版本号和所对应的编译号.这样你就可以下载到你需要的文件了.

下面是IAR官网,最新版本下载

链接: link.
链接: IAR for ARM官网下载链接(包含一些历史版本).

23.STM32:connecting to cpu via connect under rest failed. 下载问题

在这里插入图片描述

问题原因:硬件使用的是J-LINK的SWD接口的接法,软件设置的却是采用的JTAG接口,于是下载的时候就会报错。把这个设置重新配置一下就OK了。很低级的错误有没有,但就是容易忽略。这是我碰到的问题以及解决方法。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值