STM8在Linux下的开发简介 (stm8 linux)
随着技术的不断发展,物联网技术已经逐渐成为了未来发展的重要方向。作为物联网设备的核心,微控制器开始受到各行业的广泛应用。而在微控制器中,STM8由于其稳定性、性能和成功的应用案例在市场上拥有较高的知名度,成为了许多物联网设备的首选。
然而,在STM8的开发环境中,由于其软件相对较昂贵,许多开发者需要投入较大的开发成本。在这样的情况下,许多开发者开始关注开源软件的使用,并且开始在Linux系统下开展STM8的开发工作。
在本文中,我们将介绍在Linux系统下开发STM8的一般过程。
1. 准备工作
在进行STM8开发工作之前,我们需要准备一些必要的工具和软件,以支持我们进行STM8的编程和调试工作。下面是我们需要准备的工具和软件列表:
1.1 针对STM8的编译工具
在开发STM8的过程中,我们通常使用的编译工具是IAR Embedded Workbench for STM8。但是这一软件相对较昂贵,因此在Linux系统下我们可以使用开源编译器SDCC。
1.2 调试工具
针对STM8的调试工具通常是ST-Link/V2,它可以帮助我们进行编程和调试工作。在Linux系统下,可使用stlink命令行工具或者QTStlink软件。
1.3 开发板
当然,我们还需要一款STM8开发板,以进行我们的开发和测试工作。
2. 安装和配置SDCC
SDCC是一款基于开源的C语言编译器,它支持许多处理器和MCU的开发和编译工作。在开始STM8的开发工作之前,我们需要安装SDCC的开发套件,在Linux下,安装SDCC开发套件非常简单。
我们可以通过如下命令,安装SDCC开发套件:
$ sudo apt-get update
$ sudo apt-get install sdcc
安装完成后,我们需要进行SDCC的配置工作,使其支持STM8的编译工作。我们需要执行以下命令,进入SDCC的配置文件目录:
$ cd /etc/sdcc
$ sudo nano sdcc.conf
在配置文件中,我们需要添加如下代码:
mcs51:
mcs51-gcc
stm8:
mcs51-gcc -DSDCC=1 -D__SDCC_STM8__ -DSTM8103
保存并退出配置文件。现在,SDCC已经被正确配置,并支持STM8的编译工作了。
3. 使用SDCC开发STM8程序
在SDCC的开发中,我们可以使用任何文本编辑器进行程序的编写工作。在Linux系统下,我们可以使用vim、nano等文本编辑器进行开发工作。
为了编写我们的STM8程序,我们需要了解STM8芯片的数据手册并研究它的引脚布局、寄存器和中断表等内容。
下面是一个简单的STM8程序:LED 灯闪烁程序。
#include
/* 定义端口为P1.0的Led */
__it __at(0x90) LED;
void delay(void);
void mn(void)
{
/* 将P1.0设为输出 */
LED = 0;
/* 进入循环 */
while(1)
{
/* LED 变亮 */
LED=1;
/* 延迟一段时间 */
delay();
/* LED变暗 */
LED = 0;
/* 延迟一段时间 */
delay();
}
}
/* 延迟函数 */
void delay(void)
{
long int i;
/* 计数器初始值 */
i = 30000;
/* 计数器递减 */
while (i–);
}
在编写完STM8程序后,我们可以使用SDCC进行编译工作,使用以下命令可以进行编译:
$ sdcc -mstm8 -o test.hex test.c
编译完成后,我们需要使用以上介绍的调试工具对程序进行烧录和调试工作。
4. 调试STM8程序
在Linux系统下,我们可以使用图形界面工具QTStlink或者命令行工具stlink进行STM8程序的调试工作。
4.1 使用QTStlink
QTStlink是一款可视化的STM8调试工具,它可以帮助我们进行烧录和调试STM8程序。在使用QTStlink之前,我们需要确保ST-Link/V2驱动已成功安装到系统中。
使用以下命令进行QTSTlink的安装:
$ sudo apt-get install qtstlink
安装完成后,我们可以通过以下命令启动QTStlink:
$ qtstlink
启动后,在QTstlink程序的窗口中,我们可以进行STM8程序的烧录和调试工作。
4.2 使用stlink命令行工具
stlink是一款命令行工具,它可以帮助我们进行STM8程序的编程和调试工作。在使用stlink之前,我们需要使用以下命令进行安装:
$ sudo apt-get install stlink-tools
安装完成后,我们可以使用以下命令进行STM8程序的编程和调试工作:
$ st-flash write test.hex 0x8000
以上命令将可使得STM8程序被成功烧录到相应的单片机中。