1、worksplace 的设置问题:edit configuration
这样,每个工程都可以有一个workplace,方便切换。
3、包含.dat文件问题
.dat 实际为宏定义一些参数,在宏定义的参数名称前加上 -D 即可
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 代码显示行号。
6、Sourceinsight中设置Tab键方法
Options --》 Document Options的选项。
Expand tabs(扩展制表符)的选项:将你的TAB键作为空格键使用,并且每次自动打上Tab Width个宽度。
在上图中: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、IAR生成HEX
打开工程的Option选项,切换到Output Converter标签,如下图所示
勾选Generate additional output可生成用于下载的hex文件,Output format可设置生成的文件格式(bin hex等),若勾选Override default可修改默认生成文件名。
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
16、输出map配置
在工程中,默认是输出了map文件,如果没有输出,需要如下配置:
当按照上面配置勾选了“生产map”文件,就可以看到如下情况:
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]。
char PocData【200】 = “AT+ZTTSP=”;
与
strcpy(PocData, "AT+ZTTSP=");
这两条指令都是把“AT+ZTTSP=”赋值给PocData, 但是
char PocData【200】 = “AT+ZTTSP=”指令,会占用大量的data memory