将原有的应用工程改为库工程:
删除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
DiagnosticsDisable
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
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