STM8S开发环境编译方法
STM8S_汇编
不知是心血来潮,还是其它因素,突然又想起玩汇编语言了。
这几年也没少跟单片机打交道,包括51系列,430系列,ARM系列,但都是用C语言来开发。
不过由于使用C语言,实际上对这些CPU的了解还是不够深刻,当然除了51之外,因为那是我多年前曾经用汇编开发过的芯片。
尽管当今C语言已经在嵌入式产品的开发过程中成为主流,但我个人依然认为,要想真正了解CPU的特点,还得用汇编语言。
不知道这种观点是对还是错,也许是因为自己从硬件做起,写过机器码,用汇编语言做过优化,因此对汇编语音有一种特殊的偏爱。
51系列的芯片用多了,感觉有时写起程序来不太方便,因此总想寻找一些其它的8位单片机玩玩,正好手头有一个ST的三合一开发板,那是09年参加ST研讨会上买的,一直躺在那里,与其躺在那里,不如拿出来玩玩。
这几年,ST在国内推广STM32,力度不小,不过我一直没有用过,只是初步地看看资料。
原因在于在32位单片机方面,我一直在用Luminary公司的LM3S1138,感觉不错,一直都很顺利。
09年ST举办的研讨会上,ST除了介绍STM32外,也介绍了STM8,当时听了以后,觉得还行。
尤其是会上的低功耗演示给我留下了很深刻的印象。
基于这些,我决定好好地玩一下STM8芯片,并将玩的结果拿出来与大家共享。
STM8与汇编语言(2)第一次打开STM8的手册时发现,CPU中的寄存器只有6个,即A、X、Y、SP、PC 和CC。
这几个寄存器,看上去特象早年苹果机使用的微处理器6502。
在眼下都是多寄存器的RISC潮流下,不知ST推出的这种CPU架构有什么意图?这样的芯片能否与Microchip 或者Atmel的RISC结构的MCU竞争呢?在此我无意做评论,我只想了解这颗芯片。
通过仔细研究,我发现由于STM8采用了32位宽度的程序存储器结构,使得大部分的指令都能在一个周期内取出,并且采用了哈佛结构和流水线,相当多的指令也都是单周期完成的。
这样的话,虽然CPU是CISC架构的,但也基本上达到了单周期指令的效果,就像手册上说的,CPU的性能达到了20MISP◎24MHZ。
STM8S系列项目开发
PM0044 STM8 CPU programming 详细介绍STM8S系列MCU的CPU的指令集,寻址方 式。
PM0047 STM8 FLASH programming 详细介绍STM8S系列Flash的编程方式。 z Datasheet: 数据手册
或者 /mcu 或中文网站:
/mcu/
STM8S 系 列 相 关 的 资 料 和 软件都可以在这个页面找到
页3/34
1.2
下载STM8S系列相关资料
所有的STM8S芯片的相关资料都可以在1.1节中所提到的网页内下载。进行STM8S系列MCU的 开发首先需要以下资料: z Reference Manual:
2.2 软件设计 ...............................................................................................................................13
2.2.1 项目建立 ....................................................................................................................13
AN 应用笔记
如何基于STM8S系列MCU
进行项目开发
简介
意 法 半 导 体 的 STM8S 系 列 8 位 闪 存 微 控 制 器 为 工 业 应 用 和 家 电 市 场 提 供 理 想 解 决 方 案 。 最新版的微处理器内核,结合3段流水线架构,使STM8S微控制器具备最优异的性能。直观的 开发环境简单易用,使产品上市时间更短。
stm8开发环境配置及测试
stm8开发环境配置及测试需要准备的软件,硬件,IAR for stm8 (EWSTM8)、stm8s标准固件库、ST-LINK、STM8s003f3核⼼板安装IAR(其中包括st-link的驱动),使⽤IAR新建⼀个⼯程,具体步骤如下:1,File->New->Workspace2,创建⼀个⼯程:Project->Create New Project...3,在弹出的对话框中选择C,-》OK4,根据提⽰保存你的⼯程5,从stm8s标准固件库中复制Libraries⽬录到你的⼯程⽬录,复制\STM8S_StdPeriph_Lib_V2.1.0\Project\STM8S_StdPeriph_Examples\GPIO到你的⼯程⽬录6,IAR的⼯程配置:在⼯程中添加两个组Libraries,MyApp。
右击你的⼯程->Add->Add Group7,将库中的*.c⽂件和主程序⽬录的*.c⽂件分别添加到Libraries, MyApp;右击相应组->add->add files8,选择单⽚机型号:右击你的⼯程Options->General Options->选择你单⽚机的型号9,配置头⽂件搜索路径:上⼀步切换到C/C++ Complier->Preprocessor->Additional include directory: ( one per line)10,选择调试器:切换到Debugger->Driver选择ST-Link->OK现在开始编译拍错1,右键main.c->Comliper会提⽰保存workspace,按提⽰操作,编译中会提⽰没有定义Fatal Error[Pe035]: #error directive: "Please select first the target STM8S/A device used in your application (in stm8s.h file)" C:\Documents and Settings\Administrator\桌⾯\EWSTM8_turial\Libraries\STM8S_StdPeriph_Driver\inc\stm8s.h 65双击该条提⽰,⾃动定位到错误位置,表⽰没有定义单⽚机型号,定义上#define STM8S003F32,再次执⾏1,这次的提⽰变为Error[Pe020]: identifier "GPIOH" is undefined C:\Documents and Settings\Administrator\桌⾯\EWSTM8_turial\GPIO\GPIO_Toggle\main.c 54双击该提⽰,定位到错误位置,向上找到 #define LED_GPIO_PORT (GPIOH)将GPIOH改为GPIOD(STM8S003F3没有GPIOH这个IO)3,再次执⾏1,OK没有错误4,整体编译⼀遍:右击⼯程->Make.在编译过程中有⼀部分⽂件会报错,不要担⼼,这些是STM8S003F3中没有的资源,将报错的⽂件删除即可另外对固件库了解后,可以只添加需要的部分,⽐如这次使⽤的是stm8s_gpio.c,那么只添加stm8s_gpio.c就可以了5,删除不需要的,再编译:OK没有错误,没有警告下载并调试,1,将STM8核⼼板通过SWIM与ST-Link连接起来,注意线序2,将ST-Link连接到电脑,(在设备管理器中usb总线中会看到ST-link的相关信息)3,给stm8核⼼板加电4,点击IAR的Download and debug,点击Go。
stm8s工程创建过程
利用ST Visual Develop创建STM8S工程
1.新建一个文件夹,用来保存代码文件和编译生成的各种文件;
2.打开ST Visual Develop 点击File选择New Workspace
3.弹出下图中的对话框,在Workspace filename填入所要的工程名,可以和创建的文件夹
不同名,在worksapce location中选择刚才所创建的文件夹,点OK;
4.点OK后弹出新的对话框,如下图:
如红色字提示设置好之后,点OK;
5.点OK后弹出芯片选择对话框;
找到对应MCU后双击选择,点OK后完成工程创建;
6.工程创建后ST Visual Develop中的workspace 视图如下;
自动生成了main.c文件和中断文件,接下来要在include Files中添加相应芯片头文件;
7.include Files中添加相应芯片头文件:
在Include Files上右键,选择Add Files to Folder
在ST Visual Develop安装文件夹下的include文件夹中选择相应芯片头文件
至此工程创建和编译环境配置完成。
――from 时光祭司。
如何开始STM8S系列单片机的开发
所有的源文件和头文 件添加完成后,选择 保存。
19
STM8S软件设计
选择Build
编译
Rebuild 编译成功
编译并且保存后,项目文件夹的内容
STMicroelectronics
Sept. 14~25, 2009
20
软件编写注意事项
时钟分配
主时钟是否正常起振并稳定,各个外设时钟是否开启
选项字节配置(option bytes)
VDD C4 104P C3 10uF/16V VDD CN1 C9 10uF/16V 1 SWIM 2 3 RESET# 4 SWIM Con_2 1 4 Key
C14 102P C13 C12 R10 1M 104P X1 8MHz C17 105P
R12 100 R11 4K7
B1 RESET# 2 3
STMicroelectronics Sept. 14~25, 2009
15
STM8S软件设计
创建工作区
Workspace名称
Workspace存储路径
STMicroelectronics
Sept. 14~25, 2009
16
STM8S软件设计
创建项目
本例对Workspace filename 起名为 STM8_IO_Test。 存储路径为: C:\STM8_NewProject1
7
COSMIC C编译器(1)
下载
/download.php
请仔细填写注册信息
选择提交信息后,会弹出软件下载链接
STMicroelectronics Sept. 14~25, 2009
8
COSMIC C编译器(2)
安装(1)
stm8s开发(一) 使用IAR新建工程
stm8s 开发(一)使用IAR 新建工程
新建工程是第一步!
a)创建一个Workspace
首先,创建一个workspace。
选择菜单FileNewWorkspace
b)创建一个Project
1)创建一个新的工程,选择ProjectCreateNewProject,创建新工程的对话框,如下2)Toolchain默认是STM8Series。
无需再选择。
3)在Projecttemplates中选择“Emptyproject”
4)弹出SaveAs对话框,选择project保存的路径,并输入project的名字
5)在添加文件到工程中之前,先保存workspace。
选择FileSaveWorkspace,指定要保存的路径,并输入workspace的名字。
一个workspace文件的扩展名是eww.此文件列出了添加到workspace中的所有的project。
相关当前会话信息,比如windows的保存路径和断点保存于
projects\setttings目录下。
c)添加文件和组到工程
可选择ProjectAddFiles选择要添加的C文件。
找到相应的文件。
可选择ProjectAddGroup新建组。
d)工程选项配置
选择ProjectOptions,或者在Workspace窗口,选中project名字,右击选择选择“Options…”
1)在Category中,选择“GeneralOptions”,如2)在Category中,选择C/C++Compiler,显示compiler选项页
这里可以设置编译的优化,一般选择Low级别,若选用High级别的话,。
ST单片机STM8S开发入门教程
ST单片机STM8S开发入门教程最近ST在国内大力推广他的8位高性价比单片机STM8S系列,感觉性能上还是非常不错的,网上稍微看了点资料,打算有机会还是学习一下,先入门为以后做好技术积累。
好了,长话短说。
手上拿到一套ST最近做活动赠送的三合一学习套件,上面包括STM32F小板、ST LINK小板、STM8S小板,做工很精致,相信很多朋友也收到了。
既然当初去申请了,人家也送了,总得把用起来吧,放着吃灰尘是很可惜的^_^ 。
好,步入正题,刚开始在论坛上逛了一圈,感觉STM8S的资料实在太少,都是官方的应用资料,没有什么入门介绍,连需要安装什么软件都搞不清楚。
偶的电脑光驱坏了,所以也读不出光盘里有什么东西,所以只能到处瞎摸,还是ourdev论坛好,嘿嘿,仔细看了几个帖子,总算明白大概是什么样的开发环境了。
用C语言开发STM8S,需要安装两个软件:1、STVD IDE开发环境;2、COSMIC for STM8 C编译器。
STVD可以到官网下载,下载地址:COSMIC 需要申请LICENSE,比较繁琐,刚好坛子有人传了一个免安装无限制版本的,偶就赶紧下载了,大家可以去下载,仅做为个人学习使用。
下载地址:软件下载后,只需安装STVD。
从上面地址下载的COSMIC不用安装,只要解压到硬盘即可。
后面建立工程的时候设置好路径即可。
下面一步一步开始啦~一、安装好STVD后,桌面上建立了两个快捷图标,ST Visual Develop就是STVD了。
ST Visual Programmer是编程软件,可以配合ST LINK对STM8S进行编程烧录。
二、双击运行ST Visual Develop,启动STVD开发环境。
执行Workspace,在New Workspace 窗口里选择Create workspace and projects,点击“确定”建立工作组和工程三、在Workspace 里输入Workspace名称,由于最终我们要测试一个现成的LED程序,所以偶写了led,随你喜欢了,呵呵。
STM8单片机的C语言编程基础与实践
/* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */
main() { while (1); } 而在 stm8_interrupt_vector.c 中,就是声明了对应该芯片的中断向量,如下所示: /* * */ typedef void @far (*interrupt_handler_t)(void); struct interrupt_vector { unsigned char interrupt_instruction; interrupt_handler_t interrupt_handler; }; @far @interrupt void NonHandledInterrupt (void) { /* in order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction BASIC INTERRUPT VECTOR TABLE FOR STM8 devices Copyright (c) 2007 STMicroelectronics
STM8 的 C 语言编程(2)-- 变量空间的分配
采用 C 这样的高级语言,其实可以不用关心变量在存储器空间中是如何具体分配的。但如果了解如何 分配,对编程还是有好处的,尤其是在调试时。 例如下面的程序定义了全局变量数组 buffer 和一个局部变量 i,在 RAM 中如何分配的呢? /* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */ unsigned char buffer[10]; // 定义全局变量
STM8 开发环境、最小项目工程、最小系统
STM8 开发环境、最小项目工程、最小系统一、STM8开发环境要使用STM8需要下载下列工具:1、ST 8bit MCU通用集成开发环境- ST Visual Develop/stonline/products/support/micro/files/st7toolset.exeIDE包含代码编辑、汇编编译器、代码调试功能,不含C编译器。
同时IDE还自带ST Visual Progra mer编程软件,支持主流8bit2、COSMIC C Compiler for STM8 16K Limited免费的16K代码限制C编译器。
运行ST Visual Develop(STVD) 集成开发环境,通过菜单栏Files -> New WorkSpace我们可以新建一个新的STM8工程。
(原文件名:1.jpg)在弹出的“New WorkSpace”对话框中,我们可以STVD支持的集中工程模版类型。
这里我们选择使用“Create workspace and project”。
(原文件名:2.jpg)WorkSpace是Project的管理平台,允许在一个WorkSpace中出现多个Project,通过设定我们可以选择当前的活动项目。
(原文件名:3.jpg)输入当前要建立的项目名称,并且可以根据应用的需要通过“Project location”来选择更改WorkSp ace存放路径。
因这里介绍的例程我们需要支持的MCU平台是STM8系列,C语言使用COSMIC,因此我们还需要对使用的Toolchain进行选择。
(原文件名:4.jpg)下一步我们要选择工程使用的MCU型号。
(原文件名:5.jpg)在对话框中我们可以看到当选中一个MCU型号,在右边的工具列表清单中会显示调试工具支持状态,绿色表示工具可以支持,灰色表示不支持。
这里仅是提供调试或仿真支持,不表示编程支持,具体编程支持需要通过STVP编程软件确认。
STM8S做IAP
STM8S做IAP一:环境与平台MCU:STM8S005K6集成开发环境:STVD开发方式:库开发芯片内部存储”偷窥”软件Smart PRO 2008二:在RAM中运行代码0.在STM8s.h中将#define RAM_EXECUTION (1)的注释去掉,以使用RAM功能.1. 利用编译器函数#pragma section (FLASH_CODE) , #pragma section () 对函数void FLASH_ProgramBlock(Num,PROG, FAST ,Buffer);进行声明.FLASH_CODE是声明的这段代码的名字,可以自己随便取.同时函数用IN_RAM包括.举例代码如下:#pragma section (FLASH_CODE)IN_RAM(void FLASH_ProgramBlock(Num,PROG, FAST ,Buffer)){Num=PROG+ FAST +Buffer;}#pragma section ()2.声明编译器函数int _fctcpy(char name);3.在函数FLASH_ProgramBlock运行前时,利用编译器函数int _fctcpy(char name)将函数FLASH_ProgramBlock复制到RAM中.形参char name是指要复制的代码段名字的首字母.此例中要复制的代码段名为FLASH_CODE.所以应该写成: _fctcpy('F');4.在STVD软件, project工程, seting设置, linker链接器, Gategory , Input , RAM 栏中添加要在RAM中运行的代码" . FLASH_CODE"名, 并在option中输入"-ic".具体见图片.如果出现没有" . FLASH_CODE"的默认位置这样的错误,说明这步没有处理好.三:STM8S的中断特性1 把APP的中断向量表地址改成0xa300 , Flash地址改成oxa380 , 之后程序不能执行.把APP的中断向量表地址改成0x8000 , Flash地址改成oxa380 , 之后程序就能执行.是因为一上电STM8S就读取0x8000-0x8003的复位地址,以实现复位,但找不到. 这异常与复位中断有关,STM8S读取中断向量表的地址只能是0x8000到0x8080.谁的复位函数地址处在0x8000,就复谁的位.复位就是跳转主函数开始地址的意思.STM8S单片机主函数地址/复位地址是0x8000-0x8003.地址0x8004-0x8080为其它中断函数地址2.局部的变量,全局的变量,都在主函数运行后被赋初值或运行中改变值,这些变量都存储在RAM中.只有code/const指定了的才会在ROM中.3.可以利用软件复位实现软件间跳转(跳转前修改地址0x8000-0x8003中复位函数的地址); 也可直接利用跳转指令实现跳转.四:操作流程1 :APP软件,在STVD软件中,工程->设置->Linker->Caneral->Input中,设置中断地址0xa300 , Flash地址0xa380 .设置是否完成会在.lkf文件中看到,这是地址分配文件2 :Boot软件,在软件中利用汇编指令跳转到APP代码Flash的开始地址._asm("LDW X, SP ");_asm("LD A, $FF");_asm("LD XL, A ");_asm("LDW SP, X ");_asm("JPF $A380"); //跳转到APP Flash地址0xA380嵌入app.bin的地址为偏移地址,包含中断向量表地址/Flash 地址.Boot代码的地址分配默认.3.利用smart Pro软件将APP.hex文件转化成APP.bin4.利用二进制软件,修剪无用数据5.先在smart pro 2008中导入Boot.hex ,再导入修剪过的app.bin , 最后保存为Down.hex即可. 注意,导入app.bin时,不要清除之前导入的Boot代码.同时注意导入的app.bin 文件的Flash地址,导入到缓冲区的地址(器件地址)要对应跳转地址.五:Smart PRO 2008的应用.1.该软件可作一般二进制处理软件使用.但其特别之处在于,它的显示区/缓冲区/器件存储区都是基于具体真实的芯片存储架构,所以比一般的二进制软件好操作芯片的存储.具体操作在此不说明,可单独联系我.六:声明/其它1:以上内容为个人观点,没有经过严格测试,如有使用,请使用者自行评估风险,出现问题本人一概不负责!2:技术交流:3228504429。
STM8S105S4-PKT演示代码使用说明
用户手册STM8S体验系统板STM8S105S4-PKT软件例程使用说明1 前言STM8S105S4-PKT是ST MCU体验套件中是基于STM8S105S4T6微控制器的,用于评估和体验STM8S功能的电路板。
STM8S105S4T6是精简型的STM8S系列芯片之一,它基于ST公司的先进STM8内核,具有16K字节片上闪存以及一系列丰富的外设接口。
通过ST-LINK、STX-RLINK 等调试工具,可以调试、烧写板载的STM8S105S4T6芯片。
STM8S105S4-PKT电路板提供的接口和外设有USART、ADC、LED灯、蜂鸣器以及触摸感应按键等功能。
该体验套件利用这些接口与外设为用户提供了6个例程,供用户参考:z Music:音乐播放例程;z CSS:时钟切换及时钟安全系统的使用例程z Sinwave:正弦波发生例程z LED:LED控制例程z UART:串口与PC通讯例程z Touch Sensing:RC电容触摸式按键例程注:1)本例程仅适用于STM8S体验系统板STM8S105S4-PKT。
2)所有的例程均使用Cosmic C语言编译器,用户请预先安装Cosmic C编译器。
3)所有项目均基于STVD 4.1.2集成开发环境,用户请预先安装相应软件。
4)所有例程使用ST-Link或STX-RLink作为在线调试工具,请在进行在线调试前确认PC与调试工具的硬件连接。
硬件功能描述STM8S105S4-PKT软件例程使用说明2 硬件功能描述2.1 主要特性● 通过套件中的ST-LINK或另外购买的STX-RLINK等调试工具支持免费的STVD开发环境,支持Cosmic STM8的16K免费编译器● 基于STM8S微控制芯片系列芯片之一的STM8S105S4T6高级STM8内核,具有3级流水线的哈佛结构内置16K字节Flash和2K字节RAM内置1024字节EEPROM44个引脚:最多34个通用I/O端口,其中15个大电流端口2个普通16位定时器,1个可产生3路互补PWM输出的高级16位定时器1个带有8位预分频器的8位基本定时器10位ADC,最多有9个ADC输入通道1个带有同步时钟输出的UART ,支持智能卡、红外IrDA和LIN接口1个高达8M位/s的SPI1个支持400K位/s的I2C具有单线接口模块(SWIM)和调试模块(DM)● 可以作为软硬件架构的参考设计● 通过板上的触摸按键,可以体验STM8S的触摸按键方案和性能● 通过板上的蜂鸣器,体验STM8S内置的蜂鸣器驱动单元● 通过板上的扩展区,可以方便地扩展用户自己的外设和体验与STM8S接口操作2.2 板上的资源● 基于STM8内核的STM8S105S4T6芯片● 可选择的8MHz主时钟外部晶振● 三个GPIO驱动的LED灯● 可以输入模拟信号的单通道电位器● 一个复位按键● 一个可由用户定义的按键● 一个RS232(DB9)连接头● 一个SWIM单线调试接口连接头● 三个电容触摸感应式按键● 一个蜂鸣器● 采用PWM+RC滤波的模拟信号输出3 参考代码说明3.1 Music 例程说明3.1.1 项目描述本例程通过采用PWM信号驱动蜂鸣器播放音乐并调节音量与音调,来说明如何使用Timer,ADC,GPIO,TLI:9使用HSI为系统时钟源,并配置恰当的分频比;9 Timer2 CC1通道配置为PWM模式用以驱动蜂鸣器;9 Timer4 溢出中断用作LD4,LD3,LD2闪烁的时基;9 TLI(PD7)中断(用户按键)用来切换音乐的音调;9 ADC 采样电位器电压来调节占空比以控制音量。
eclipse_stm8_iar_stlink开发环境教程
IAR是除了ST公司官方工具外目前能比较好编译STM8芯片的开发环境,但是IAR的代码编辑工作做的很不友好,一直没有什么进步,但是他们提供eclipse的插件,说起eclipse用来查看、编写代码绝对比之以前有巨大的飞升,特别是当代码量大到一定程度后。
但是我看到有些人讲,像keil那样就行了,折腾是毫无意义的,说实话,我很反感有人有这样的想法,毕竟如果作为开发人员,特别是技术升级换代的速度很快的情况下,不思进取只会落后。
下面的内容不适合初学者,如果看不懂,可以直接放弃,首先要具备在IAR环境下开发过STM8的技能,如果之前用过eclipse就更好了首先需要准备以下软件1、eclipse(C++版本)2、Java环境(和eclipse的版本要匹配)3、IAR7.0以上(stm8版本,网上有和谐版本,自行搞定)4、ST Visual Programmer(官方自带的下载工具)5、XCOM V2.0.exe(串口工具,其他的也行,推荐用这个)准备的硬件1、st-linkV22、stm8s103F3开发板3、USB串口4、杜邦线等首先安装C++版本的eclipse,这个可以到网上去找教程,很多,这里就不介绍了再安装IAR(stm8版本),至于怎么和谐,自行百度,有钱的话推荐买正版之后安装STVP,这个不要钱,里面包含ST Visual Programmer和ST-LINK的驱动下面为eclipse安装插件,首先按照下面的图去下载插件,是一个zip的打包文件打开eclipse-》help-》install new software... ->add... ->Local... 再弹出的对话框里面选择刚才下载的zip文件,之后按照默认提示安装即可,中间有警告的话,请忽略,完成后会提示重启再打开eclipse,windows-》preferences,再弹出的对话框里面点IAR卡头的选项,填入IAR的安装路径,可以参考下图下面就可以导入之前的IAR工程了,file-》import,如图,找到之前的工程文件即可这种方式生成的工程,可以直接编译,但是并不推荐,可以直接新建工程,具体做法是file-》new-》C peoject,接下来就很直观了,如图填写好工程名字即可,下面进行选择芯片型号的操作,鼠标点中工程名字,再按alt+enter,弹出,如图再点击select...就可以选择了,里面的选项和IAR的差不多,可以自行领会之后就可以编写一个LED灯的示例工程了下面说生成HEX以及烧录的方法按照如图配置,可以生成hex烧录方法,先点击图标右边的小下拉箭头,选择external Tool...,弹出的对话框里面填入如下图的内容,其中locations: 里面的内容是STVP_CmdLine.exe的绝对地址,请按照自己计算机的实际情况填写,其他的内容,请自行领悟,不出意外,点击Run的话就能正常下载了,以后只需点击下载(如果下载错误,会提示错误的,在里面,如果没有内容,说明已经成功下载了)。
eclipse_stm8_iar_stlink开发环境教程
eclipse_stm8_iar_stlink开发环境教程IAR是除了ST公司官方工具外目前能比较好编译STM8芯片的开发环境,但是IAR的代码编辑工作做的很不友好,一直没有什么进步,但是他们提供eclipse的插件,说起eclipse用来查看、编写代码绝对比之以前有巨大的飞升,特别是当代码量大到一定程度后。
但是我看到有些人讲,像keil那样就行了,折腾是毫无意义的,说实话,我很反感有人有这样的想法,毕竟如果作为开发人员,特别是技术升级换代的速度很快的情况下,不思进取只会落后。
下面的内容不适合初学者,如果看不懂,可以直接放弃,首先要具备在IAR环境下开发过STM8的技能,如果之前用过eclipse就更好了首先需要准备以下软件1、eclipse(C++版本)2、Java环境(和eclipse的版本要匹配)3、IAR7.0以上(stm8版本,网上有和谐版本,自行搞定)4、ST Visual Programmer(官方自带的下载工具)5、XCOM V2.0.exe(串口工具,其他的也行,推荐用这个)准备的硬件1、st-linkV22、stm8s103F3开发板3、USB串口4、杜邦线等首先安装C++版本的eclipse,这个可以到网上去找教程,很多,这里就不介绍了再安装IAR(stm8版本),至于怎么和谐,自行百度,有钱的话推荐买正版之后安装STVP,这个不要钱,里面包含ST Visual Programmer 和ST-LINK的驱动下面为eclipse安装插件,首先按照下面的图去下载插件,是一个zip的打包文件打开eclipse-》help-》install new software... ->add... ->Local... 再弹出的对话框里面选择刚才下载的zip文件,之后按照默认提示安装即可,中间有警告的话,请忽略,完成后会提示重启再打开eclipse,windows-》preferences,再弹出的对话框里面点IAR卡头的选项,填入IAR的安装路径,可以参考下图下面就可以导入之前的IAR工程了,file-》import,如图,找到之前的工程文件即可这种方式生成的工程,可以直接编译,但是并不推荐,可以直接新建工程,具体做法是file-》new-》C peoject,接下来就很直观了,如图填写好工程名字即可,下面进行选择芯片型号的操作,鼠标点中工程名字,再按alt+enter,弹出,如图再点击select...就可以选择了,里面的选项和IAR的差不多,可以自行领会之后就可以编写一个LED灯的示例工程了下面说生成HEX以及烧录的方法按照如图配置,可以生成hex烧录方法,先点击图标右边的小下拉箭头,选择external T ool...,弹出的对话框里面填入如下图的内容,其中locations: 里面的内容是STVP_CmdLine.exe的绝对地址,请按照自己计算机的实际情况填写,其他的内容,请自行领悟,不出意外,点击Run的话就能正常下载了,以后只需点击下载(如果下载错误,会提示错误的,在里面,如果没有内容,说明已经成功下载了)。
STM8S单片机开发的过程及方法
STM8S单片机开发的过程及方法STM8S单片机开发环境由三大部分组成,包括PC机上的开发软件(集成开发软件、驱动程序等)、调试">1、PC机上开发软件PC机上的软件包括:ST-LINK驱动程序、IAR集成开发环境、STM8S标准函数库、STVP 烧录工具。
ST-LINK调试">这个驱动程序不需要单独安装,安装STVP时会一起安装。
IAR集成开发环境IAR集成开发环境是集程序编辑、编译、程序下载、调试等功能为一体的集成开发工具,它可以通过ST-LINK调试">针对STM8S的集成开发工具有多种,本教程选用IAR集成开发工具,主要是由于其成熟稳定,简单易用。
IAR集成开发工具的全称是“IAR for STM8”,版本号推荐比较成熟的2.10.5版本。
STM8S标准库函数STM8S标准函数库是ST原厂推出的C语言函数库,把STM8S单片机的基本操作都封装成了库,能极大提高开发效率。
STM8S标准函数库的全称是STM8S_StdPeriph_Lib_V2.1.0。
当然不使用标准库函数也能进行单片机程序开发,但是这需要自己操作单片机的每个寄存器,需要对单片机内部构造和寄存器的作用非常熟悉才能做到,开发复杂度会成倍增加。
STVP烧录工具STVP(ST Visual Programmer)烧录工具也是ST原厂推出的。
虽然说一般的程序下载到单片机,使用IAR集成开发环境就可以了,但设置STM8S单片机的选项字节(OPTION BYTE)使用STVP烧录工具还是方便一些。
选项字节有两个最重要、最常用的功能:一是设置读出保护开关(ROP),大家可能遇到买回来的成品STM8S单片机开发板,无法用IAR进行程序下载和调试,这就是ROP设置为开了,这种情况下需要用STVP重新设置为关才能用;二是设置单片机引脚的第二功能,STM8S单片机很多引脚都有多个功能,比如作为SPI接口还是作为定时器通道,也是要通过选项字节来设置的。
STM8在IAR环境下的C语言开发
STM8单片机在IAR环境下的C语言开发1、头文件搜索路径设置在工程管理窗口按右键,选择option,打开选项设置窗口如下选择C/C++ compiler选项,然后选择Preprocssor标签,在《Additional include directories 下输入要包含的搜索路径,这样在程序编译时,编译器会自动到该目录下搜索头文件。
2、单片机类型的选择在工程管理窗口按右键选择option,选择<General Options>选项,然后再Target中选择相应的单片机型号。
3、Printf函数的使用要使用printf函数,需要在工程管理窗口按右键选择《option》,选择<General Options>选项,然后选择《library Configuration》标签,在《library》中选择Full,如下图所示。
对于程序空间非常小的单片机,如STM8S003只有8K的程序空间,如果使用全功能的printf函数,则程序编译后代码空间不足,此时应不使用printf或者使用Tiny版本的printf,选择Library Options标签,选择Printf formatter 为tiny。
为了能够使用printf,在程序中需要增加如下代码#include "stdio.h"//------------------------------------------------------------------------------// 使用Printf//------------------------------------------------------------------------------// 又有STM8S003只有8K的内存,使用完整的printf则程序空间不足,必须使用tiny的printf// 因此在工程的选项中Library configuration选择Full,在Library option 中选择tiny#ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endifPUTCHAR_PROTOTYPE{//发送数据代码UART1->DR = ch;while(UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);return ch;}4、查看程序编译后的代码大小在工程的目录下有《Debug》和《Release》目录,目中中的《List》目录中有个扩展名为map的文件,文件名为工程名,打开该文件,可以看到程序编译后的代码大小。
STM8 开发环境
STM8 开发环境、最小项目工程、最小系统工程, 环境, 系统, 项目, 开发一、STM8开发环境使用STM8需下载下列工具:1、ST 8bit MCU通用集成开发环境-ST Visual Develop/stonline/products/support/micro/files/st7toolset.exeIDE包含代码编辑、汇编编译器、代码调试功能,不含C编译器。
同时IDE还自带ST Visual Programer编程软件,支持主流8bit2、COSMIC C Compiler for STM8 16K Limited/download_stm8_16k.php 免费下载,可申请16K代码限制版本的C 编译器。
安装后,会要求注册。
按照要求填写注册信息后COSMIC会提供回复,会收到一个16K License文件,将它copy到COSMIC安装路径下的License目录,默认的路径…打开STVD,选择菜单栏Tools -Options对话框,找到Toolset标签,Toolset中选择“STM8S COSMIC”,Root path中选择COSMIC路径,默认是“CXSTM8_16K”路径。
运行ST Visual Develop(STVD) 集成开发环境,通过菜单栏Files -> New WorkSpace我们可以新建一个新的STM8工程。
在弹出的“New WorkSpace”对话框中,我们可以STVD支持的集中工程模版类型。
这里我们选择使用“Create workspace and project”。
WorkSpace是Project的管理平台,允许在一个WorkSpace中出现多个Project,通过设定我们可以选择当前的活动项目。
输入当前要建立的项目名称,并且可以根据应用的需要通过“Project location”来选择更改WorkSpace存放路径。
因这里介绍的例程我们需要支持的MCU平台是STM8系列,C 语言使用COSMIC,因此我们还需要对使用的Toolchain进行选择。
stm8s芯片程序烧写操作方法
应急盒烧写:说明:应急盒程序烧写时,必须外部供电,否则无法烧写先把烧写器插在电脑上,电脑会有提示(否则无法使用,烧写器灯亮才可以使用)打开桌面上的图标打开的界面如下点击下图左边的按钮找到对应芯片的型号点击OK打开下图最右边的按钮option byte首先擦除程序设置为OFF 然后点击下图的中间那个红色箭头按钮进行擦除程序烧写程序:把下图右边设置为ON然后打开下图左边的按钮program memory添加程序然后点击中间红色的按钮进行程序烧写烧写程序的过程中会弹出对话框,点击确定即可(弹出2个对话框都点击确定)Option bytesOption bytes contain configurations for device hardware features as well as the memoryprotection of the device. They are stored in a dedicated block of the memory. Except for theROP (read-out protection) byte, each option byte has to be stored twice, in a regular form(OPTx) and a complemented one (NOPTx) for redundancy.Option bytes can be modified in ICP mode (via SWIM) by accessing the EEPROM addressshown in Table 12: Option bytes below. Option bytes can also be modified ‘on the fly’ by theapplication in IAP mode, except the ROP option that can only be modified in ICP mode (via SWIM).Refer to the STM8S Flash programming manual (PM0051) and STM8 SWIMcommunication protocol and debug module user manual (UM0470) for information on SWIMprogramming procedures.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM8S开发环境搭建IAR For STM8
标签:STM8SSTM8S-Discovery IAR
2013-12-29 15:593139人阅读评论(0) 收藏举报分类:
STM8S单片机(3)
作者同类文章X
版权声明:本文为博主原创文章,未经博主允许不得转载。
/*
********************************************************************************************************************** ************
* Name : STM8S开发环境搭建IAR For STM8
* Author : MingMing
* Release : 2013/12/29
* Update : 2013/12/29
* E-mail : clint.wang@
********************************************************************************************************************** ************
*/
本文采用的是STM8S-Discovery开发板,开发板上半部分为ST Link调试器,芯片采用的是STM32F103C8,下半部分是STM8S105C6的开发板。
对于STM8的开发环境,主要采用两种,一种是IAR For STM8,另一种是官方的ST Toolset。
ST Toolset中包含了两个工具STVD(ST Visual Develop)和STVP(ST Visual Programmer)。
STVD是一款开发工具,它自身并没集成编译器,因此需要安装第三方编译器Cosmic。
STVP 是一款烧录工具,它支持.hex .s19 .sx三种文件的烧录,对IAR编译出的.hex文件的烧录我们就不用太担心了。
下载IAR For STM8 1.3.1(IAR Embedded Workbench for STMicroelectronics STM8 1.31)并安装。
下载ST Toolset 4.3.2并安装(在这里安装它,只为了使用它的STVP烧录工具)。
如果想采用官方的开发环境,可以下载Cosmic并安装。
环境安装完毕后,就可以连接开发板到你的PC机了,如果连接OK的话,那么你的电脑会多出一个盘符,30M左右的大小,里面包含几个网址,想了解更多的同学可以去逛一逛。
打开STVP烧录工具,按照图中的方法来配置。
打开一个.hex文件。
点击Program à Current tab,如果出现下面的状况,那么很不幸,有麻烦出现了。
针对上面的情况可能有两种情况:
1.ST Link的Firmware未被当前版本的STVP支持,在开始 -> 所有程序 -> ST Toolset -> Setup下找到Upgrade ST Link,运行它之后,我们需要将开发板重新连接到PC机,否则将会显示不能进入DFU模式。
在重新连接开发板之后,点击Device Connect。
在这里我们可以找到ST Link现在的固件版本和将要升级的固件版本。
点击Yes升级就自动完成了。
升级完成后,还是出现上面的情况,那么就说明ST Link已经连接成功,下面的STM8S开发板未被识别。
为此我找到了STM8S-Discovery 的用户手册,发现在板子中间有个焊接桥,这两个焊接桥是RESET和SWIN,因为ST Link可以应用到其它系列的开发板上,所以默认是断开的。
那么就连接上吧,如果你不想焊接就用两根杜邦线在排阵之间连接。
再次打开.hex文件,点击Program all tabs。
程序烧录成功。
打开IAR集成开发环境,建立工作空间和工程的过程在这里不加以赘述。
重要的是对IAR的配置完成对开发板的调试。
建立工程后,工作区会有几行代码,我们可以编写一个小程序,控制开发板的LED。
那么开始吧,一显身手的时候到了。
编译通过后,接下来就要开始调试工作了。
可是我们的IAR还没有配置,那么点击Project -> Options出现一个配置对话框,就根据下图进行配置吧。
2.配置完成后,点击Debug按键,如果出现了无法连接到ST Link的情况,可能原因就是当前IAR版本并不支持该ST Link的固件版本。
在下图所示这个几个路径下都有STLinkUSBDriver.dll这个文件,这个文件就是咱们升级ST Link所用到的文件,它在Program
Files\STMicroelectronics\st_toolset\stlink路径下,既然ST Link升级成功了并且STVP烧录工具正常工作,那么就用这个文件替换其他文件夹下的该文件。
OK,让我们再试着Debug一次。
如果未出现上面所说的错误,OK,开始调试吧。
在调试通过后,我们还要注意一点,调试用的是.out文件,烧录到芯片中要用.hex文件,但是编译的代码并没有生成我们期待的.hex 文件出现,点击Project -> Options出现一个配置对话框。
按照下图中的方法配置。
配置完成后再次编译,OK,这回看看是不是有.hex文件格式生成。
需要注意的是,集成开发环境在编译代码时需要区分在Debug模式还是在Release模式。
Debug模式下生成的.hex文件的大小一般大于Release模式下生成的,因为前者的.hex文件中包含了很多调试信息。
根据上面学习到STVP烧录程序的方式,开始你快乐的编程吧。
顶
1
踩。