Ubuntu 20.04下配置 HAL 汇编开发环境教程

2023-05-16

目录

      • 安装
        • 解压
        • 配置环境变量
        • 测试
      • 案例

安装

环境:Ubuntu 20.04

安装包:linux64.hla.tar.gz

这里安装的是64位的,具体与linux.hla.tar.gz有什么不同,没研究过。

解压

可任选目录,本文在我的用户目录/home/nqw下解压。

$ tar -xvf linux64.hla.tar.gz

解压后会自动创建子目录/usr/hla,文件都保存在这个目录下。其中code文件夹是笔者自己添加的,用来保存以后编写的代码。

在这里插入图片描述

配置环境变量

$ gedit ~/.bashrc

在打开的文件末尾,添加如下内容,主要是配置hla的可执行文件路径、库路径、头文件路径等。

PATH=/home/nqw/usr/hla:$PATH
export PATH
hlalib=/home/nqw/usr/hla/hlalib
export hlalib
hlainc=/home/nqw/usr/hla/include
export hlainc
hlacode=/home/nqw/usr/hla/code
export hlacode

保存,退出。

执行如下指令生效。

$ source ~/.bashrc  

测试

检测hla版本,看是否安装成功。

$ hla -v

得到如下信息,表示安装成功。

$ hla -v
HLA (High Level Assembler)
Use '-license' to see licensing information.
Version 2.16 build 4409 (prototype)
ELF output
OBJ output using HLA Back Engine
-test active

HLA Lib Path:     /hla/usr/hla/hlalib/hlalib.a
HLA include path: /hla/usr/hla/include
HLA temp path:    
Files:

Nothing more to do!
Usage: hla options filename(s)

HLA (High Level Assembler - HLABE back end, LD linker)
Version 2.16 build 4409 (prototype)

  -?        Display help message.
  -license  Display license information.

案例

code文件夹下,创建文件hw.hla,并编辑如下内容。

program helloworld;
#include("stdlib.hhf")

begin helloworld;

stdout.put("Hello,world!!!", nl);

end helloworld;

编译

$ hla -v hw.hla

这个时候可能会报如下错误,提示找不到hlaparse

sh: 1: hlaparse: not found

网上关于这个的帖子较少,不过找到一个,大致意思好像是需要32位的链接器。

安装libc6-i386

$ sudo apt install libc6-i386

然后重新编译,基本就解决了。

nqw@ubuntu:~/usr/hla/code$ hla -v hw.hla 
HLA (High Level Assembler)
Use '-license' to see licensing information.
Version 2.16 build 4463 (prototype)
ELF output
OBJ output using HLA Back Engine
-test active

HLA Lib Path:     /home/nqw/usr/hla/hlalib/hlalib.a
HLA include path: /home/nqw/usr/hla/include
HLA temp path:    
Files:
1: hw.hla

Compiling 'hw.hla' to 'hw.o'
using command line:
[hlaparse -LINUX -level=high  -v -test "hw.hla"]

----------------------
HLA (High Level Assembler) Parser
use '-license' to view license information
Version 2.16 build 4463 (prototype)
-test active
File: hw.hla
Output Path: ""
hlainc Path: "/home/nqw/usr/hla/include"
hlaauxinc Path: ""
Compiler generating code for Linux OS
Back-end assembler: HLABE
Language Level: high

Assembling "hw.hla" to "hw.o"
HLAPARSE assembly complete, 48342 lines,   0.074 seconds,  652389 lines/second
------------
HLA Back Engine Object code formatter

HLABE compiling 'hw.hla' to 'hw.o'
Optimization passes: 3+2
----------------------
Linking via [ld  -melf_i386    -o "hw"    "hw.o" "/home/nqw/usr/hla/hlalib/hlalib.a"]

========================================
    HLA Compilation Complete
========================================

运行。

nqw@ubuntu:~/usr/hla/code$ ls
hw  hw.hla  hw.o
nqw@ubuntu:~/usr/hla/code$ ./hw 
Hello,world!!!

到这里,linux下hla的基本编程环境就配置好啦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 20.04下配置 HAL 汇编开发环境教程 的相关文章

