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

飞思卡尔TWR开发板MQX RTOS实战:硬件配置、外设冲突与驱动调试全解析 在嵌入式系统开发中,实时操作系统(RTOS)与微控制器(MCU)的协同工作是实现复杂功能的基础。其核心原理在于通过任务调度、中断管理和资源分配,确保系统对事件的实时响应。对于使用飞思卡尔(NXP)TWR系列开发板搭配MQX RTOS的工程师而言,深入理解板级支持包(BSP)的配置逻辑和硬件设计细节,是释放平台潜力的关键。这不仅能提升系统稳定性,还能有效规避因引脚复用、时钟配置和存储驱动不匹配导致的开发瓶颈。本文聚焦于**TWR-K60**、**TWR-K65**等热门型号,针对以太网、CAN总线、SDRAM 阅读详情

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

删除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


Renesas Flash Programmer(RFP)使用方法介绍及认证ID配置 使用E1仿真器通过Renesas Flash Programmer(RFP)对RH850F1L进行Data Flash 或 Code Flash擦除/写入。 版权声明 本博文系广州欧科曼科技有限公司所有,转载请注明出处。 广州欧科曼科技有限公司致力于瑞萨MCU及周边相关产品开发设计。 email:1256153255@qq.com website for get 瑞萨RH850开发板 and 瑞萨E1仿真器,please visit the following: https://shop383056823. 阅读详情

相关推荐

智能车K60学习笔记

文章目录K60学习笔记(开个坑,慢慢学)基础知识一系列定义或名称简单位运算中断(Interrupt)8051 定时器中断Kinetis K60介绍K60模块PORT模块GPIO模块 K60学习笔记(开个坑,慢慢学) 基础知识 一系列定义或名称 MCU微控制单元(Microcontroller Unit) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是...

ACfighter的博客 3943

编译器或者链接器会优化掉虚表吗

引子前一段时间和实验室的同学讨论虚表和RTTI相关的问题,由于我是编译器论调的拥泵,所以我信誓旦旦的说如果编译器发现虚表或者虚函数无用的话,会自动优化掉这些虚表信息。但是查过资料才发现,其实编译器并不会这么做!ODR原则在C++中有一个很重要的概念就是ODR原则,总的来说,ODR分为3个方面: 一个模板,类型,函数或者”对象”可以在多个编译单元中各存在一份拷贝。其中的一些可以有任意数量的声明。一个定

电影旅行敲代码 2092

K60-串口通信

目录0x00 前言0x01 基本概念1.1 什么是串口通信?二、使用步骤1.引入库2.读入数据总结 0x00 前言 本文试图从易于理解的角度讲解k60单片机的串口通信,从相关寄存器的简单配置到完成一个字节的收发,再到多个字节的应用。由于使用的单片机是K60,所以是"基于K60",但是串口通信的协议和基本概念都是的通用的。 因为是简单讲解,所以不会特别全面与深入。(主要是自己太菜了) 参考资料 K60-UART串口通信讲解 0x01 基本概念 1.1 什么是串口通信? 二、使用步骤 1.引入库 代码如

Shieffer的博客 2091

c语言虚函数的作用,C++中的虚函数(virtual function)_c语言

