
而通过使用库则可以解决这些问题,首先只需添加一次库文件,第二Rebuild的时候只编译我们自己写的源文件
创建库的过程(IAR中):
新建一个DLib工程,把stm32f10x_xxx.c这样的文件和对应头文件全部复制到工程文件夹下(不复制也可以),然后添加进去,还有core_cm3.c, misc.c, system_stm32f10x.c, 这些都添加进去.(注意:不要添加.h头文件,这和KEIL是不一样的,IAR里不用添加头文件,只需要源文件里#include就行了.)
.s启动文件则可以根据实际需要添加,当然你也可以每种型号都分别创建一个对应的库.然后在实际工程中根据不同的片子选择不同的库.
添加进去后,打开工程属性设置.
general option:
target属性框里选择芯片
output属性框里的Output file里选择Library(如果新建的工程是DLib的话,这里默认已经是了)
Library Configuration属性框里的Library选项选择None(这里注意哦)
C/C++ compile:
optimizations里可以选择优化等级.
Preprocessor里,additional include directories栏里添加包含文件的路径.如同一般工程一样把头文件的路径添加进去.
OK,设置如上.编译后,将会后成一个.a文件.
以上是Debug模式下生成的库文件,Release下的设置同上.两者间的不同的是Debug选项中默认输出调试信息,而Release中默认没有.同时时我们可以在Release中根据需要把优化等级调高一点.最后,Release模式下生成的库文件小一点.
和平时一样建一个工程,或者随便打开一个你自己的STM32工程.然后添加库,两种方法可以添加库:
1.可以直接像添加源文件一样,在工程中右键-add files,然后添加.a文件.
2.右键属性,在Linker选项中的Library选项卡中的additional libraries:中添加.而且可以在Debug属性中添加Debug模式产生的库,release中添加release模式生成的库.需要注意的是不能只添加路径,文件名也要写上. 比如:E:/IAR_LIB/Stm32/stm32_d.a
OK,这时你就可以把像stm32f10x_gpio.c这样的文件从工程中Remove了.
(使用库)和(不使用库手动添加stm32f10x_gpio.c)之间,在实际工程中,最终生成的可执行文件的大小是一样的.
最后,在实际工程中:
只需将stm32f10x_conf.h, stm32f10x_it.h, stm32f10x_it.c复制到工程文件夹,然后把stm32f10x_it.c添加进工程就行了(当然,前面已经说过,无论是在ARM工程,还是库工程中,IAR都不需要添加头文件,添加了反而会编译出错,只需要源文件中#include)
另外上述三文件最好不要创建成库,因为它们在不同的工程下都是不一样的,这个就不用我说了吧.:)
按照实验室老大的要求,入手STM8。对于我这样一个就用过51做点东西的人来说,STM8还是一款相当高级的8位机。个人感觉和AVR差不多吧。还是先看看它的特点吧!STM8是ST意法半导体针对工业应用和消费电子开发而推出的8位单片机。
每种MCU都有自身的优点与缺点,与其它8-bit MCU相比,STM8 8-bit MCU最大的特点是:
· 内核:
o 最高fcpu频率,可达24MHz,当fcpu≤16MHz时0等待的存储器访问
o 高级STM8内核,基于哈佛结构并带有3级流水线
o 扩展指令集
o 最高20 MIPS @ 24 MHz
· 时钟、复位和电源管理:
o 2.95V到5.5V工作电压
o 灵活的时钟控制,4个主时钟源
o 带有时钟监控的时钟安全保障系统
· 电源管理:
o 低功耗模式(等待、活跃停机、停机)
o 外设的时钟可单独关闭
o 永远打开的低功耗上电和掉电复位
· 通信接口:
o 高速1Mbit/s CAN 2.0B接口
o 带有同步时钟输出的UART — LIN主模式
o UART兼容LIN2.1协议,主/从模式和自动重新同步
o SPI接口最高到10Mbit/s
o I2C接口最高到400Kbit/s
· I/O端口:
o 带有高吸收电流输出的GPIO脚
o 非常强健的GPIO设计,对倒灌电流有非常强的承受能力
· 开发支持:
o 单线接口模块(SWIM)和调试模块(DM),可以方便地进行在线编程和非侵入式调试
· 性价比:
o 相对于现在众多的8位单片机,STM8的价格与性能比例是比较高。
这么多优点,虽然好多都不懂还是慢慢学吧。。首先建立开发平台:
用的是IAR FOR STM8,感觉还不错吧,编译器的效率很高。
IAR下载也很简单,直接上官网上有完全版和代码限制版的。。
从建立一个新的工程开始:
1.先创建一个workplace.选择File>New>Workplace
2.(创建一个新的工程,选择Project>Creat New Project,如果用的是IAR FOR STM8 就默认无需更改。保存并输入Project名字,在workplace窗口中显示如下
默认配置是Debug
3.在添加文件到工程之前,先保存Workplace。并输入保存的名字
Workplace的扩展名是eww。
4.添加文件到工程,先File>New>File,也可以直接使用快捷键新建一个文件。之后保存。
保存的时候可以新建一个C文件夹,以便区分工程中的其他文件,方便查找和再调用。
再将文件添加到工程中就可以开始了。
右击工程名>ADD>ADD FILES, 就可以添加文件。
首先添加头文件,配置寄存器方便写程序的时候调用。
注意:记得设置路径,这样IAR才能找到你的头文件。
打开工程Option设置,在C/++compiler ――――PreProcessor中加入你自己的路径
如
$PROJ_DIR$\H // 加入工程文件所在目录下的\H子目录
测试程序:
#include <iostm8s207sb.h>
void main()
{
while(1)
}
编译连接下:
用的是ST-LINK,下载前先设置下
没有错误,可以开始了
一、生成一个新项目要使用IAR进行STM32嵌入式系统开发,必须从建立一个项目(project)开始,下面以在E:\下建立一个名为Example的项目为例介绍。
1. 创建项目目录、复制公共文件
(1)在E盘下创建名为的Example文件夹,即项目根目录为E:\Example。
(2)在项目根目录下建立一个EWARMv5文件夹用于存放项目文件、工作空间文件和项目配置相关文件。
(3)解压标准外设驱动文件库(stm32f10x_stdperiph_lib_V3.1.2.zip),将其中的“Libraries”文件夹复制到Example目录下。
(4)复制标准外设驱动库目录Project\Template下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件到Example文件夹下。main.c可以不用复制,我们自己写。
复制标准外设驱动库目录Project\Template\EWARMv5下的stm32f10x_flash.icf、stm32f10x_flash_extsram.icf、stm32f10x_nor.icf和stm32f10x_ram.icf到Example\EWARMv5文件夹下。
复制好的目录如图1所示。
图1. Example文件夹下的文件
2. 创建新的工作空间
嵌入式系统开发大都是面向项目(Project)的,需要建立Project来管理项目开发。IAR EWRAM又是基于工作空间(Workspace)的集成开发环境,Project必须放在工作空间里面,所以我们首先应该建立工作空间。一个工作空间里面可以放多个项目。
开始?程序?IAR Systems?IAR Embedded Workbench,进入IDE环境。File ?New?Workspace。
这样工作空间就建好了,但是这个工作空间里面还没有项目,所以还不能保存,下面将在这个工作空间里面建立新项目。
3. 创建新项目
在上面第2步已经建立好的工作空间里创建新项目。
Project?Create New Project。d出“Create New Project”对话框,“Tool Chain”选择ARM,“Project Template”选择Empty project模板,这样所有的文件都由用户自己来写。点击OK,d出“另存为…”对话框,选择我们刚刚建好的Example目录下的EWARMv5文件夹下,然后输入工程名 ,这里我输入Template,然后点击保存。这样一个名为Template的IAR EWARM项目就建好了,下面我们添加一些文件,然后再修改一些参数,使得这个项目真正地能够使用。
4. 添加文件到项目
(1)文件分组
按说现在就可以往项目里面添加文件了,但是由于ARM系统开发涉及文件较多,类型繁杂,加上我们使用ST公司的标准固件库驱动文件,这样就要添加很多文件到项目里,随着项目的复杂程度加大,文件的数量是很多的。为了便于管理,我们将这些文件在项目里分组保存,IAR EWARM支持文件分组。
在IDE左侧的Workspace里面,我们在刚刚建立的Template项目上点右键,选择Add? Add Group…。在d出的对话框里面输入组名(Group Name),点OK即可。我们将添加如下几个组,如图2所示。
从图2可见,项目名字后面有个星号(*),这是说明项目或工作空间已经修
改,但是还没有保存,现在点File?Save All,这时d出对话框让我们保存工作空间。还记得工作空间吗?第2步我们新建的工作空间,但是当时没有保存,因为当时工作空间里面没有项目,不能保存。输入工作空间名Template,然后点保存,这时候项目后面的星号*消失。
注:工作空间扩展名.eww,项目扩展名
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)