STM8学习笔记1:CPU简介

发布者:Serendipitous55最新更新时间:2021-10-26 来源: eefocus关键字:STM8  CPU  底层驱动 手机看文章 扫描二维码
随时随地手机看文章

写在前面

  最近项目中涉及到一些实时性要求很高的底层驱动设计,在IAR下用C语言写完后总是感觉响应不是足够快,平时在网上会看到很多嵌入式大牛直接通过汇编来写,效果超级明显。之前在学校里接触过51的汇编,感觉又low又难懂。随着时间的推移,越来越有一种潜意识,觉得高级程序虽然有着开发效率高的特点,但有一些地方的局限还是很多大的,如果想要继续深入地了解和运用一些单片机底层的资源,能且只能通过汇编来实现。现在工作中接触的MCU主要是STM8系列,所以就从他开始吧!


STM8 简介

  意法半导体的这款8位单片机一直知名度不高,在上学时,一般耳熟能详的八位机都有PIC、51、AIR之类,STM系列也只听说过STM32,工作后接触到STM8,觉得这款芯片还是挺强大的,虽然是CISC架构,但大部分指令都能单周期内进行,更主要的是他丰富的外设,如果要求不高的话实用性完全超过了低价位的STM32芯片。


常用外设

  从官网上了解到,STM8 系列有三个大类:S(mainstream MCUs,主流MCU),L(ultra-low-power MCUs,低功耗MCU),和AF/AL(automotive MCUs,车载嵌入式系统)。S系列以其价格优势占领了不少市场,但相比于后两者而言,功能较少,适用于一些功能简单的应用场合。A系列没接触过,L系列虽然号称低功耗,但它具有丰富的外设,并且具有1个多通道DMA,你可以灵活利用他们以节约系统资源去做更多的事情。比如利用SPI和595通讯以及AD采样,只需要合理设置,然后直接向定义的全局变量赋值或者读取数据就可以了,非常方便了可以说是。


STM8资料地址
  你可以在这里下载两个重要的东西:参考手册(RM0031 Reference manual)和编程手册(PM0044 Programming manual)。其中编程手册一定要把右上角的加号点开,看准文件编号,上面那个讲Flash存储器性能的,没什么卵用。
在这里插入图片描述

DS6948_STM8L151x8,STM8L152x8,STM8L151R6,STM8L152R6单片机数据手册
DS6372_STM8L151x4,STM8L151x6,STM8L152x4,STM8L152x6单片机数据手册
  32KB和64KB产品的不同块之间的起始地址都是相同的,但大容量产品Flash,RAM和EEPROM要大一倍。

指令流水线

  三级流水线标配,大部分指令(长转移指令和16位运算以及乘除法运算指令执行时间较长)可以在单周期内执行完成。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
具体内容请参考:

PM0044_STM8单片机编程手册


寻址方式

  大部分MCU寻址可以概括为三种基本寻址方式:直接寻址,间接寻址和寄存器寻址。而STM8在此基础上衍生出了8种:

寻址方式例子
固有寻址(Inherent)NOP
立即寻址(Immediate)LD A,#$55
直接寻址(Derect)LD A,$55
索引寻址(Indexed)LD A,($55,X)
堆栈索引寻址(SP Indexed)LD A,($55,SP)
间接寻址LD A,([$55],X)
就近寻址(Relative)JRNE loop
位寻址(Bit operation)BSET byte,#5

  具体内容请参考上述文档(PM0044_STM8单片机编程手册).


指令集

  同样,文档中解释的很详细。然后有几个地方需要注意下,这里简单说说。
1. 成对的指令
 (a) 调用指令:
  CALL label; 和RET; 是一对,CALLF label; 和RETF是一对。在C编程时调用汇编函数一定要看一下C语言的编译结果,在调用汇编的时候用的是CALL还是CALLF,他们的区别是:CALL执行时,PC的低位PCL和高位PCH被压入堆栈,同样RET将PC值的高位和低位出栈;而CALLF是将三字节数据压入堆栈: PC的低位PCL,PC位的高位PCH和PC的额外位PCE,同样RETF是将以上三字节数据出栈。如果没有搭配好,程序在返回调用位置时当然会出错了。如果有幸PC值的额外位没有用到,堆栈的顺序已经乱掉了,程序基本就没法运行了。对了,STM8没有中断返回指令RETI。
 (b) 堆栈指令:
  PUSH和POP是一对,PUSHW和POPW是一对,而且两者在同一段程序中顺序也要注意,先进后出。

2. 除法指令
  除法指令能不用尽量不用,据我所知这个家伙是所有指令执行周期最长的了。用汇编的目的就是为了缩短指令执行时间,这玩意儿一加等于是一纳秒一纳秒抠出来的时间全扔了。
在这里插入图片描述
在这里插入图片描述
3. 位操作指令
  BSET和BRES可以对一个字节的数据的某个位进行操作,非常好用。但只能是RAM中的数据,CPU寄存器一个也不支持。不过这都无所谓,毕竟直接操作内存数据更方便。
