博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EWSTM8系列教程06_工程节点选项配置(一)
阅读量:2045 次
发布时间:2019-04-28

本文共 6993 字,大约阅读时间需要 23 分钟。

IAR最新全套教程:

9.EWSTM8系列教程09_IDE选项配置(二)
10.EWSTM8系列教程10_一个工程添加多个节点
11.EWSTM8系列教程11_一个工作空间添加多个工程
12.EWSTM8系列教程12_IAR文件类型描述
······
  
  该系列教程已经在我的个人微信公众号「strongerHuang」整理并分享。因在这里分享文章,还需单独整理一遍,时间有限,就不再一一重复整理出来了。

  所以,想要查看更多相关教程,关注我的,在公众号底部菜单,或者回复【EWSTM8系列教程】即可查看。

  申明:该文档由作者「strongerHuang」原创发布,仅供个人学习使用,转载请公众号联系作者授权。版权所有,禁止商用

一、写在前面

  Options for node即节点选项,而node节点位于Project工程的下一级。本文讲述的工程节点选项配置,即菜单Project -> Options下Options for node节点选项中的前五项配置,如下图:

  由于节点选项较多,我将其分为工程节点选项配置(一)工程节点选项配置(二)两篇文章来讲述。

  本文章收录于「strongerHuang」博客专栏,在我的博客右侧也能查找到。

  为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该系列教程已更新于我的个人微信公众号「strongerHuang」,关注微信公众号回复【EWSTM8系列教程】即可查看。

二、拓展内容

  本文讲述的工程节点选项配置,其中的工程与节点是包含关系,而工作空间与工程也是包含关系。

2.1 工作空间、 工程、 节点三者的关系

三者之间就是包含关系:工作空间 > 工程 > 节点。一个工作空间可以包含多个工程,一个工程可以包含多个节点,见下图:

请关注系列教程新建多工程,多节点的文章。

2.2 打开节点选项配置的三种方法

1.选中节点 -> 快捷键Alt + F7

这种方法简单、快捷,推荐使用。

2.选中节点 -> 右键 -> Options

3.选中节点 -> 菜单Project -> Options

三、General Options普通选项

3.1 Target目标

1.Device:器件

即选择MCU芯片型号,如上图选择的是STM8S103F3P.

2.Code model:代码模式

包含三种:小、中、大;
Small:小
Medium:中
Large:大
对于初学者,可以理解为:如果选择Large大的话,编译出来的Code代码就会更大。具体的差异可以查看生产的.map文件。

3.Date model:数据模式

原理类似上面代码模式,同样有三种:
Small:小
Medium:中
Large:大

3.2 utput输出

1.Output file:输出文件

输出文件类型有两种,但只能二选一。
A.Executable:生成可执行的文件。如Hex、Bin等;
B.Library:生成库文件。

2.Output directories:输出目录(路径)

编译过程中生成的文件分别存放的目录(路径)。默认在Debug文件夹下面就会发现三个文件夹:Exe、Obj、List。
A.Executables/Libraies:生成可执行/库文件的路径
B.Object files:生成目标文件的路径
C.List files:生成列表文件的路径

提示:路径为相对工程文件(如Demo.ewp)的路径。

3.3 Library Configuration库配置

1.Library:选择运行时库

运行时库有四种可选择:
None:无
Normal:选择常规配置的运行时库
Full:选择完整配置的运行时库
Custom:选择定制运行时库

2.Description:运行时库的描述

3.Configuration:运行时库的配置

提示:第2、3点是随第1点选择的库改变而改变,第3点配置只有在选择“定制运行时库”时才可修改。请参看下图动画效果:

选择运行时库动画效果:

3.4 Library Options库选项

1.Printf formatter:选择Printf(打印输出)格式器

总共有8种类型:
Auto:自动格式
Full:完整格式
Full without multibytes:完整无多字节格式
Large:大格式(不区分a或A)
Large without multibytes:大格式(不区分a或A),无多字节格式
Small:小格式(不区分a或A,无Float)
Smallwithout multibytes:小格式(不区分a或A,无Float),无多字节格式
Tiny:微小格式;

2.Scanf formatter:选择Scanf(打印输入)格式器

类似上面printf,总共有7种类型:
Auto:自动格式
Full:完整格式
Full without multibytes:完整无多字节格式
Large:大格式
Large without multibytes:大格式,无多字节格式
Small:小格式
Smallwithout multibytes:小格式,无多字节格式

3.Math functions:数学函数

有两种可选择类型:
Default:默认。包含cos, sin, tan, log, log10等函数;
Smaller:精简。函数体积小,执行速度快,精度低,输入范围小等。

3.5 Stack/Heap栈和堆

1.Stack size:栈大小。

2.Heap size:堆大小。

