IAR新建工程

       本教程适用于初次接触IAR的同学,通过介绍IAR如何新建工程,了解一些常用工程选项的作用。

1

创建工程文件夹

这里以新建一个LPC54606工程为例

  • 根据龙邱例程,创建工程文件夹(如果根据其他工程新建,可以打开对应工程,将使用到的文件复制到新建工程中)
    龙邱提供的LPC54606例程的文件结构如下

  • 将使用到的文件复制到对应文件夹创建一个IAR_Project文件夹,将CMSIS和Drivers文件夹复制到IAR_Project文件夹中。

2

新建工程

打开IAR,这里使用IAR8.2版本

3

添加文件分组

上面新建了一个空的工程,我们需要将使用的文件添加到工程里面(注意CMSIS的.h头文件这里没有添加,因为.h文件可以不添加进工程分组里面)。

  • 选中lpc54606工程 右键添加分组

  • 选中lpc54606分组文件夹 右键添加文件

  • 将龙邱工程中example文件夹下的mian.c 和include.h复制并添加到新工程

4

设置工程配置

  • 选择芯片

选择芯片后,如果芯片有硬件浮点单元会默认开启(注意需要单片机有硬件浮点单元,MK60DN就没有)

  • printf 和 scanf 都选择支持全功能格式

    (支持浮点数)

  • 添加头文件路径

我们已经将文件添加到工程中了,但是编译的时候,报错找不到对应头文件。每个人的习惯不一样,头文件存放位置也不一样,因此需要将所有头文件位置告诉编译器,让编译器知道去那个文件夹找头文件(如果自己新写了头文件,记得将自己的头文件路径添加进来)。注意使用相对路径,如果使用绝对路径,当工程位置移动时,就会找不到头文件。

  • 添加全局宏定义

将龙邱例程中的全局宏定义复制到新工程

DEBUG_DLIB_FILE_DESCRIPTORCPU_LPC54606CPU_LPC54606J512BD100=1PRINTF_FLOAT_ENABLE=1SCANF_FLOAT_ENABLE=1PRINTF_ADVANCED_ENABLE=1SCANF_ADVANCED_ENABLE=1

  • 生成debug调试信息

仿真调试时需要使用

  • 优化等级

优化等级是一个比较重要的配置,优化等级越高,生成的bin文件就越小,一般情况下代码的运行速度也会提高,但是在Debug调试的时候,由于优化,代码可能不会顺序执行,调试的时候可以将代码优化等级调到最低。

  • 屏蔽警告

官方fsl库在编译时存在一些警告信息,因此我们参考官方SDK将对应的警告号屏蔽即可。

  • 分散加载文件

不同单片机RAM和FLASH起始地址和大小不尽相同,而且还可能外扩DRAM和FLASH,因此IAR中使用一个脚本.icf文件来确定工程的分散加载信息。IAR有自带的分散加载文件,但是这里我们使用自己修改过的分散加载文件。注意使用相对路径,如果使用绝对路径,当工程位置移动时,就会找不到分散加载文件。

  • 电源管理lib库

NXP为了让用户更方便的使用电源低功耗,将相应的电源管理封装起来,做成lib库文件。

  • debug下载器配置

IAR并不知道你使用什么下载器,因此需要你告诉IAR你使用的什么下载器。

5

添加工程分组

经过上面的配置后,程序以及可以通过jlink烧录进单片机,但是有时候我们的Debug时,使用最低的优化等级。Debug完成后使用较高的优化等级,每次都有修改配置。可不可以生成两套配置?
IAR可以添加分组,使一个代码可以有多种不同的配置。

  • 删除一种配置分组

默认新建的工程都有两种配置 debug和release,上面我们配置了debug的配置,但是release还没有配置,将release删掉。

  • 添加一种配置分组

基于debug配置,生成新的release分组

6

总结

其实用户没必要新建工程,一些新手感觉例程里面文件过多,可能会影响单片机效率,影响文件可读性。

  • 关于效率问题,在编译链接环节,根据IAR优化等级会将不使用的函数、变量删除,并不会添加到最终的bin文件中,因此不会影响效率,也不会增大代码量。

  • 可读性,基于龙邱的例子工程,用户可以自行删减未使用到的文件,减少文件数量,增加代码可读性。

点击上方“龙邱科技”关注我们!

获取更多学习内容

