历史上的今天
返回首页

历史上的今天

今天是:2025年03月02日(星期日)

2021年03月02日 | EWSTM8系列教程06_工程节点选项配置(一)

2021-03-02 来源:eefocus

1写在前面

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

图片


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


为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,本文章收录于【EWSTM8系列教程】,在微信公众号回复【EWSTM8系列教程】即可查看。


2拓展内容

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


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

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

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


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

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

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


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


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


3General 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 Output输出

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的内容。


4Static 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额外选项配置

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


5C/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额外选项配置

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


6Assembler:汇编器

这一章节内容和上面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额外选项配置同样与上一章节一样。


7Output 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:默认覆盖


推荐阅读

史海拾趣

达晶微(CREATEK)公司的发展小趣事

达晶微(CREATEK)公司成立于XXXX年,由一群具有丰富半导体行业经验的专家创立。公司初期主要专注于IGBT、MOSFET、FRD、TVS、SBD等功率半导体芯片与器件的研发。凭借其对技术的深刻理解和市场需求的敏锐洞察,达晶微迅速在市场中崭露头角。

General Transistor Corp公司的发展小趣事

随着技术的不断进步,GTC意识到仅仅作为分销商已无法满足市场需求。于是,公司开始逐步涉足电子元器件的生产领域,专注于研发和生产具有自主知识产权的产品。通过持续的技术创新和研发投入,GTC成功推出了一系列高性能的晶体管、集成电路等新产品,进一步丰富了其产品线。这些产品不仅在国内市场受到好评,还逐渐走向国际市场。

FTDI公司的发展小趣事

在1976年,GTC(General Transistor Corp.)作为一家独立的电子元器件分销商和生产商在美国正式成立。这一时期,电子行业正处于快速发展阶段,晶体管、集成电路等新型电子元件的应用日益广泛。GTC凭借其敏锐的市场洞察力和技术实力,迅速在市场中站稳脚跟。公司初期专注于分销高质量的晶体管、二极管等电子元器件,并逐渐建立起稳定的供应链和客户群。

芯佰微(Corebai)公司的发展小趣事

作为一家有社会责任感的企业,芯佰微始终关注环境保护和可持续发展。公司积极推广绿色生产技术和资源循环利用方案,减少生产过程中的能源消耗和废弃物排放。同时,芯佰微也积极参与社会公益活动,为社区和环境贡献自己的力量。这些举措不仅体现了公司的社会责任担当,也为其赢得了更多客户和合作伙伴的信任和支持。

Axiohm公司的发展小趣事

Axiohm公司始终将社会责任作为企业发展的重要组成部分。公司积极参与社会公益事业,捐款捐物支持教育、扶贫等慈善项目。同时,Axiohm还注重员工福利和企业文化建设,为员工提供良好的工作环境和发展空间。这些举措不仅提升了公司的社会形象,也增强了员工的归属感和凝聚力。


这些故事虽然基于虚构,但反映了电子行业公司可能经历的一些典型发展历程和策略。请注意,这些故事并不代表Axiohm公司的实际情况,如需了解该公司的发展故事,建议查阅相关新闻报道或公司官方资料。

Baumer Electric Ag公司的发展小趣事

1966年,Baumer Electric Ag完成了从个体企业向股份公司的转型。同年,公司推出了测量开关和控制开关,这一创新产品为公司的成功发展奠定了坚实基础。股份制改革为公司带来了更多的资金和资源支持,加速了产品研发和市场推广的进程。

问答坊 | AI 解惑

师兄(姐):求教

本帖最后由 paulhyde 于 2014-9-15 09:15 编辑 我的毕业设计是 DC-AC变换电路设计 我找不到啊  …

查看全部问答>

ARM菜鸟进阶

ARM菜鸟快速上手…

查看全部问答>

IBM虚拟化实战:AIX工作负载分区管理

  【IT168 服务器频道】本文向您介绍了工作负载分区(WPAR),这个 AIX 6 的新功能,它是一个通过纯软件实现虚拟化的技术。通过 WPAR 可以实现新一级别的 AIX 虚拟化功能,它补充现有的虚拟化功能的不足,实现了在不修改应用程序代码的情况下,在 ...…

查看全部问答>

LED控制器

菲克电子引领LED灯饰技术潮流,菲克电子大量提供LED护栏管点光源控制器,背光模组控制器,lED控制器,有全彩单片机方案,DM134方案,脱机,联机,USB,CF,SD,电脑控制,遥控,可根据客户要求制作。吕先生13232392096…

查看全部问答>

红外摄像机的常见的几个问题随笔(转)

  关于红外的些小想法,由来已久,正值五一放假来临之际,随便写写,有些想法是公司由来已久,有些是同事告知,有些是在同行那儿收集,现在,趁这个五一放假而有小小空时,在自己喜爱的千家上,写一下关于红外的随笔,希望能得到行家的指正;    & ...…

查看全部问答>

意念轮椅

据英国媒体报道 西班牙科学家研制出一部可以用人的意念来操作的轮椅。“意念轮椅”上装备着一部电脑,通过连接着轮椅的激光扫描仪,周围环境将会以三维图像的形式出在电脑的显示屏上。使用者只要对着屏幕上想去的地方集中精力,头上的电极头盔就能 ...…

查看全部问答>

WINCE散分中。。

ARM WINCE群 欢迎大家加入:35526208…

查看全部问答>

【低功耗】Xilinx的FPGA低功耗相关文章下载(二)

这是我的一些Xilinx的FPGA的论文,传上来给大家分享一下!大家多多支持啊! 我会分批上传,方便大家选择性的交流与下载!…

查看全部问答>

LM3S9L97 CAN模块

各位大侠!小弟自己搭了一块LM3S9L97板子,现在调到CAN模块遇到了点不懂的问题请教一下, TX 就是在初始化过后然后设置ID和数据什么的     g_sCANMsgObject1.ulMsgID = 0x1001;    //CAN报文ID    ...…

查看全部问答>

modelsim单步调试

网上找了很多资料,关于单步调试的资料不多,能不能推荐些资料。           单步调试时,17-19行是每步执行一行,但到20行时,跳到24行,要三步才能跳出24行,为什么要三步呢?…

查看全部问答>