历史上的今天
返回首页

历史上的今天

今天是:2025年02月20日(星期四)

正在发生

2021年02月20日 | STM8+开发环境、最小项目工程、最小系统

2021-02-20 来源:eefocus

一、STM8开发环境



使用STM8需下载下列工具:



1、ST 8bit MCU通用集成开发环境 - ST Visual Develop

http://www.st.com/stonline/products/support/micro/files/st7toolset.exe



IDE包含代码编辑、汇编编译器、代码调试功能,不含C编译器。同时IDE还自带ST Visual Programer编程软件,支持主流8bit


2、COSMIC C Compiler for STM8 16K Limited


http://www.cosmicsoftware.com/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工程。

1

在弹出的“New WorkSpace”对话框中,我们可以STVD支持的集中工程模版类型。这里我们选择使用“Create workspace and project” 。

2

WorkSpace是Project的管理平台,允许在一个WorkSpace中出现多个Project,通过设定我们可以选择当前的活动项目。

3

输入当前要建立的项目名称,并且可以根据应用的需要通过“Project location”来选择更改WorkSpace存放路径。因这里介绍的例程我们需要支持的MCU平台是STM8系列,C语言使用COSMIC,因此我们还需要对使用的Toolchain进行选择。

4

下一步我们要选择工程使用的MCU型号。

5

在对话框中我们可以看到当选中一个MCU型号,在右边的工具列表清单中会显示调试工具支持状态,绿色表示工具可以支持,灰色表示不支持。这里仅是提供调试或仿真支持,不表示编程支持,具体编程支持需要通过STVP编程软件确认。



这样一个最小的应用工程模版STVD就帮我们自动产生了。

6

IDE界面右边的项目目录树中,我们可以看到STVD对工程自动增加了两个文件,一个是main.c文件,一个是stm8_interrupt_vector.c文件。后者提供了STM8所有的中断入口函数的地址表,以及用于各种不同类型外设中断函数名称申明。



在stm8_interrupt_vector.c文件中,我们可以看到除去Reset向量外其它中断向量的入口均是统一使用void NonHandledInterrupt (void)函数。对于正常的使用我们还是需要重新跟改中断函数入库函数名称。


0x82 是stm8的中断指令,后面是中断向量,如果是库函数版本,中断函数在stm8a_it.c里面。

7

对于中断函数的入口修改:

1、struct interrupt_vector const _vectab[]指明的中断向量表,每一个类似{0x82, NonHandledInterrupt},偏移量的申明表示的都是一个中断矢量对于的中断函数名称。


2、 中断函数的申明@far @interrupt void NonHandledInterrupt (void)


例当需要使用I2C中断的时候,可以这样做:

1、申明I2C中断函数名称:

在struct interrupt_vector const _vectab[]中找到I2C中断函数入口,加入I2C中断函数名称

{0x82, I2C_Server_Interrupt }, /* IRQ19 - I2C (I2C interrupt) */


2、在stm8_interrupt_vector.c文件中添加服务函数:

@far @interrupt void I2C_Server_Interrupt (void)


{

~~~~~加入中断服务代码~~~~~~

return;

}



3、最好在文件头上方申明外部可调用:extern void I2C_Server_Interrupt (void)



4、或者仅是申明函数,再定义STM8_IT.c、STM8_IT.h文件,将中断服务程序全部放置其中。



工程建立好以后,可以通过菜单栏“Project”->“Settings”来修改项目配置

8

在项目设定对话框中,我们可以对汇编编译器、C编译器、连接器的配置做修改。


当写好一个程序需要进入调试时,我们可以通过STVD菜单栏的“Debug Instrument” 来选择使用何种调试工具。这里我们使用Rlink,SWIM接口。Simulator是指软仿真功能。9

Tip:

1、项目编译默认存在Release、Debug两种选择。如需要自行添加其它类型,可通过菜单栏“Build->Configurations…”来配置。

10

11

配置好后可通过工具栏“Project”来直接选择。

12

2、WorkSpace管理多个Project

直接在WorkSpace栏中通过鼠标右键打开workspace的属性,通过“Insert Project int Workspace…”可以在添加多个项目。

13

二、STM8S的最小硬件系统

STM8的最小硬件系统包含下列部分:

1、电源

2、时钟管理

3、复位管理

4、调试接口(SWIM)

1、电源(以stm8s207R8T6 64脚为例)复位引脚 接4.7k电阻接电源复位引脚 接0.1nF电容接地6脚接4.7nF接地7,8,18,19,40接电源


4,5,20,21,39接地58脚为swim下载调试

STM8S系列MCU的工作在3.0V ~ 5.5V之间,芯片内部自带一个电源管理系统可以为自身核心工作提供1.8V电源。

点击下载STM8 for COSMIC 最小工程 :STM8 C Templet no reg.rar


工程含中断、入口函数、不含硬件寄存器描述文件。

需要特别注明:ADC1/ADC2、UART2/UART3。


注:STM8的堆栈开始地址?


不同容量的Flash,堆栈起始地址是不相同的,具体可以看STM8S Microcontroller Family Reference Manual 的Memory and register map章节。