随机推荐

  • LPWAN——Sigfox实战经验介绍

    0 序 最近半年的时间一直在从事这方面的开发工作 xff0c 到目前为止对于Sigfox有一定想法和经验 xff0c 同时目前国内对于该技术的使用和应用还处在刚刚起步的阶段 xff0c 很多博客对Sigfox的讲解是一个浅尝辄止的介绍 xf
  • 拉格朗日乘子法详解(Lagrange multiplier)

    最近在视频的变换编码里推导最优变换 xff08 KL变换 xff09 时需要用拉格朗日乘子法 xff0c 之前在机器学习的各种优化问题里也要用到这个方法 xff0c 特此仔细钻研一番 xff0c 总结如下 xff1a 注 xff1a 这篇博
  • MATLAB求解规划问题(线性规划, 整数规划, 非线性规划)

    文章目录 基础知识规划问题的数学模型的三个要素解 线性规划Linear Programing理论示例 整数规划理论示例 非线性规划理论示例 生产实践中 xff0c 经常会遇到很多资源分配的问题 xff0c 如何分配各种资源以获得最大经济效益
  • matlab画三维图像(plot3,mesh,surf)

    二维函数的图像必须用三维坐标系画 xff0c 很多函数的图像长得很好看 xff0c 很有意思 会可视化也会有利于我们理解更深刻 xff08 1 xff09 plot3 三维曲线图 在网上看到这图觉得挺好看 xff1a t 61 0 pi 3
  • 智能小车学习笔记

    教程 视频教程 xff1b 资源网站 xff1b 可以获取模块的基础资料 xff1b 有刷电机有损耗 电机选型考虑 xff1a 转速和额定电压 xff1b 电机的力矩 xff0c 减速电机减速箱的作用 xff1a 减速 增大力矩 xff08
  • C++ 容器详解

    顺序容器vectorlistdequestackqueuepriority queue 关联容器mapmultimapsetmultiset 无序容器容器的互相比较迭代器 顺序容器 顺序容器类型特点vector可变大小数组支持快速随机访问
  • Cmake入门&运行保存C/C++文件

    Cmake入门 amp 运行保存C C 43 43 文件 在ubuntu创建 保存 运行c 43 43 文件CMake入门创建文件编译 参考 最近在学习Intel realsense T265双目视觉 xff0c 其中一步需要创建源文件ma
  • NVIDIA Jetson TX2 上手指南

    文章目录 一个性能强大的边缘设备我和 NVIDIA Jetson TX2 的初体验Fresh Your TX2为什么在第一步取消Host Machine可能遇到的问题 用上最好的性能 xff0c 小风扇跳舞吧 xff5e xff5e 运行一
  • extern "C"的作用以及为什么要使用extern "C"

    实现c 43 43 代码能够调用其他c语言代码 xff0c 加上extern 34 C 34 后 xff0c 这部分代码编译器以c语言的方式进行编译和链接 xff0c 而不是按c 43 43 方式原因 xff1a c和c 43 43 对同一
  • 什么是链表?(图解)

    一 xff1a 链表是什么 1 链表是物理存储单元上非连续的 非顺序的存储结构 xff0c 数据元素的逻辑顺序是通过链表的指针地址实现 xff0c 有一系列结点 xff08 地址 xff09 组成 xff0c 结点可动态的生成 2 结点包括
  • C++ STL各个容器的区别

    1 STL容器分类 xff1a STL的容器可以分为以下几个大类 一 顺序 xff08 序列 xff09 容器 xff0c 有vector list deque string stack 适配器类 queue 适配器类 priority q
  • Bat脚本-编译及烧录keil-MDK工程

    目录 概述背景需求需求分析需求实现实现功能使用示例1 修改脚本中的编译软件路径2 将脚本的文件路径加入系统的环境变量3 通过Vscode 进行调用 可进一步优化的方向总结 概述 本文主要讲述的是一个关于调用keil MDK的软件编译对应单片
  • ubuntu部署http服务器

    一 安装apache2 sudo apt install y apache2 二 配置环境 默认是80端口 xff0c 防止冲突自定义端口 xff1a 8001 1 修改 etc apache2 ports conf文件j监听端口 List
  • c/c++math.h标准库

    math h数学函数 这个库中所有可用的函数取double参数并返回double的结果 abs 绝对值 acos 反余弦 acosh 反双曲余弦 asin 反正弦 asinh 反双曲正弦 atan2 两个参数的反正切 atan 反正切 at
  • Linux Simulink打不开——unable to run the MATLABWindow application on Linux

    Linux Simulink打不开 unable to run the MATLABWindow application on Linux 解决办法 xff1a 解决办法 xff1a 参考网页 xff1a https www mathwor
  • RTX移植STM32F103,超详细~

    目录 RTX移植前言移植1 创建工程2 配置工程3 添加LED文件4 编写测试代码5 编译烧录 RTX移植 往期回顾 为什么需要RTOS 前言 keil RTX是一款应用广泛的嵌入式RTOS xff0c 具体可见官网 为什么需要RTOS x
  • 基于28035的ePWM触发ADC采样设计

    目录 前言实验目的实验要求硬件电路实验步骤代码解释实验结果总结体会 前言 玖道最近在做一个开关电源项目 xff0c 需要用到TI 的TMS320F28035 芯片 xff0c 实现控制电路的设计 简单来说就是利用28035采集信号量 xff
  • 浅析DSP28035的看门狗模块

    目录 背景工作原理结构与寄存器代码实验结果总结 背景 嵌入式系统通常会使用DSP来实现控制功能 xff0c 比如开关电源的数字控制 试想如果DSP中程序出现Bug 崩溃 跑飞了怎么办 xff1f 如果不及时处理 xff0c 这对整个嵌入式系
  • 浅析TMS320F28035的GPIO模块

    目录 GPIO简介硬件电路软件代码总结 通用输入输出端口 General Purpose Input Output GPIO 几乎是学习包括DSP xff0c 单片机在内的微处理器的第一步 GPIO的功能包括基本的输入 xff0c 输出 x
  • Ubuntu 20.04下配置 HAL 汇编开发环境教程

    目录 安装解压配置环境变量测试 案例 安装 环境 xff1a Ubuntu 20 04 安装包 xff1a linux64 hla tar gz 这里安装的是64位的 xff0c 具体与linux hla tar gz有什么不同 xff0c