历史上的今天
今天是:2024年11月04日(星期一)
2021年11月04日 | LoRa终端的MCU STM8编程需要知道的那些事情
2021-11-04 来源:eefocus
由于我们选用的LoRa终端模组ASR6505集成的MCU是STM8L, 因此有必要对其有一些基本的认识,以便于接下的编程和代码的理解。
目录:
1. 什么是STM8 MCU
2. STM8与STM32的主要区别
3. STM的主要功能特性
4. STM8内部的功能模块
5. STM8的内存地址映射
6. STM8的中断向量表
1. 什么是STM8 MCU
STM8系列是意法半导体公司(ST)生产的8位的单片机。该型号单片机分为STM8A、STM8S、STM8L三个系列。
STM8A:汽车级应用、STM8S:标准系列、STM8L:超低功耗MCU。
内核:ST自研的高级STM8内核,具有3级流水线的哈佛结构
指令集: CISC复杂指令集(相对于精简指令集RISC, 如ARM)
存储器
程序存储器:8K字节Flash;10K 次擦写后在55°C环境下数据可保存20年
数据存储器:640 字节真正的数据
EEPROM;可达30万次擦写
RAM:1K字节
2. STM8与STM32的主要区别
虽然STM8和STM32都是意法半导体公司(ST)生产的同系列的微处理器,但其实其CPU架构和指令集是完全不同的。也正因为如下,STM8需要特定的集成开发工具和特定的C语言编译器,也正因为如此,集成开发工具是IAR for STM8,而不是IAR for ARM.
STM8 CPU 是一种专有架构,它保持了以前的 STM7 内核的传统,同时在 8 位 CPU 效率和代码密度方面实现了突破。
STM32 围绕行业标准 ARM® Cortex-M 32 位内核构建,并受益于与 ARM 处理器有关的开发工具和软件解决方案的完整生态产业环境。
尽管它们被认为是两种完全不同架构的处理器,但考虑到同一家公司的产品,在用户使用习惯的一致性,它们在设计方面实际有许多相似之处,下面对比STM8S 和 STM32F1 (Cortex-M3)这两种内核异同:

从上述可以看出,STM8和STM32除了指令集有大的差别,在设计上,保持了极大的继承性和一致性,主要的差别主要在其性能上的差别。
两种内核均基于哈佛架构,它们采用 3 级流水线执行,可将执行时间降至最低,
对于 STM8S,时钟速度高达 24 MHz,对于 STM32F1系列,时钟速度高达 72 MHz。
在代码密度方面,它们均有优异的表现,这归功于 STM8S 系列的 8 位 CISC 指令集以及 STM32F1系列的 Cortex 内核引入的 16 位 Thumb-2 模式。
3. STM的主要功能特性

Flash:用于存储程序=> 64K. 因此STM8很难实现大的程序代码或协议栈代码。
Data EEPROM: 用于存储用户的永久性配置数据=>2K-1K.
RAM: 用于存放程序执行过程中的动态数据=>2K
LCD: LCD接口
Timers:定时器,由于STM很难支持OS, 因此定时的功能通常需要通过硬件定时器完成, STM8L提供了1个8bit的基本定时器,3个16bit的通用定时器,一个16bit的高级控制的定时器。
定时器在单片机编程中其着非常重要的功能。
连接外设的接口:2个SPI master, 1个I2C master, 2-3个 uart串口控制器。
GPIO: 通用的输出输入接口。

ADC和DAC: 数子到模拟信号转换和模拟信号到数字信号的转换
Comparators:比较器,用来比较两个数据的大
watchdog:软件看门狗,防止程序死机,需要程序定期的喂狗,确保看门狗不复位系统。
CPU的频率:16MHz
操作电压:低功耗电压1.8-3.6V
操作温度:-40- +85/105/125.
4. STM内部的功能框图:
STM8 core通过标准的内部的地址、数据、控制总线连接所有外设的控制器,并通过统一编址的地址来访问的。


5. STM8的内存地址映射


在上图中,可以看出,程序是存放在0x00 8000-0x01 7FFF 8K的Flash地址空间内。
特别需要注意的是,位于0x00 8000-0x00 807F处的128字节的复位和中断向量表也存放于此。
包括程序的复位后的第一条指令存放于:0x00 8000。
因此,STM8的终端服务程序在Flash(而不是RAM)中的位置,是在编译的时候就确定下来的,而不是动态加载的。
6. STM8的中断向量表



参考:
(1)STM8单片机入门:https://wenku.baidu.com/view/16dae952ac51f01dc281e53a580216fc710a5316.html
(2)STM8L官网:https://www.st.com/zh/microcontrollers-microprocessors/stm8l152m8.html
(3)STML官网手册:https://www.st.com/resource/en/datasheet/stm8l152m8.pdf
(4)CSDN下载:https://download.csdn.net/download/HiWangWenBing/12666208
史海拾趣
|
复杂嵌入式系统已日益普及并成为我们日常生活的一部分。一辆汽车平均包含80个每秒能执行上亿条指令的嵌入式处理器。以一个单独的DSP上以软件方式实现移动调制解调器的配置为例,现在的手机包含2到4个处理器。 然而随着嵌入式系统日益普及,设计危机 ...… 查看全部问答> |
|
附件里包括 PCB设计技巧百问.pdf protel99-se.pdf PROTEL 软件使用的误区及几个不易搞清的概念.pdf Protel同类修改.pdf 在Protel DXP中建造自己的原理图库.doc… 查看全部问答> |
|
我这个工程是在VS2005下的CE6.0工程,我发现我无法加入.h文件。我点击右键增加已存在文件,就是加不进工程里面。请问是什么怎么回事?… 查看全部问答> |
|
采用三菱PLC 型号F1-20MR 程序如下 接线图、和梯形图在以下地址,在IE输入这个地址就可以打开 http://bbs.21ic.com/upfiles/img/20074/2007419161818884.jpg 1.请问PLC的程序中A 、B、C、D、E段梯形图每 ...… 查看全部问答> |
|
一、开关电源工作原理 1、开关电源是一种高频开关式的能量变换电子电路,常作为设备的电源供应器,常见变换分类有:AC-DC、DC-DC、DC-AC 等。 2、开关电源原理框图 (1) 市电进入电源后,首先经过是最前级的EMI 滤波电路部份, ...… 查看全部问答> |
|
这个板子资源 GPS LEA-5A (ublox的) SD卡卡座, 2440 K9F1G08 HY57V561620FTP x2 LCD接口。 音频接口。 SD卡接口。 串口。 jtag口。 USB dev USB host 电源管理芯片。 nboot说明 支持SD卡升级 调试程序。比如你要升级引导程序或者win ...… 查看全部问答> |
|
大多情况下Labview 与单片机间的通信大多数都是通过串口通信,但是要注意Labview 的串口通信是属于VISA模块,可惜LabView 默认情况下是不安装VISA驱动的,所以要手动安装驱动在官网的 资源与服务->NI Drivers -> NI VISA。 ...… 查看全部问答> |