当中断发生时,MCU会自动压栈下列寄存器:CC, A, X, Y, PCE、PCH、PCL,9个字节,共耗用9个CPU周期。

14

推荐阅读

史海拾趣

无锡友达公司的发展小趣事

随着产品性能的不断提升和市场需求的扩大,无锡友达开始积极拓展国内外市场。公司的产品不仅覆盖国内二十多个省、市,还远销欧美、中东、港澳台等国家和地区。通过与国际知名企业的合作,无锡友达不断提升自身的品牌影响力,逐渐在全球电子行业中占据一席之地。

科达嘉CODACA公司的发展小趣事

科达嘉电子创建于2001年,起初是一家专注于功率电感、共模电感的研发、生产与销售的初创企业。在电子行业激烈的市场竞争中,科达嘉凭借对电感技术的深入研究和不断创新,逐渐赢得了市场的认可。公司团队经过近二十年的努力,从一个小型创业公司发展成为拥有多家子公司的集团企业,员工总数超过900人,厂房总面积达到30000平方米。

EG & G Inc公司的发展小趣事

EG & G Inc公司成立于20世纪早期,最初专注于电子设备的研发和生产。公司凭借其技术优势和创新能力,在电子行业中逐渐崭露头角。在成立初期,EG & G Inc就与多家知名企业和研究机构建立了合作关系,共同推动电子技术的发展和应用。这些合作关系不仅为公司带来了技术上的支持,也为其在市场上的扩张奠定了基础。

GE (General Electric)公司的发展小趣事
检查机床指示灯和照明灯是否正常工作,如有故障及时更换。
Facon公司的发展小趣事

在2010年代初,随着科技的飞速发展,电子行业正迎来新一轮的创新浪潮。这时,一群充满激情和梦想的工程师在硅谷创立了Facon公司,他们怀揣着改变世界的愿景,立志在电子行业中留下自己的印记。初始阶段,Facon主要专注于研发高性能的半导体芯片,为智能手机、平板电脑等电子产品提供强大的计算能力。通过不懈努力和持续创新,Facon逐渐在市场中树立了良好的口碑。

General Diode Corp公司的发展小趣事
检查控制单元是否受到干扰或损坏,重新设置焊接参数;若问题依旧存在,则需更换控制单元。

问答坊 | AI 解惑

MPC850中复位逻辑和CPM协议切换的CPLD实现

摘要: 介绍了用CPLD辅助设计在嵌入系统中进行曲MPU复杂逻辑功能设计的总体方案,给出了通过对XC95144中复用控制寄存器进行配置以实现MPU复位逻辑和CPM协议切换的实现方案和设计要点。 关键词: MPU CPM CPLD 复位逻辑性I/O口 MPC850 1 引言 ...…

查看全部问答>

哪位好心人能提供一下winCE 6.0的源码?

rt,,网上都说100%开源了,可我下载不到,由于没有装PB,所以请好心人提供一份,非常感谢!…

查看全部问答>

能不能谈谈在MDK里面,将程序烧写到外扩norflash的流程?

例程中有个binary文件夹,里面的readme我看了的,意思是: 1.将STM3210E-EVAL_NOR.FLM文件拷贝到Keil\\ARM\\Flash文件夹下 2.Project->Options->Target窗口中,选择ROM1,开始地址输入0x64000000,大小范围输入0x1000000,然后勾选“Star ...…

查看全部问答>

请问Allegro PCB设计中连线如何画出45度角的线

请问Allegro PCB设计中连线如何画出45度角的线…

查看全部问答>

DSP外扩FLASH

DSP使用SD卡来外扩FLASH,怎么编写CMD文件?…

查看全部问答>

LPCXpresso的NXP—LINK的小板子感觉不是4层板呀!

一直以为该板子是4层的 可是今天仔细对着亮的地方看,发现.......................... 板子中间没有电源层呀!…

查看全部问答>

急需LQFP144封装

如题,试着用AD的封装设计向导设计,出来效果很不理想。人笨木有办法。时间有点急,在线等~ 希望哪位大侠能分享下LQFP144封装。…

查看全部问答>

小白跟【DIY数控电源】。。。。

       我对开关电源一点也不懂,在学校时看过几天的书。由于看不懂,很快就放弃了。最近有些时间想学一学。首先声明我真的一点不懂,肯定有很多错误的地方;还请大侠们指导。也让像我一样小白的同学,一点一点学习。  &n ...…

查看全部问答>

电子秤设计方案-值得了解

电子秤参考设计目前,高精度和低成本是衡器的发展趋势。本参考设计正是基于这两种发展趋势,提供了针对于中、高端衡器市场的电子设计。 在本设计中,提供了两种实现方案。一种是以ADI高精密、低噪声的24位sigma-delta模数转换器产品AD7799为核心的 ...…

查看全部问答>

msp430f5529开发板怎么判断LCD带不带背光啊,写程序背光没有显示

msp430f5529的背光灯,好像不是原厂的不带背光灯,我现在有一块板,程序写进去背光灯不亮,不知道怎么判断是不是原厂的呢?是不是有背光灯呢?是不是原厂的触摸按键那块的灯是蓝色的,非原厂的是红色的,先谢了啊…

查看全部问答>