提示:堆和栈位于内存中两块不同区域,使用的大小根据实际情况而定,修改此值之前请认真了解堆栈的含义。

3.6 MISRA C标准

MISRA-C:1998和MISRA-C:2004年的选项控制IDE如何检查源代码与MISRA C规则的偏差,这些设置用于编译器和链接器。

General Options普通与C/C++ Compiler编译器中的MISRA C选项配置相关联,本文章不讲述,后续单独讲述关于MISRA C的内容。

四、Static Analysis静态分析

4.1 C-STAT静态分析

1.Select C-STAT Checks:选择C静态检查项目

里面可选择的项目较多,通过手动选择(使能/失能)相关选项,使用前需了解C-STAT相关知识。

2.Import Settings:导入设置

导入静态检查配置文件(类型为.xml文件)。

3.Export Settings:导出设置

导出(当前第1点中)静态检查配置文件。

4.Enable parallel analysis:使能并行分析

后面参数为并行分析(进程)数。

5.Enable module timeout:使能模块超时值

后面参数为单个模块超时时间(单位:秒)

6.Enable false-positives analysis:使能“误报”分析

7.Limit messages per check and file:限制每次检查文件的消息数

提示:静态分析各项参数配置好之后,在菜单Project -> C-STAT Static Analysis中执行。

4.2 Extra Options额外选项配置

这里就不贴图了,主要就是使用命令行进行静态检查相关的配置,具体命令后续抽空单独整理成相关文章。

五、C/C++ Compiler编译器

5.1 Language语言1

1.Language:选择语言

三选一,选择C语言,就不能C++相关特性。选择Auto自动,会根据文件后缀自动判别。

2.Language conformance:语言一致性

控制编译器如何严格遵守标准C或c++语言。
Standard with IAR extensions:接受IAR(STM8)特定的关键字作为标准C或c++语言的扩展。
Standard:禁用IAR系统扩展,但不严格遵循C/C++语言。
Strict:严格遵守C/C++语言。

3.C dialect:选择C标准

C 89

C 99

  Allow VLA:运行可变长度数组;
  C++ inline semantics:支持内联函数;

Require prototypes:需要原型

强制编译器验证所有函数都有合适的原型。

4.C++ dialect:选择C++标准

Embedded C++:嵌入C++
Extended Embedded C++:扩展嵌入C++
Destroy static objects:清除静态对象

5.2 Language语言2

1.Plain ‘char’解析为Signed或者Unsigned.

2.Floating-point semantics:浮点语句

Strict conformance:严格一致,使编译器严格遵守浮点表达式的C和浮点标准。
Relaxed:放松,使编译器放松语言规则并对浮点表达式执行更积极的优化。

3.Enable multibyte support:启用多字节的支持

默认情况下不支持多字节,启用多字节支持使编译器可以根据主机的默认设置多字节支持来解释源代码中的多字节字符。

5.3 Optimizations优化

1.Level:优化等级

None:无
Low:低
Medium:中
High:高
选择High优化等级为高时,可以选择Balanced平衡、Size大小、Speed速度(速度时可选择不收大小限制),请参看下图动画效果。

2.Enabled transformations:使能转换

选择不同的优化等级,对应优化转换不同,也可自定义转换项目。

3.Number of virtual byte registers:虚拟寄存器的字节数

优化选项动画效果:

5.4 Output编译输出

1.Generate debug information:生成(输出)调试信息

如果需要调试,此选项需勾选。

5.5 List列表

1.Output list file:输出列表文件

Assembler mnemonics:输出汇编助记符
Diagnostics:输出诊断信息

2.Output assembler file:输出汇编文件

Include source:包含源文件
Include call frame information:包含调用信息

5.6 Preprocessor预处理

1.Ignore standard include directories:忽略标准包含目录(路径)

2.Additional include directories:添加路径

最好是相对工程目录的相对路径。

3.Preinclude file:预包含文件

4.Defined symbols:预定义

类似代码中#define,这里截图预定义STM8S103,相当于定义在stm8s.h文件中。

5.Preprocessor output to file:预处理输出到文件

5.7 Diagnostics诊断

Diagnostics诊断选项卡,用于规定诊断信息的分类和显示

编译过程中可能产生三种错误诊断信息:remark(注意)、waining(警告)和error(错误)

1.remark是一种次要的诊断信息,表明按源程序结构生成的代码可能出现不正常。

2.warning表示源程序中存在错误,但编译过程不会停止。

3.error表示源程序中存在违反C/C++语言规则的现象,将导致无法生成目标代码。error信息不能被禁止,也不能重新分类。

1.Enable remarks:使能注意信息

勾选则允许编译器产生remark注意诊断信息。

2.Suppress these diagnostics:禁止显示这些(指定)诊断信息