5新建没有头文件_IAR新建工程相关推荐

  1. idea中 mybatis 的 mapper.xml 新建没有 头文件

    idea中 mybatis 的 mapper.xml 新建没有 头文件 解决步骤: 1.直接 settings 2.直接 选择 MybatisMapper 添加: <?xml version=& ...

  2. 5新建没有头文件_开垦绿茵版图迎来“真金白银”保障,新建足球场地可获财政补贴...

    本周二,国家发改委.体育总局.国务院足球改革发展部际联席会议办公室共同制定了<全国社会足球场地设施建设专项行动实施方案(试行)>. <方案>指出,对新建11人制标准足球场,每个 ...

  3. 能不能在头文件中定义全局变量?

    首先,这是一篇科普文,所以 比较杂,我尽量写清楚一些. 1.ANSI C标准是什么?GNU又是什么?ld是什么? ANSI C是C语言的标准规范,是国际标准化组织制定的国际标准. 虽然 ANSI C规 ...

  4. c语言求出伍位数,简介 模拟银行的钱数大写输出例如345叁肆伍方法/步骤 首先打开VC++ 文件》》》新建 创建一个C++空白文档 先声明头文件复制代码 代码...

    简介 模拟银行的钱数大写输出例如 345 叁肆伍 方法/步骤 首先打开VC++ 文件>>>新建 创建一个C++空白文档 先声明头文件 #include 声明变量 char *p[10 ...

  5. gsoap 学习 1-自己定义接口生成头文件

    接口头文件的格式在向导中没有看到明确的说明性的内容,但通过看开发包中示例程序中头文件定义和通过wsdl生成的头文件的内容,可以发现,头文件中都会出现以下几行信息  //gsoap ns service ...

  6. c++头文件被c语言调用需要注意什么_嵌入式C语言之模块化编程

    C语言中的模块化体现在两个方面: 1 函数. 函数是C语言的最小单位,每个函数均实现一个独立的功能,于是每个函数均可以当做是一个最小的功能模块.这样,C语言就实现了最基本的模块化. 2 文件. 在C语 ...

  7. keil5新建STM32工程文件--实践篇手把手教学(以STM32F103为例)

    目录 一.文件与文件夹创建 1.1 CMSIS文件夹创建 1.2 FWLIB文件夹创建 1.3 Project文件夹创建 1.4 startup文件夹创建 1.5 user文件夹创建 1.6 read ...

  8. KEIL新建STM32F030F工程文件

    前言 由于项目需要,需要使用STM32F030F4P6,本文从最基础的新建工程文件开始,记录一些主要步骤. 一.新建文件夹 首先新建一个文件夹,文件夹中可参考下图创建三个文件夹以存放不同的文件. 其中 ...

  9. gsoap 学习 1-由wsdl文件生成h头文件

    开始前先看一下用户向导吧 http://www.cs.fsu.edu/~engelen/soap.html 中左侧点击Documentation 英语水平确实有限,有些内容可能说的不准确,敬请参考向导 ...

最新文章

  1. 【基于libRTMP的流媒体直播之 AAC、H264 推送】
  2. javascript高级程序设计之基本概念
  3. 老问题,SQL保存图片。保存以后再读出来,发现stream的大小不一致。虽然老,但没搜到结果。...
  4. (简单)华为荣耀4A SCL-TL00的usb调试模式在哪里打开的方法
  5. python元类的使用_Python 元类使用讲解
  6. python中print的用法_Python中print函数简单使用总结
  7. 漫话:为什么你下载小电影的时候进度总是卡在99%就不动了?
  8. 防SQL注入代码(ASP版)
  9. Vue的基础认知二---vue的双向绑定/vue获取DOM节点
  10. python小说阅读器_用python实现自己的小说阅读器
  11. tortoise svn 请求的名称有效,但是找不到请求的类型的数据
  12. 简单粗暴地入门机器学习
  13. 斯坦福大学CS143编译原理课程笔记:2.编译器结构
  14. Redis的五种存储类型和其应用场景
  15. AX2012 常用表关系(客户地址,联系信息)
  16. 高德地图API总结--地图加载、权限,定位
  17. java数据清洗_数据清洗例子
  18. 基于GraphQL的数据网关实现
  19. Local time zone must be set-see zic manual page
  20. C++进程间通信 详解2

热门文章

  1. LeetCode_700.二叉搜索树中的搜索
  2. linux用户简单指令操作
  3. virtualbox - 2台虚拟机之间通过ssh互访
  4. 百度地图的实现,IIS6.0,.net4.0 无法使用POST和GET
  5. 直击面试现场:神级程序员仅100秒,60行代码写出俄罗斯方块,成为全公司焦点!...
  6. 竖直手风琴导航菜单栏
  7. java 中对对象的调用
  8. 从fread和mmap 谈读文件的性能
  9. APT***的那些事
  10. 遍历 List 之效率