《无刷直流电机》第2章STM8微处理器开发环境(1) - 技术资料 - 电子技术论坛 - 最好最受欢迎电子论坛!

《无刷直流电机》第2章STM8微处理器开发环境(1)

` 本帖最后由 优易特电子 于 2015-1-27 17:37 编辑

无论是学习还是工程应用,开发STM8应用系统都必须在一定的软件开发环境和硬件开发平台上进行,同时,仿真调试器也是系统开发必不可少的工具。
本章首先介绍了三种集成开发环境和两种常见开发工具,然后介绍了在各种开发环境下实现程序设计的方法及步骤,最后介绍了STM8程序烧录方法及官方固件库的使用说明。
2.1  STM8集成开发环境简介
开发STM8应用系统常见的开发环境有三种:意法办导体公司的ST ToolSetCOSMIC公司的IDEA瑞典IAR System公司推出的IAR EWSTM8
2.1.1  ST TOOLSET
ST TOOLSETST提供的微控制器开发套件,主要包括两部分软件:ST Visual Develop (STVD)和ST Visual Programmer (STVP),支持STM8全系列MCU的开发。
ST Visual Develop (STVD)是ST微控制器的集成开发环境,主要面向ST8位微控制器产品。STVD可以创建,调试以及烧录ST微控制器。STVD提供了一个免费的汇编编译器。用户可使用汇编语言直接在此环境中(STVD)编写汇编程序。
ST Visual Programmer (STVP)是ST提供的用于生产或批量的专用烧录软件。
STTOOLSET可从STVDSTVP页面进行下载。
STVD页面地址:
STVP页面地址:
点击“STVD”或“STVP”下载,可进行STTOOLSET.ZIP文件下载,此文件需84M硬盘存储空间。
下载后,解压缩相应的文件,然后运行可执行文件即可安装开发套件。
STVD在线调试界面如图2-1所示。
2-1 STVD在线调试界面图
2.1.2  COSMIC
Cosmic 公司(Cosmic Software Inc.)Cosmic C编译器(Cosmic C compiler)及全套嵌入开发工具支持STM8系列产品的开发。Cosmic产品包括C 交叉编译器、汇编、连接器、ANSI库、仿真器、硬件调试器和易于使用的集成开发环境(IDEA)。
Cosmic公司提供了32K代码大小限制的全功能的免费软件。此软件可从http://www.cosmicsoftware.com免费下载。
或者尝试直接从下面地址下载:
下载后,运行可执行文件安即可安装开发套件。
COSMIC公司为用户提供了一个集成的开发环境,其运行后界面如图2-2所示:
2-2 COSMIC开发环境界面图
注:建议用户将COSMIC C编译器外挂于ST TOOLSET中,使用ST提供的集成开发环境STVD进行产品的开发,后续章节将说明其用法。
COSMIC C编译器在安装过程中,会出现如下图2-3所示的提示。提示创建桌面图标和申请软件使用协议。可以选择“Register your license”来申请协议,选择“Next”。
2-3 COSMIC C编译器安装提示
根据要求填写下面的注册信息,要求用英文填写完整。选择”Register by Email”,会启动计算机系统默认的邮件软件,发送申请协议的邮件,如图2-4所示。用户会收到一个协议文件。将其拷贝到安装目录下的license目录下即可,默认目录为C:Program FilesCOSMICCXSTM8_32Klicense。
2-4 COSMIC注册信息填写
注意:
1)在填写时,注意Country中一定要注明国家或地区,如China
2)建议用英文书写。
3)默认的邮件程序,可通过Internet ExplorerTool菜单下的‘Internet Option…来设置
如果在安装过程中没有申请协议,也可以在安装目录下,找到C:Program FilesCOSMICCXSTM8_32K目录(默认安装目录)下面的lmreg32k.exe文件,运行此文件也可以进行注册取得协议文件。        
另外,一个更简单的方式就是直接书写并发送一个e-mail,来获得协议文件。E-mail书写的例子如下:
说明:
发送至:stm8_32k@cosmic.fr
标题:STM8 32k License Request
Registration Information for: 需要用户根据自己的信息填写。
Product Information可以运行lmreg32k.exe文件后自动获得
不同的用户、不同的计算机“Registration Information for”和“Product Information”是不同的。一个license文件只允许一台计算机使用。
2.1.3  IAR
IAR Systems推出开发工具“STM8系列嵌入式设计工作台”(EWSTM8),支持8位微控制器市场主流的STM8系列产品,如图2-5所示。IAR EWSTM8嵌入式设计工作台提供一整套开发工具,包括一个项目管理器、编辑器和项目创建工具(C语言编译器和链接器)。该工作台还为开发人员提供调试功能,可以连接意法半导体价格低廉的在线调试器ST-LINK以及先进的高端仿真器STice
2-5  IAR开发工具
IAR提供8K代码限制和30天评估版的C编译器。可从www.iar.com网站上直接下载。
软件下载后,运行其安装程序安装IAR集成开发环境。
IAR集成开发环境界面如图2-6所示。
2-6  IAR运行界面图
2.2  STM8开发工具
目前,有两款开发工具可以支持STM8的开发:STX-RLINKST-LINK。 其中ST-LINKST研发的开发工具,支持STM32STM8 两个产品系列的仿真调试。
2.2.1  ST-LINK
ST-LINK 是在线调试器和编程器,可用于STM8系列和STM32系列的设计开发生产。
ST-LINK提供的接口如表2-1ST-LINK 目前支持的开发环境如表2-2ST-LINKSTM8系列对应的引脚连接如表2-3
2-1 ST-LINK提供的接口
接口方式
描述
SWIM
用于开发STM8系列产品
JTAG
用于开发STM32系列产品

2-2 ST-LINK 目前支持的开发环境
开发环境
描述
ST Visual Develop (STVD)
用于开发STM8系列产品
IAR EWSTM8
用于开发STM8系列产品
COSMIC
用于开发STM8系列产品

2-3 ST-LINKSTM8系列对应的引脚连接
ST-LINK引线
STM8的引脚
TVCC线
MCU VCC 电源引脚
SWIM线
MCU SWIM引脚
GND线
MCUGND电源地
SWIM-RST
MCU 复位引脚

目前有两种不同版本的STLINKSTLINK IIISTLINK V2STLINKV2STLINKIII的升级版本。低版本STVD 4.1.1开发环境不支持STLINKV2,而STVD 4.3.3版本支持两种STLINKSTLINKV2仿真STM32STM8芯片时的速度比STLINKIII也有明显优势。STLINKV2支持SWDJTAG模式仿真STM32STLINKIIIU盘驱动,一般操作系统不需要单独安装驱动程序,直接连入电脑即可使用。而STLINK V2需要安装驱动程序才能仿真芯片。STLINKV2驱动完成后,可在安装目录下查看STLINKV2的用户手册。另外,本书附带光盘中,附有驱动文件和“STLINK V2安装使用详解.pdf”。购买本书的读者均可在光盘中直接按文档中的讲解安装驱动程序和仿真STM32STM8芯片。
用户购买STLINKV2时,可以向卖家索要驱动程序,也可以从ST官网直接下载。
2-7为一种常用的STLINK V2仿真器实物图。
2-7  STLINK V2实物图
2.2.2         STX-RLINK
STX-RLINK 是Raisonance公司提供的第三方开发工具,如图2-8所示。STX-RLINK 是一个低成本的调试器和编程器,可以支持STM32, STR9,STR7,STM8,ST7和uPSD系列的设计开发生产。STM8 使用SWIM接口调试和编程。
2-8 STX-RLINK实物图
STX-RLINK 连接如图2-9所示。





2-9 STX-RLINK 连接
注意:
1)如果在目标板上没有上拉电阻,SWIMDATA上需要增加一个2K2的上拉电阻。
2)需要在目标板上外加5V电源
2.3  STM8程序设计
STVD开发环境提供了一个免费的汇编编译器,用户可直接使用汇编语言在STVD中编写汇编程序。如果使用C语言编写程序,可COSMIC C编译器外挂于ST TOOLSET中,使用STVD进行产品的开发。
2.3.1         STVD汇编语言程序设计        
程序设计主要包括包括工程的建立、工程的编译和调试几个阶段。
1.工程创建
从开始菜单启动ST Visual Develop(STVD)。从菜单中选择“File->New Workspace…”,如图2-10所示。
2-10 STVD创建Workspace
在出现如图2-11所示的对话框中,选择“Create workspace and project”,点击“确定”。
2-11 选择Create workspace and project
在新出现的对话框中,“Workspace filename”编辑框中输入workspace名字,如demo,选择“workspace”保存的路径,如c:stm8asm,如图2-12所示。点击“OK”。
2-12 输入Workspace名称
在新出现的对话框中,“project filename”中输入project名字,如:demo。在“Project location”中选择project保存的路径,一般与“workspace”保存在同一个目录下。选择工具链“Toolchain”,如: ST Assembler Linker,ST AssemblerST提供的免费的汇编编译器。“Toolchain Root”一般是默认安装的。如果在ST TOOLSET安装过程中改变了安装目录,需要确认安装路径。相关设置如图2-13所示:
2-13 设置编译器安装路径
点击“OK”,在新出现的“MCU Selection”对话框中,选择MCU型号。可以在空白框中输入型号中的部分字符可快速筛选目标型号。点击“Select”按钮,再点击“OK”,即设置完成。如图2-14所示。
2-14 选择芯片型号
至此,workspaceproject 创建完成。
用户需要修改并添加自己的汇编代码。完成后界面如图2-15所示。
2-15 STVD创建工程界面图
STVD项目中自动添加了main.asm, mapping.asmmapping.inc 文件。其说明如表2-4
2-4 main.asm, mapping.asmmapping.inc 文件说明
文件
说明
main.asm
- 基本的程序架构
- 文件中包含了中断向量和中断函数(NonHandledInterrupt),用户可根据此进行参考修改
- 清RAM0,RAM1和清堆栈程序。用户可删除此部分程序,自己进行变量的初始化。建议在程序开始时对自己定义的变量初始化。
mapping.asm
定义了段的名字和地址(ram0, ram1, stack, eeprom, rom, vectit)
mapping.inc
定义了段(ram0,ram1,stack)的起始和结束地址

从安装目录下,如默认安装目录“C:Program FilesSTMicroelectronicsst_toolsetasminclude” 找到相关MCU型号的寄存器定义文件拷贝到当前工程目录下(本例中用到STM8S207C_S.ASM STM8S207C_S.INC),并添加到工程项目中。添加后的workspace如图2-16所示:
2-16 Workspace 信息
用户可以根据自己的要求,修改main.asm
在修改中断时,先在中断向量表中找到对应的中断地址,把NonHandledInterrupt中断名字修改成自定义的中断名字,其他部分不需要修改。然后定义一个中断函数。如表2-5所示和表2-6所示。
2-5 中断定义说明

;自定义中断函数
interrupt My_Interrupt_Name
My_Interrupt_Name.l
;
;…中断处理代码
;
Iret

;中断向量表
segment 'vectit'
        dc.l {$82000000+main}                                ; reset
        dc.l {$82000000+ My_Interrupt_Name}        ; trap
    ;…
    ;其他中断
    ;…
end

说明:
dc.l {$82000000+main},复位向量在复位后直接跳转到main处执行。

2-6 源文件main.asm
stm8/   ; 第一行必须保留而且要顶格写.指定目标单片机的指令集
;* 包含文件
#include "mapping.inc"
        #include "stm8s207c_s.inc"

Include区

;* 常量定义
     #define MYDF1  3
MYCNT1        EQU        2

常量区

;/* ram0区变量定义
segment 'ram0'   ;从此行以后是 ram0变量
MY_RAM0_VAR1              DS.B 1   ;保留1个字节的变量空间

RAM0变量区

;/* ram1区变量定义
        segment 'ram1'   ;从此行以后是 ram1变量区
MY_RAM1_VAR1                DS.B 128  ;定义128个字节的一组变量空间

RAM1 变量区

;* 主程序(ROM)
        segment 'rom'  ;从此行以后是 rom代码区
main.l                          
        ; 初始化
main_loop.l
     ;……
        JRA main_loop



主程序区



Subroutine.l
     Ret

子程序区
;* 中断程序
        interrupt NonHandledInterrupt
NonHandledInterrupt.l
        Iret

中断程序区


;*中断向量映射
        segment 'vectit'
        dc.l {$82000000+main}                                ; reset
        dc.l {$82000000+NonHandledInterrupt}        ; trap
        dc.l {$82000000+NonHandledInterrupt}        ; irq0
        ;……
        dc.l {$82000000+NonHandledInterrupt}        ; irq28
        dc.l {$82000000+NonHandledInterrupt}        ; irq29
        end





中断向量映射



2.工程编译
源程序编辑完成后,可选择菜单栏“Build->Rebuild All”,编译工程。如图2-17所示。



未完待续。。。

`

0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /7 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-11-20 07:07 , Processed in 0.617388 second(s), Total 56, Slave 40 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表