比如:我们希望禁止显示(输出)Pa091和Pe001这两类信息,可以在此写入【Pa091, Pe001】。

3.Treat these as remarks:将这些(指定)信息作为注意信息显示

比如:我们希望将Pe177这类警告信息作为注意信息显示,只需要在此输入Pe177即可。

4.Treat these as warnings:将这些(指定)信息作为警告信息显示

与上面第3点同理。

5.Treat these as errors:将这些(指定)信息作为错误信息显示

与上面第3点同理。

6.Treat all warnings as errors:将所有警告作为错误处理(并显示)

5.8 MISRA C标准

MISRA-C:1998和MISRA-C:2004年的选项用于编译器和链接器。

General Options普通选项C/C++ Compiler编译器中的MISRA C选项配置相关联,本文章不讲述,后续单独讲述关于MISRA C的内容。

5.9 Extra Options额外选项配置

这里就不贴图了,主要就是使用命令行对编译相关选项进行配置。具体命令后续抽空单独整理成相关文章。

六、Assembler汇编器

这一章节内容和上面C/C++编译器原理类似,只是这里是针对汇编。

6.1 Language语言

1.User symbols are case sensitive:用户符号区分大小写

2.Enable multibyte support:使能多字节的支持

3.Allow mnemonics in first column:允许在第一列中使用助记符

4.Allow directives in first column:允许在第一列中使用指令

5.Macro quote characters:宏引用字符选择

有四种字符可选择:
A.()
B.[]
C.{}
D.<>

6.2 Output编译输出

这里就不贴图了,和上面一章节C/C++的Output一样,Generate debug information:生成(输出)调试信息,如果需要调试汇编,此选项需勾选。

6.3 List列表

1.Output list file:输出列表文件

A.Do not include diagnostics:不包括诊断
B.Include cross-reference:包括交叉引用
C.List macro definitions:宏定义列表
D.Disable macro expansion:禁用宏扩展
E.List only assembled parts:只列出部分列表(除假条件汇编)
F.Truncate multiline data field:截断多行数据字段

6.4 Preprocessor预处理

1.Ignore standard include directories:忽略标准包含目录(路径)

2.Additional include directories:添加路径

3.Preinclude file:预包含文件

4.Defined symbols:预定义

5.Preprocessor output to file:预处理输出到文件

提示:这里选项和上面C/C++中预处理类似,只是这里针对的是汇编。

6.5 Diagnostics诊断

这里就不贴图了,本节Diagnostics诊断几乎与上一章节中Diagnostics诊断一样,只是这里针对的是汇编,详情请参看上一章节C/C++的Diagnostics诊断描述。

6.6 Extra Options额外选项配置

这里就不贴图了,本节Extra Options额外选项配置同样与上一章节一样。

七、Output Converter输出转换器

7.1 Output输出

1.Generate additional output:使能生成额外的输出(文件)

2.Output format:输出格式

A.Motorola
B.Intel-extended
C.Binary
D.Simple

3.Output file:输出文件

Override default:默认覆盖

八、说明

1.因IAR各种IDE针对的处理器差异较大,所以关于节点选项的配置差异也较大。本文讲述关于EWSTM8的许多节点选项可能在其他IDE中没有。

2.版权所有,禁止商用
3.该文档由作者「strongerHuang」原创发布,仅供个人学习使用,转载请公众号联系作者授权。
4.若觉得本文对你有帮助,打赏是对博主最好的感谢方式(微信支付,金额随意,心意到就行)!

九、最后

  为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该系列教程已更新于我的个人微信公众号「strongerHuang」,关注微信公众号回复【EWSTM8系列教程】即可查看。

  我除了整理该文章相关的内容之外,还在我的个人微信公众号「strongerHuang」分享更多嵌入式相关的精彩内容, 如果不想错过,可以关注我的个人微信公众号。

你可能感兴趣的文章
剑指offer 2.重建二叉树
查看>>
剑指offer 3.二叉树中和为某一值的路径
查看>>
剑指offer 4.替换空格
查看>>
剑指offer 5.从尾到头打印链表
查看>>
剑指offer 6.用两个栈实现队列
查看>>
剑指offer 7.旋转数组的最小数字
查看>>
剑指offer 8-11.斐波那契数列 跳台阶 变态跳台阶 矩形覆盖
查看>>
剑指offer 12.二进制中1的个数
查看>>
剑指offer 13.数值的整数次方
查看>>
剑指offer 14.调整数组顺序使奇数位于偶数前面
查看>>
剑指offer 15.链表中倒数第k个节点
查看>>
剑指offer 16.反转链表
查看>>
剑指offer 17.合并两个排好序的链表
查看>>
剑指offer 18.树的子结构
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
剑指offer 25.二叉树中和为某一值的路径
查看>>
剑指offer 26. 数组中出现次数超过一半的数字
查看>>