K60将应用程序改建成库.a

来源:互联网 发布:淘宝店铺做淘宝客封号 编辑:程序博客网 时间:2024/05/21 07:03

将原有的应用工程改为库工程:

删除setting文件夹。

1、右击工程名,options -->将General Options  

output中的输出选为Library。

Executables/libraries:

$PROJ_DIRS$/../../../lib/xxx.iar/debug/applib(注:生成目录)

Object:

Debug/Obj

List:

Debug/list

Target页(注:其他原有的库,选择的是Core:Cortex-M4,Little,FPU:VFPv4)浮点数协处理器

Device:选择使用的芯片型号

FPU:None

Library Configuration

Library:None

选择:Semihosted\Via semihosting

Library Options 空白

MISRA-C:2004

选择1.1~1.4/2.1~2.3

MISRA-C:1998

选择1、5~8;

2、C/C++ Compiler【转载】每个编译器选项卡的右上角都有一个FactorySettings按钮,单击该按钮将自动设置默认选项。

Language 1

Auto (extension-base

Standard with IAR extension

C99   C++ inline semant:

C++ 

with exceptions

with RTTI

Destroy static object

Language 2

char is Unsigned

Strict conforman

Code

Optimizations

None

Output

Generate debug information   

.text

List

Assembler mnemonics 带钩,灰化

Preprocessor

Additional include directories:(one per line)

$PROJ_DIR$/..

$PROJ_DIR$/../../bsp(头文件所在文件夹)

$PROJ_DIR$/../../../lib/XXX.iar/debug/usb(.a库)

$PROJ_DIR$/../../../lib/XXX.iar/debug/rtcs

Defined symbols:

_DEBUG=1

Diagnostics

Suppress these diagnostics:【转载】用于设定禁止输出诊断信息的标签记号,例如希望禁止waining信 息Pe117和Pe177,直接在文本框内输入“Pe117,Pe177”即可

Pa082,Pe186,Pe177,Pe550,Pe174

Pa082 : undefined behavior: the order of volatile accesses is undefined in this statement•

Pe186 : pointless comparison of unsigned integer with zero•

Pe177 : variable ”[name]” was declared but never referenced•

Pe550 : variable ”[name]” was set but never used•
Pe174 : expression has no effect.

MISRA-C:2004

选择1.1~1.4/2.1~2.3

MISRA-C:1998

选择1、5~9;

Extra Options

3、Assembler

Language

User symbols are case sensitiv

Allow alternative register names,mnemonics and

Output

Gernerate debug informat

List 灰化勾选Include header/Include list/Macro expansions/80/8

Preprocessor(与之前一样)

Additional include directories:

$PROJ_DIR$/..
$PROJ_DIR$/../../../lib/xxx.iar/debug/bsp/Generated_Code
$PROJ_DIR$/../../../lib/xxx.iar/debug/bsp/Sources
$PROJ_DIR$/../../../lib/xxx.iar/debug
$PROJ_DIR$/../../../lib/xxx.iar/debug/bsp
$PROJ_DIR$/../../../lib/xxx.iar/debug/psp
$PROJ_DIR$/../../../lib/xxx.iar/debug/mfs
$PROJ_DIR$/../../../lib/xxx.iar/debug/rtcs
$PROJ_DIR$/../../../lib/xxx.iar/debug/shell
$PROJ_DIR$/../../../lib/xxx.iar/debug/usb

Defined symbols:

_DEBUG=1

Diagnostics

Disable

All warnings

Extra Options 空白

4、Custom Build空白

5、Build Actions

Post-build command line:

"$PROJ_DIR$/../build/bat/applib_twrk60f120m.bat""$PROJ_DIR$/../../..""$PROJ_DIR$/../../../lib/twrk60f120m.iar/debug/applib" iar

首先是bat文件目录,再是顶层目录(工程所在的文件夹上三层),最后是生成目录

6、Library Builder

Override default

$PROJ_DIR$/../../../lib/XXX.iar/debug/applib/applib.a(注:库文件生成目录);


新建应用程序工程:

General Options  Output:Executable

$PROJ_DIR$/Int Flash Debug(执行代码目录)

Int Flash Debug/obj(目标文件目录)

Int Flash Debug/list(列表文件目录)

Library Configuration

Library:Normal

选择:Semihosted\Via semihosting


【转载】IAR  C/C++编译器提供了DLIB库,支持ISO/ANSIC和C++以及IEEE754标准的浮点数。通过Library下拉列表框选择希望采用的运行库。选择None表示应用程序不链接运行库;选择Normal表示链接普通运行库,其中没有locale接口和Clocale,不支持文件描述符,printf and scanf不支持多字节操作,strtod不支持十六进制浮点数操作。选择Full表示链接完整运行库,其中包含locale接口,Clocale,支持文件描述符,printf and scanf支持多字节操作,strtod支持十六进制浮点数操作。

Library Options

Printf formatter FUll

Scanf formatter  FUll

C/C++ Compiler

language1

【转载】RequirePrototypes复选框用于强制编译器检查所有函数是否具有合适的原型。调用未声明过的函数、 定义未声明原型的公共函数、采用未包含原型的函数指针进行直接函数调用等都将导致编译出错。

Output Converter 

Output

Gernerate additonal output

binary

Override default:

生成的bin文件名

Linker

Config

Override default

.icf文件目录

Library

Automatic runtime librarys

$PROJ_DIR$/../lib/xxx.iar/debug/bsp/bsp.a

(所用到的.a文件)

Optimizations

Perform C++ Virtual Function Elimination

Advanced

Allow C++ exceptions

Output

cc.out(生成的map与out文件的名字

Include debug information in output

List

Generate linker map file

Debugger

Setup 

J-Link/J-Trace

Run to :main

Download

Verify download

Use flash loader 

Plugins

MQX/Code Coverage/Symbols

J-link/J-Trace

Setup

Normal 

Auto 1000KHZ

CPU clock 72.0MHZ


0 0
原创粉丝点击