Linux命令行51单片机汇编语言开发环境搭建和开发入门:vim+as31+emu8051 您所在的位置:网站首页 单片机开发ide Linux命令行51单片机汇编语言开发环境搭建和开发入门:vim+as31+emu8051

Linux命令行51单片机汇编语言开发环境搭建和开发入门:vim+as31+emu8051

2024-06-27 03:21| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Linux纯命令行51单片机汇编语言开发环境搭建:vim+as31+emu8051 Keil?一、工具介绍as31关于8051汇编语言的标准 emu8051vim配置 二、工具安装三、编写汇编程序四、编译得到hex文件三、仿真验证尝试gui仿真1 准备工作2 导入hex文件3 界面元素介绍4 开始调试 命令行仿真

Keil?

如果你已经查阅了一些关于使用汇编语言进行51单片机开发的资料,你会发现他们大多使用了keil作为开发ide。客观的说,keil作为一个入门ide有其不可替代的优势。使用keil你可以几乎不去关心代码的编译过程和环境的配置,这显然是对新手入门极其友好的。

但是,如果你深入希望了解单片机结构,或者你是一个已经有相当的开发经验,希望提高开发效率并深入底层,又或者你希望使用linux进行51单片机的开发,那么keil不甚良好的扩展性和无法跨平台的特性就显得有些不合时宜了。因此,本文介绍了在linux下进行8051单片机汇编语言开发的编译和仿真工具。

一、工具介绍 as31

as31是一个linux下的命令行汇编语言编译工具,遵循intel 8051标准。 其manal页面如此描述:

DESCRIPTION As31 assembles infile.asm into one of several different output formats. The output will be in a file called infile.obj. The .asm extenstion is required. As31 将 infile.asm 汇编成几种不同的输出格式之一。输出将位于名为 infile.obj 的文件中。 .asm 扩展名是必需的。

关于8051汇编语言的标准

8051汇编语言有多种标准,常见的如:

intel 8051: 8051微控制器的原始汇编语言,由Intel设计。 keil 8051: 是Intel 8051的超集,添加了一些额外的指令和功能。但基本语法与Intel 8051兼容。 其他: SDCC 8051、Hi-Tech 8051…

as31使用intel标准的intel 8051汇编,如果你尝试使用它进行编译使用keil汇编语言编写的程序,你会得到一堆的错误 : ) 因此,如果你的程序在编译是出现了语法错误,请检查你的程序是否遵循了intel 8051汇编语言的标准。 你可以使用man as31查看as31支持的汇编语言语法格式。 在这里插入图片描述

emu8051

emu8051是linux下的8051 单片机的仿真器和模拟器,主要用于程序的仿真验证。 它同时具备命令行模式和gui模式,你可以在命令行使用emu8051-cli使用命令行模式,emu8051-gtk使用gui模式。 在这里插入图片描述 在这里插入图片描述 其manal页面:

DESCRIPTION emu8051 is a simulator/emulator for the Intel 8051 family of microcon‐trollers. It is available in two versions: a console (text-only) ver‐sion and a graphical version (using the GTK+ toolkit). This is an Open-Source project. The program can load Intel HEX files. Once loaded, a program can be run (it will run indefinitely or until a breakpoint is encountered). You can also use the STEP button to execute only a single instruction at a time and see the effects on registers and memory. It is written in C++, and uses Perl scripts to generate automatically C++ functions corresponding to each assembly instruction of the 8051 microcontroller. emu8051 是 Intel 8051 系列微控制器的模拟器/仿真器。 它有两个版本:控制台(纯文本)版本和图形版本(使用 GTK+ 工具包)。 这是一个开源项目。 该程序可以加载 Intel HEX 文件。 一旦加载,程序就可以运行(它将无限期地运行或直到遇到断点)。 您还可以使用 STEP 按钮一次仅执行一条指令,并查看对寄存器和内存的影响。 它是用C++编写的,并使用Perl脚本自动生成与8051微控制器的每条汇编指令相对应的C++函数。

vim配置

本文假定你已经接触过vim,如果你想了解vim的基本使用,请搜索vim相关文章。

一般来说,汇编文件不太需要语法检查。 如果你已经开启vim的语法检查功能,在asm中你可能会因为检查规则不正确得到莫名其妙的报错,如果你遇到了这一问题,你可以在你的vimrc文件中添加let g:syntastic_mode_map = { 'mode': 'active', 'passive_filetypes': ['asm'] }以关闭asm文件的语法检查功能。

二、工具安装

在debian系的linux发行版中,您可以使用apt工具进行安装。

sudo apt install as31 emu8051 三、编写汇编程序

作为例子,我们使用vim编写一个交换字节高低位并赋给其他地址的程序,源码如下: 在这里插入图片描述

四、编译得到hex文件

使用as31进行编译 在这里插入图片描述 编译成功。 可以看到得到了hex文件,这就是我们的输出了。

三、仿真验证 尝试gui仿真

首先尝试使用gui界面,如果你想使用命令行请跳过这一段。

在命令行使用emu8051-gtk打开gui界面。

1 准备工作

为了方便我们观察,我们选择页面顶部的view -> layout -> layout2并重启emu8051。 在这里插入图片描述 在这里插入图片描述

2 导入hex文件

左上角选择File -> Open Intel Hex file 在弹出的窗口中找到我们刚刚生成的hex文件并点击确认。 这样我们的hex文件就成功导入了。

3 界面元素介绍

我们可以看到界面分为4个区:分别是 Registers: 寄存器 Program: 程序,即我们的汇编程序 Internal memory: 内置存储 External memary: 外置存储

左上角有四个按钮:从左向右依次为复位、运行、停止、单步运行。

按钮右侧为PSW寄存器和仿真时间。

4 开始调试

我们在IRAM中将0000H的值改为7F,开始运行。 等待一段时间,点击停止。 可以看到程序运行成功。 在这里插入图片描述

命令行仿真

在命令行输入emu80051-cli打开命令行仿真器: 在这里插入图片描述 完成仿真。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有