1.简介虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout << "A::foo() is called" << endl;}};class B: public A{public:virtual void foo()...

weixin_30118919的博客 1131

K60系列学习(一)

K60中系列的MCU中存在FlexMemory和程序内存的差别,两者之间的对表如下表所示: 另外K60系列的MCU的命名规则如下: 各字段的编号格式为: Q  K##  A  M  FFF  R  T  PP  CC  N Q:  M代表完全合格产品,P表示测试样品 K##:代表Kinetis系列 A:关键属性,D表示Cortex-M4带DSP,F表示Cortex-M4带DSP和F

4870

k60-脉冲采集

K60,脉冲采集,嵌入式

假装有标题 5730

EWSTM8系列教程06_工程节点选项配置(一)

IAR最新全套教程: 1.EWSTM8系列教程01_IAR介绍、下载、安装和注册 2.EWSTM8系列教程02_新建基础软件工程 3.EWSTM8系列教程03_主窗口、工具栏的概述 4.EWSTM8系列教程04_菜单概述(一) 5.EWSTM8系列教程05_菜单概述(二) 6.EWSTM8系列教程06_工程节点选项配置(一) 7.EWSTM8系列教程07_工程节点选项配置(二) 8...

strongerHuang 3543

用Makefile取代CodeWarrior IDE编译K60 的应用程序

 all:K60MCU.bin CC=arm-none-eabi-gcc LD=arm-none-eabi-gcc VPATH=../sources/ vpath %.c ../Sources/ #################################################PATH Variable LIB_PATH_WIN=C:\work\lib\K60MC

ambercctv的博客 1965

恩智浦飞思卡尔K60官方库

恩智浦飞思卡尔K60官方库

K60 GPIO外部中断

K60几乎可以把任意一个GPIO用作外部中断 要用外部中断,就要配置好寄存器,写好中断函数 我这里用A口的19号引脚作为按键外部中断检测,A口的10号引脚做LED输出 void init_gpio() {   gpio_init_struct.GPIO_PTx = PTA;      //PORTA   gpio_init_struct.GPIO_Pins = GPIO_Pin19;    

weixin_39162701的博客 2102

K60的ADC总结

16位逐次逼近模数转换器ADC的特点:  线性连续的近似值算法可以达到16位的分辨率。  有4个双工和24个单工外部类比输入。  输出模式:有16位、13位、11位、9位不同的双工模式,或者16位、12位、10位、8位的单工模式。  输出应用双工的16位补充信号扩展成不同的模式。  输出在右对齐未标记转换成单工模式。  单工或者继续转换模式(单工之后自动转换成空闲模式)。

吴建梅的专栏 1万+

飞思卡尔K60固件库v2.4(CodeWarrior)

飞思卡尔K60固件库v2.4版本(CodeWarrior版)

Freescale k60的GPIO的操作

电子创新网对于GPIO的操作有这样的一段,通过分析这句程序来确定对于K60的GPIO的操作。 GPIOA_PDOR&=~GPIO_PDOR_PDO(GPIO_PIN(10));    //PTA10对应D12

4518

k60单片机_K60芯片解锁说明

K60芯片解锁说明芯片锁住了怎么办?这里汇总一些新手必读说明1 使用龙邱jlink下载器,下载器接线问题,龙邱核心板的下载接口丝印层都有一个白色凸口,对应龙邱下载器排线的凸口。⑴ 每个工程里面都包涵两种配置MK60DN 和MK60FX,请选好自己单片机的对应配置,不然会下载失败并且导致芯片上锁。⑵芯片锁住会显示如下错误信息⑶ 安装 IAR 的时候,一般会自动安装 Jli...

weixin_39834281的博客 2672

K60原版库文件

来自恩智浦的官方库,可以用来快速的开发 K60,适用于IAR

飞思卡尔K60 底层驱动 库

K60的底层库函数,更快更直接的使用K60各模块

山外K60程序移植

一、工程建立 1.新建文件夹 将山外工程文件夹的前四个直接拖出来,至于Prj文件夹,只保留其中的config files文件夹,其他全删掉。 PS:① config files文件夹是Linker配置文件,设置了Kinetis芯片是从ROM启动,还是从RAM启动,堆栈的大小配置等,这些文件虽然飞思卡尔官方也有,但是很不规范,上外哥改过这些文件了,待会设置直接设置使用这些文件链接就行。 ② 最好先使...

zy_like_study的博客 1947

IAR使用教程(k60)

我看着这个学会用IAR,里讲得很详细,尤其对于k60

上一篇: 嵌入式实时操作系统-VxWorks(基础)
下一篇: vxworks任务间通信
abcflyer
博客等级 码龄15年 49粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值