Linux命令行51单片机汇编语言开发环境搭建和开发入门:vim+as31+emu8051 | 您所在的位置:网站首页 › 单片机开发ide › Linux命令行51单片机汇编语言开发环境搭建和开发入门:vim+as31+emu8051 |
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 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单片机汇编语言开发的编译和仿真工具。 一、工具介绍 as31as31是一个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是linux下的8051 单片机的仿真器和模拟器,主要用于程序的仿真验证。 它同时具备命令行模式和gui模式,你可以在命令行使用emu8051-cli使用命令行模式,emu8051-gtk使用gui模式。 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编写一个交换字节高低位并赋给其他地址的程序,源码如下: 使用as31进行编译 首先尝试使用gui界面,如果你想使用命令行请跳过这一段。 在命令行使用emu8051-gtk打开gui界面。 1 准备工作为了方便我们观察,我们选择页面顶部的view -> layout -> layout2并重启emu8051。 左上角选择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 实验室设备网 版权所有 |