STM8S开发环境编译方法

合集下载

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系列项目开发

STM8S系列项目开发
RM0016 STM8S microcontroller family 对STM8S系列MCU各模块的功能做详细介绍 z Programming manual:
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开发环境配置及测试

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工程创建过程

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系列单片机的开发

如何开始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新建工程

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单片机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语言编程基础与实践

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]; // 定义全局变量
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
踩。

相关文档
最新文档