在这里插入图片描述
在这里插入图片描述
  STM8内核的介绍就写这么多吧,具体的内容去看官方的参考手册,不仅内容详细,而且内容详细。。。


ps:新版CSDN文本编辑器真坑,图片调不了大小,排版丑的。。。哎凑合写写吧,还要众筹出书咋地。。。


关键字:STM8  CPU  底层驱动 引用地址:STM8学习笔记1:CPU简介

上一篇:STVD+Cosmic搭建STM8开发环境
下一篇:找STM8固件库的方法

推荐阅读最新更新时间:2024-11-06 11:10

Intel新CPU将集成WiFi:所有PC标配无线
  前不久, Intel  14nm低功耗Gemini Lake处理器曝光,CNVi(Connectivity Integration Architecture)单元首次浮现,也就是 Intel 将在这颗SoC中集成Wi-Fi、蓝牙和调制解调器模块(3G/LTE)。下面就随嵌入式小编一起来了解一下相关内容吧。     据德国CB报道, Intel 近日推出了9560 AC双频无线模块,其中嵌入式的称之为9520。        换言之,这将是Intel首次将部分Wi-Fi单元到处理器中,将从今年末发布的Cannon Lake和Gemini Lake开始使用。        Cannon Lake可能因为10nm工艺更加先进
[嵌入式]
英特尔向Facebook和eBay提供定制CPU
    英特尔于2013年7月22日(当地时间)宣布,该公司在向Facebook和eBay等云服务运营商提供定制处理器(照片1)。据介绍,英特尔正在向运行大量服务器的云服务运营商提供功耗效率高于普通产品的处理器。        这是在英特尔7月22日于美国旧金山举行的数据中心业务记者说明会上,该公司云计算基础架构事业部总经理Jason Waxman公布的。Waxman介绍说,英特尔从五年前就开始向云服务运营商提供定制CPU。此次只介绍了Facebook和eBay这两家客户,实际上英特尔还在向谷歌等其他云服务运营商提供定制CPU。        英特尔计划在今后还要加强与运营庞大数据中心的云服务运营商之间的合作,原因是云服务运营商
[手机便携]
STM8S103 1 segment .bss size overflow (67)错误处理
可以在STVD 的IDE里改 project - setting - linker -category(input) 把Ram的空间改大一些
[单片机]
STM8S103 1 segment .bss size overflow (67)错误处理
威盛首度回应英特尔AMD和解案
  日前,持续多时的英特尔垄断案终于和气收场。上周,据外媒报道,英特尔与AMD宣布共同达成全面和解。英特尔将于向AMD支付12.5亿美元,而AMD将撤销对英特尔在全球范围内向当地监管部门提出的所有控诉。虽然有部分业界人士认为,两大巨大之间的和解会对双方有利,甚至对整个半导体行业发展也是一个利好消息。    但也有业界人士认为这一和解案也有可能造成联手垄断的可能性,律师游云庭认为和解行为让英特尔在近期一系列垄断相关诉讼中受到的打击程度降低,同时他希望中国商务部对英特尔与AMD和解协议进行审查,这份和解协议可能意味着双方将在市场上联手垄断,这将危害到威盛、龙芯等中国CPU的生存空间。    昨日午间,威盛全球副总裁,中国区行政长
[嵌入式]
MYIR推出采用NXP i.MX 8M Mini的CPU单板电脑
MYIR日前推出集成NXP i.MX 8M Mini的ARM SoM MYC-C8MMX CPU单板电脑,i.MX 8M Mini是采用14LPC FinFET工艺制造的嵌入式多核异构处理器,内置4核1.8GHz Arm Cortex-A53和400MHz的Cortex-M4处理器。该模块可运行Linux,Android OS,并且可以在-40°C至85°C的工业温度范围内工作。 MYC-C8MMX CPU模块尺寸为60mm x 49mm,包括CPU,2GB DDR4,8GB eMMC,32MB QSPI闪存,GigE PHY和PMIC集成的最小系统。所有控制器信号均通过两个0.8mm间距100针扩展连接器输出。 MYIR提供用于
[嵌入式]
STM8 中断映射
下面表格列出了中断映射: (表16:STM8中断映射)
[单片机]
<font color='red'>STM8</font> 中断映射
基于STM8单片机的蜂鸣器和弦声音的设计
1. 实验功能:本实验的功能是利用STM8单片机控制蜂鸣器发出和弦声音。 2. 电路原理:按键接PB2口,蜂鸣器接PD4口,当按下按键时STM8利用TIM2的PWM模式驱动蜂鸣器就发出“123”的和弦声音。 3. 采用IAR FOR STM8开发环境,外部晶振16M。 4. 程序代码如下: /******************************************************************************** * 文件名称:STM8_Buzzer.c * 开发环境:IAR FOR STM8 1.20 *****************************************
[单片机]
stm8 IAR 编译错误Fatal Error[Cp001]
致命错误Cp001:复制保护检查,没有为该产品找到有效的许可证。 这表明,安装软件时,破解软件的序列密码没有全部大写,或者没有右键以管理员身份运行安装
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved