IAR新建工程

2023-05-16

下载库函数

本文介绍基于 IAR+官方标准固件库,来新建 STM8S003F
工程,STM8S 的标准固件库可以到 ST 的官方网站中找到并下载:ST官网
1.在搜索栏上搜索 STM8S003F ,点击工具与软件
工具与软件
2.在工具与软件栏中找到:STM8S/A标准外设库,点击下载(en.stsw-stm8069_v2.3.1.zip):
标准固件库下载
3.把下载的标准固件库解压并打开,可以看到里面有如下内容:
文件目录

建立工程模板

上图中的LibrariesProject文件夹中,有部分内容是新建工程所需要的,在建立工程之前,先选择一个路径,新建一个 Template 文件夹(作为以后新建工程的模板),并在文件夹中分别新建以下五个文件夹:

  • APP:用于存放用户程序,简单的应用这个文件夹一般空在那里;
  • Driver:用于存放工程文件;从STM8 标准固件库以下路径:..\STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Template\,拷贝main.cstm8s_conf.hstm8s_it.cstm8s_it.h四个文件到我们建好的User文件夹。
  • Lib:用于存放STM8标准固件库文件:从前面下载的STM8标准固件库里找到 以下路径:…\STM8S_StdPeriph_Lib\Libraries\STM8S_StdPeriph_Driver\,然 后将文件夹下inc和src两个文件拷贝到我们建立好的文件夹Lib下
  • Readme:用于存放说明文档,文件夹下可建立 .doc 文件或 .txt 文件,如readme.txt, 记录开发进度或技术说明;
  • User:用于存放自己编写的驱动文件;
    模板文件夹

IAR工程建立及属性设置

新建workplace和project

1.打开IAR,新建一个工作空间(即workspace,这步有时候可以跳过,因为启动IAR时已经有一个workspace),点击 ProjectCheat New Project...Empty projectOK→然后弹出保存窗口,输入你要建立的工程名,如STM8S_IR,选择保存文件夹,将工程保存在我们第二步创建的文件夹的User文件夹下如..\STM8_LED\User\,然后点击保存。

2.出现以下一个空的工程:
在这里插入图片描述

Add Group

用鼠标选中该工程,点击右键出现右键菜单,依次点击 AddAdd Group... 创建分组如下:
Add group
注:如果项目计划里有用户应用程序,则还需添加 App 分组;如果有用到自己编写的驱动文件,则需要添加 Driver 分组;

Add Files

