查看原文
其他

EWSTM8系列教程07_工程节点选项配置(二)

strongerHuang 嵌入式专栏 2021-01-31

顶公众号,不错过每一条消息!


    本教程由作者strongerHuang于2018年08月发布。

版权所有:禁止商用

申明:该文档仅供个人学习使用,转载请公众号联系作者授权。


1写在前面

上一篇文章《EWSTM8系列教程06_工程节点选项配置(一)》讲述了节点选项中前五项(Target目标、Static Analysis静态分析、C/C++ Compiler编译器、Assembler汇编器、Output Converter输出转换器)的内容。


本文讲述剩余的几项内容:Custom build 自定义、Build Actions 执行动作、Linker 链接器、Debugger 调试器、ST-LINK 工具


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


2

Custom build自定义

2.1 Custom Tool Configuration自定义工具配置

1.Filename extensions:文件扩展名

如:extension.lex


2.Command line:命令行

命令格式为:flex $FILE_PATH$ -o$FILE_BNAME$.c


3.Output file:输出文件

格式:

$FILE_BPATH$.c

$FILE_BPATH$.h


4.Additional input files:额外的输入文件

比如:$TOOLKIT_DIR$\inc\stdio.h


5.Run this tool before all other tools:在运行其他工具之前运行这个工具


以上5个选项内容其实是协同完成一个功能,比如:使用工具(命令)将一个输入文件,转化并输出。


3

Build Actions执行动作

3.1 Build Actions Configuration执行动作配置

1.Pre-build command line:在“Build”之前执行命令行

如:在编译之前拷贝一个文件,或者修改一个文件内容等。


2.Post-build command line :在“Build”之后执行命令行

如:在编译完成之后,拷贝hex,或者bin文件,或在bin文件末尾添加校验等。


4

Linker链接器

4.1 Config配置

1.Linker configuration file:链接器配置文件

根据项目设置自动选择默认链接器配置文件。如果要覆盖默认文件,勾选“Override default”即可。


2.Configuration file symbol definitions:配置文件的符号定义

定义要在配置文件中使用的常量配置符号。这种符号的效果与使用链接器配置文件中的define symbol指令定义的符号相同。


4.2 Library库

1.Automatic runtime library selection:自动运行时库选择

使链接器根据您的项目设置自动选择适当的库。


2.Include C-SPY debugging support:包括C-SPY调试支持

包含用于调试应用程序和调试器本身之间通信的调试库。


3.Buffered write:写缓冲

在程序执行期间缓冲终端输出,而不是立即将每个新字符打印到C-SPY终端I/O窗口。当您使用通信缓慢的调试器系统时,此选项非常有用。


4.Additional libraries:附加库

指定您希望链接器在链接过程中包含的其他库。每行只能指定一个库,并且必须指定到库的完整路径。

可以通过“Browse按钮”来添加(类似新建工程添加路径)。


5.Override default program entry:覆盖默认的程序入口

默认情况下,程序条目是__iar_program_start。链接器确保包含了包含程序条目标签的模块,并且不丢弃包含该标签的部分。

Entry symbol:输入符号

Defined by application:由应用程序定义


4.3 Input输入

1.Keep symbols:保留符号


2.Raw binary image:原始二进制图像

链接图像纯二进制文件,指定参数:

File:文件

Symbol:符号

Section:部分区域

Align:对齐


4.4 Optimizations优化

这里就不贴图了,链接器优化只有一个勾选项:


1.Merge duplicate sections:合并重复的部分

使链接器仅保留等效只读部分的一个副本。注意,这可能会导致不同的函数或常量具有相同的地址,因此依赖于不同地址的应用程序不能正确地使用所选的选项。


4.5 Output输出

1.Output filename:输出文件名

设置链接器输出文件的名称。默认情况下,链接器将使用带有文件名扩展名的项目名称。


2.Include debug information in output:输出中包含调试信息

使链接器生成一个ELF输出文件,包括用于调试信息的DWARF。


4.6 List列表

1.Generate linker map file:生成链接器映射文件


2.Generate log file:生成日志文件

Automatic library selection:自动库选择

Initialization decisions:初始化决策

Module selections:模块选择

Redirected symbols:重定向符号

Section selections:段选择

Unused section fragments:未使用的部分片段


4.7 #define预定义

这里不贴图了,预定义一些符号。


例如:TESTVER=1

注意:一行一条,“=”两边不能有空格。


4.8 Diagnostics诊断

具体内容请参考《EWSTM8系列教程06》中“5.7 Diagnostics 诊断”的内容。


4.9 Checksum校验和

1.Fill unused code memory:填充未使用代码的内存

Fill pattern:填充形式

Start address:起始地址

End address:结束地址


2.Generate checksum:生成校验和

Checksum size:校验和尺寸(数据类型),可以是1、2、4字节。

Alignment:校验和对齐方式。

Algorithm:选择算法类型。

Result in full size:结果为全尺寸

Complement:补充

Bit order:位顺序

Reverse byte order within word:字节顺序颠倒

Checksum unit size:校验和单元尺寸(8、16、32Bit)


4.10 Extra Options额外选项配置

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


5

Debugger调试器

本章节主要讲述与调试下载相关的一些选项配置。


5.1 Setup设置

1.Driver:驱动器

选择调试仿真驱动器(工具)


2.Run to:运行到

复位之后运行到指定位置


3.Setup macros:设置宏

Use macro file:使用宏文件


4.Device description file:设备描述文件

根据项目设置自动选择默认设备描述文件。要覆盖默认文件,勾选“Override default”并指定一个替代文件。


5.2 Images镜像

可以使用三组

Download extra Images:下载外部镜像文件

Path:路径

Offset:偏移地址

Debug info only:是否只调试


5.3 Extra Options额外选项配置

这里不讲述,后续专门整理一篇命令行相关文章。


5.4 Plugins插件

1.Select plugins to load:选择要加载的插件

2.Description:插件描述

3.Location:插件位置

4.Originator:插件来源

5.Version:插件版本


6

ST-LINK工具

其它两个工具simulator和STice就不讲述了,讲一下常用的ST-LINK。


6.1 setup设置

1.Download:下载

默认情况下,当进入调试时,下载应用程序到RAM或flash中。下载选项允许您修改下载的行为。


Suppress:抑制

禁止下载代码,同时保留flash的当前内容。如果您想调试已经下载在目标内存中的应用程序,这个命令非常有用。


Erase:擦除

在下载代码之前删除内存(FLASH、EEPROM和选项字节)。


EraseVerify:擦除验证

验证下载代码的地址是否被擦除。


Use option bytes configuration file:使用选项字节配置文件

在下载前将在选项字节配置文件(obc)中定义的选项字节设置写入设备。


2.Communication options:通信选项配置

Use SWIM interface:使用SWIM接口

Communication log:通信日志


7

说明

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


2.该文档仅供个人学习使用,版权所有,禁止商用。


3.本教程收录于微信公众号【EmbeddedDevelop】,关注微信公众号回复【EWSTM8系列教程】即可查看全系列教程。


8最后

若觉得文章好,记得点赞、分享。扫描下面二维码、关注,在底部菜单中查看更多精彩内容!

长按识别图中二维码关注

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存