在上面三个 Group 中分别 Add Files...,添加如下:

  • Lib:添加stm8s_gpio.cstm8s.h文件(该文件路径为..\STM8_IR\Lib\src\,这里其实可以不用加.h文件,但由于后面有修改到,所以加了;添加之后会自动产生一个 Output 组)
  • Readme:添加 readme.txt 文件(该文件路径为..\STM8_IR\Readme\
  • User:添加 main.c 文件(该文件路径为..\STM8_IR\User\

头文件编译路径设置

这里只添加了 .c 文件,而不用添加相关.h文件的原因是,我设置了头文件的包含路径 ,设置如下:工程名右键→Options...C/C++ compilerPreprocessor
设置头文件包含路径
路径"$PROJ_DIR$\..\Lib\inc"是相对路径,"$PROJ_DIR$"是你在常见new project的时候所选择的路径,换句话说也就是 .ewp 的所存放的路径,..\ 指的是当前目录的上一个目录,当然,如果你的.c文件是和.h文件是在同一个目录下的话,可以不用设置该路径。

芯片型号设置

接下来还需要对工程属性进行设置:右键点击工程 STM8_IR,在弹出来的菜单里点击 Options...,在弹出的窗口<Options for mode “STM8_LED”>的 General Options 标签页的 Target 标签里的 Device 栏选择芯片型号,我用的是 stm8s003F3,根据实际芯片选择即可。
设置芯片型号

代码优化选项

工程的进一步设置,首先是 C/C++ Compiler 标签的 Optimizations 标签页,Level 框中勾选 Medium ,这是选择了中等的代码优化选项
在这里插入图片描述

烧录文件格式设置

然后是 Output Converter 标签页,设置串口下载文件格式,设置如下:
output文件设置
Linker 中的 Output 中的 output filename 不需要进行修改,保持xxx.out文件格式就行了,不需要改成.hex文件,不然编出来的hex文件放到 stvp 中烧录会出现not intel hex format的报错提示(而且改出来之后的hex文件比较大,跟原来的out文件差不多大小)
在这里插入图片描述

烧录工具设置

Debug 标签的 Setup 标签页,在 Driver 栏选择 ST-LINK 。注:这项设置非常重要,我们最常用的就是 ST-LINK 下载和调试功能:
ST-Link设置

对头文件"stm8s.h"修改

最后一个,打开 stm8s.h 文件,做一个小的修改,即把你使用芯片的对应的代码从注释状态解放出来(从官网下载来的库一开始都是只读RO模式,要改成可修改模式),举例如下:
打开相关芯片
这个操作其实等同于以下操作(两者选其一就行了,不然编译时会Warning):
在这里插入图片描述

保存工程

点击Save All,将一个 .eww 文件保存到 User 目录下,下次要打开该工程直接点击此文件就可以了

IAR使用过程中遇到的问题

包含错误的路径

原因是我对整个工程目录进行了移动,移动后,需要点击ProjectClean,这样才不会再弹出包含错误路径的窗口
在这里插入图片描述

no definition for xxx

原因是没引进相关的 .c 文件,需要在Group组中的添加 stm8s_gpio.h 就能解决这个问题了
在这里插入图片描述

duplicate definitions for xxx

原因是重复定义了,比如下面报错例子:
在这里插入图片描述
具体原因是:delay.c中的中断服务函数、remote.c中的中断服务与stm8s_it.c中的中断服务函数重复定义了;所以要把stm8s_it.c给remove掉

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IAR新建工程 的相关文章

  • GD32F205在IAR上移植FreeRTOS

    目录 简述 xff1a 第一步 xff1a 准备最简工程与系统第二步 xff1a 拷贝源码第三步 xff1a 编译器IAR配置第四步 xff1a 工程代码修改第五步 xff1a 编译工程 简述 xff1a 1 主芯片 xff1a GD32F
  • IAR for ARM 无法烧写

    一直用的IDE都是Keil xff0c 最近需要用到的一款芯片只有IAR这一种环境可以从Demo里直接用 xff0c 所以用到了IAR xff0c 但发现自己装好了IAR xff08 版本8 32 1 xff09 并破解后 xff0c 编绎
  • IAR下载算法制作

    IAR下载算法制作 作者 Lucas 时间 2020 12 06 17 06 18 摘要 本文档主要介绍如何在IAR环境下制作QSPI下载算法 本文使用到的硬件 软件如下 编译器 xff1a IAR 8 32 单片机 xff1a STM32
  • IAR新建工程

    下载库函数 本文介绍基于 IAR 43 官方标准固件库 xff0c 来新建 STM8S003F 工程 xff0c STM8S 的标准固件库可以到 ST 的官方网站中找到并下载 xff1a ST官网 1 在搜索栏上搜索 STM8S003F x
  • 点亮LED灯及IAR调试

    点亮LED灯 一开始想先通过简单的点亮一个灯的程序来试一下MCU xff0c 硬件上的原理图如下 xff1a 从这里看出PB4 PB5 PC3 PC4 PC5 PC7都能用 xff0c 还没接外设 xff0c 一开始我选择了 PB5 去外接
  • ARM 之七 主流编译器(armcc、iar、gcc for arm)详细介绍

    必备 在讲解各编译器之前 xff0c 必须先了解一下以下文件 这些文件在编译器目录下或者编译生成目标平台的可执行程序时经常见到 此外 xff0c 还需要注意区分 Windows 平台 和 Linux 平台的文件 o 文件 xff1a 指的是
  • IAR 中如何调用EmEditor

    IAR 中如何调用EmEditor 文本编辑器我一直都用EmEditor Emeditor是一款很优秀的纯文本编辑器 xff0c 它对中日韩等亚洲字符集支持的很好 xff0c 不仅有语法高亮显示功能 xff0c 搜索替换功能也是近乎可爱的强
  • iar如何生成hex文件

    生成方法如下 1 工具需求 1 iar平台 2 第一种方法 首先在工程选项options里面 选中output converter选项 接着勾中Generate additional output选项 1 然后在Output format
  • 【STM32】STM32CUBEMX + ADC(单通道,双通道DMA)

    STM32CUBEMX ADC 单通道 双通道DMA 案例应用 使用ADC采集电压 单通道 单通道 DMA 双通道 DMA 并利用串口打印采集转换后的电压值 1 工具 IAR STM32CUBEMX 开发板STM32F411VET6 预备知
  • iar中 让代码在sram中运行

    环境 iar 8 40 1 MCU mk64 1 关键字 ramfunc iar中可以利用关键字 ramfunc将函数放在ram中 带 ramfunc的函数调用不带 ramfunc的函数会出现警告 同时cpu 执行速度会变慢 ramfunc
  • IAR 编译优化 #pragma optimize

    在IAR工具菜单栏中 点击 help gt Serach 搜索optimize 说明 单独指定的优化等级优先级高于编译器统一指定的优化 1 格式 pragma optimize goal level vectorize disable Pa
  • MSP432学习笔记:IAR的环境配置(官方demo程序的测试)

    近来入手一块MSP432 折腾了一天 终于把官方demo程序导入IAR 可以愉快的写代码了 以下是我个人的解决办法 首先 如果要使用IAR对TI的单片机进行开发 首先要下载对应的单片机型号的MSPWARE 本人目前使用的是TI的MSP432
  • Fatal Error[Cp001]: Copy protection check, No valid license found for this product [24]

    解决方法 1 卸载IAR 2 以管理员身份打开IAR安装包 3 以管理员身份打开IAR注册机 4 正常安装即可 5 安装完成后以管理员身份打开IAR 编译程序就会正常
  • 【STM32CUBE+IAR+IAP升级】

    STM32CUBE IAR IAP升级 案例应用 利用IAR 串口调试助手对STM32F411VET6进行简单的IAP实现 代码分为两部分 BootLoader APP翻转LED 1 工具 IAR STM32CUBEMX 串口调试助手 IA
  • IAR指定FLASH地址定义常量

    需求 IAP中 需要在HEX文件里增加版本号 软件 IAR8 3 notepad IAR代码格式 root前面是两个下划线 注意不要再 h文件里定义 防止多次编译 root const char HardwareDate 0x807F900
  • 使用一种编译器创建的静态 C 库是否与另一种编译器兼容?

    就我而言 我有一个使用代码源 gcc 构建的库 目标是arm cortex m4 然后我尝试将该库链接到使用 IAR 编译器编译的项目中 是否可以做到这一点 或者是否必须使用新工具重建库 哪些因素影响这个 静态库是几个目标文件的捆绑 这些目
  • 与(有符号)枚举值的按位运算

    我正在使用标志的枚举值 typedef enum a 0x00 b 0x01u the u has no influence as expected c 0x02u the u has no influence as expected en
  • 如何停止优化器丢弃未使用的变量?

    我想调试我的代码 但无法访问进程中的内部层 因为这会干扰与硬件的通信 在监视列表会干扰基本读取访问的情况下执行易失性操作 因此 我正在测试接口的返回值 但 IAR 编译器甚至会优化未使用的易失性变量 和这样的声明 i object foo
  • 如何在 IAR EWARM 5.4 中抑制警告(从错误转换)

    我有一个用于日志记录的宏 它接受可变数量的参数 该宏将由 GCC 在非嵌入式上下文中处理 并扩展为有效的 C 代码 尽管如此 无论我在何处调用宏 数千个位置 IAR EWARM 都会给出错误 Pe054 宏调用中的参数太少 EWARM 确实
  • 有人为 MSP430 的 IAR Embedded Workbench 实现了 __getzone() 吗?

    我必须在我的应用程序中处理一些时间转换 我想尽可能坚持使用标准库函数 现在我使用 time t 结构作为我的系统时间基准 但是 某些设备可以将时间同步到我的设备 该时间可能是也可能不是 UTC 此外 我的设备会将时间同步到另一台设备 并且该

随机推荐

  • 与JWT的不解之缘

    jar xff1a maven lt dependency gt lt groupId gt io jsonwebtoken lt groupId gt lt artifactId gt jjwt lt artifactId gt lt v
  • 连接服务器报错:Key exchange was not finished, connection is closed.

    解决方案 xff1a 在 etc ssh sshd config最后添加如下行内容解决问题 KexAlgorithms diffie hellman group1 sha1 diffie hellman group14 sha1 diffi
  • ros多线程管理

    单线程Spinning ros spin 是最简单的单线程自旋 它会一直调用直到结束 用法 ros spin ros spinOnce 另一个单线程spinning是ros spinOnce 它定期调用等待在那个点上的所有回调 用法 ros
  • (每日一读2019.10.24)一种基于通用优化方法的多传感器全局里程计估计框架(VINS-Fusion)

    参考博文 萌新学VINS Fusion 一 特征跟踪 萌新学VINS Fusion 二 特征跟踪 摘要 精确的状态估计是自主机器人的一个基本问题 为了实现局部精确和全局无漂移状态估计 通常将具有互补特性的多个传感器融合在一起 局部传感器 摄
  • (每日一读2019.10.25)一种基于通用优化方法的多传感器局部里程计估计框架(VINS-Fusion)

    摘要 为了提高机器人的鲁棒性和自主性 越来越多的传感器被安装在机器人上 我们已经看到了不同平台上安装的各种传感器套件 例如地面车辆上的立体摄像机 手机上带有IMU 惯性测量单元 的单目摄像机以及空中机器人上带有IMU的立体摄像机 虽然过去已
  • Gazebo模型下载以及配置--解决Gazebo黑屏原因

    前往ExBot ROS专区下载Gazebo模型 https bitbucket org osrf gazebo models downloads 下载后把文件放在 gazebo下的models文件夹中 span class token fu
  • 相机内外参数以及畸变参数

    关于大佬们的一些见解 下面是引用知乎的一段文字 xff1a 我们从单目视觉说起 平时我们都说要做视觉识别 测量云云 xff0c 然后我们就会去拍照 xff0c 再对数字图像做各种处理 xff0c 颜色处理 灰度化 滤波 边缘检测 霍夫变换
  • cmake学习4--自定义编译选项

    CMake 允许为项目增加编译选项 xff0c 从而可以根据用户的环境和需求选择最合适的编译方案 例如 xff0c 可以将 MathFunctions 库设为一个可选的库 xff0c 如果该选项为 ON xff0c 就使用该库定义的数学函数
  • ROS与C++学习1

    ROS与C 入门教程 构建工作空间 构建Catkin包 搭建开发环境 catkin make 编写简单发布节点和订阅节点 编写简单服务端和客户端 使用类方法作为回调函数 使用Timers类 编写高级的发布器和订阅器 Callbacks和Sp
  • IAR的UI界面优化

    显示行数 Tools Options 点击 Editor Tab size xff1a 设置Tab键占用多少个空格Indent size xff1a 应该是设置过行时缩进多少个空格Insert tab xff1a 选了之后在删除Tab时 x
  • MYNTEYE小觅双目摄像头深度版+VINS测试

    小觅双目深度版性能分析 今年 xff08 18年 xff09 11月9号小觅智能科技的深度版双目相机上市 xff0c 于是我在12月初花了2999软妹币购买了120度视角的相机 其中我比较感兴趣的是 双目 43 惯导 43 结构光 的多传感
  • QT+ROS开发

    Qt Creator for ROS 如果想在Qt上进行ros包的开发和GUI界面开发 建议采用下面的方法 http fumacrom com 1mipW Setup Qt Creator for ROS Setup Ubuntu to a
  • PX4、APM无人机仿真连接QGC地面站记录(udp连接、更改home点等)

    文章目录 一 PX41 gazebo 仿真2 连接地面站3 更改 Home点 二 APM 仿真1 执行仿真指令2 连接地面站3 更改 Home 点 本文仅记录仿真指令 xff0c 搭建安装不在此 一 PX4 首先给飞控源码和子目录权限 sp
  • LeetCode 解题笔记(一)总

    文章目录 一 常用技巧二 常用翻译三 题目x 其他9 回文数 2021 12 0911 盛最多水的容器 2022 01 0515 三数之和 2022 01 14 17 电话号码的字母组合 2022 01 1520 有效的括号 2021 12
  • LeetCode 解题笔记(二)数组篇

    文章目录 一 基础篇26 删除排序数组中的重复 2022 01 16122 买卖股票的最佳时机 II 2022 01 17189 轮转数组 2022 01 18217 存在重复元素 2022 01 19136 只出现一次的数字 2021 1
  • LeetCode 解题笔记(四)链表

    文章目录 一 总结二 题目237 删除链表中的节点 xff08 2022 03 10 xff09 19 删除链表的倒数第 N 个结点 xff08 2022 03 11 xff09 206 反转链表 xff08 2022 03 18 xff0
  • QT Quick QML 实例之 Popup 弹出界面

    QT Quick QML 实例之 Popup 弹出界面 一 演示二 实现过程1 居中弹出2 正下方弹出 所有的热爱都要不遗余力 xff0c 真正喜欢它便给它更高的优先级 xff0c 和更多的时间吧 xff01 GIT工程文件在这里 QmlL
  • QGC(GGroundControl) 系统核心架构图

    关于QGC地面站其它文章请点击这里 QGC地面站 UML 核心类图 xff1a xff08 点击图片放大看效果更好 xff09 核心系统分析图 xff1a xff08 点击图片放大看效果更好 xff09 工程结构 xff1a 整个 QGC
  • Qt 国际化翻译,函数外部字符串、Map 翻译(QT_TRANSLATE_NOOP)

    文章目录 1 Qt 的翻译流程2 利用 QT TRANSLATE NOOP 翻译 GitHub 源码 QmlLearningPro xff0c 选择子工程 xff1a TranslationsDemo pro QML 其它文章请点击这里 Q
  • IAR新建工程

    下载库函数 本文介绍基于 IAR 43 官方标准固件库 xff0c 来新建 STM8S003F 工程 xff0c STM8S 的标准固件库可以到 ST 的官方网站中找到并下载 xff1a ST官网 1 在搜索栏上搜索 STM8S003F x