摘要: 一起学RISC-V汇编第4讲之指令格式 RISC-V指令集的一个特点就是指令是定长的,对于RV32I ISA,一共有47条指令,有6种指令指令格式,分别为R/I/S/B/U/J类型,其中: R型用于寄存器-寄存器间的操作(10条) I型用于短立即数和访存(Load)操作(25条) S型用于访存Sto 阅读全文
posted @ 2024-07-19 23:54 sureZ_ok 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 寄存器是处理器中最常用的处理单元,RISC-V指令的操作数除了立即数就是寄存器。 RISC-V指令集包含了多种不同类型的寄存器,用于不同目的和功能: 对于rv32imafd架构而言,包含如下寄存器: 通用寄存器:32个通用整数寄存器,分别标记为x0-x31,如果是fd扩展,还有32 个独立的浮点寄存 阅读全文
posted @ 2024-07-16 23:49 sureZ_ok 阅读(49) 评论(0) 推荐(1) 编辑
摘要: 这一章讲一些RISC-V的一些零碎知识点,后面章节可能要用到这些概念。 1 RISC-V的各种扩展march x86 与 arm 是增量型ISA,意味着新处理器需要兼容过去所有的指令,这样会导致ISA指令随时间流逝而大幅增长。 而RISC-V被设计为模块化的,这与过去几乎所有的ISA都不同,其核心是 阅读全文
posted @ 2024-07-16 23:42 sureZ_ok 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 准备写几篇学习笔记来讲述RISC-V汇编。 1 指令集架构 指令集架构(Instruction Set Architecture,简称ISA)是一种定义处理器体系结构的规范。定义了处理器能够执行的指令集、寄存器、编码格式、内存访问方式、中断、异常处理等细节。 指令集:包含数条指令,每条指令都代表一个 阅读全文
posted @ 2024-07-16 23:40 sureZ_ok 阅读(79) 评论(0) 推荐(0) 编辑
摘要: C语言中提供许多算符,比如算术运算、逻辑运算、关系运算等,必须规定它们的优先级,否则将它们放到一起运算肯定要出乱子,正如算术中有先乘除后加减的规则,C语言同样要有确定的运算规则。C语言定义了15个算符优先级,其优先级规则如下: 规则1:优先级高的先运算 规则2:同一个优先级则需要按照结合性确定运算顺 阅读全文
posted @ 2024-03-23 15:46 sureZ_ok 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 1 定点数与浮点数 在现实生活中,不仅要有整数,还需要小数,计算机怎么表示小数呢?有两种方式:定点数与浮点数 定点数(Fixed Point Number): 顾名思义,小数点位置固定,例如常见的Qm.n 表示法,共需1(符号位)+ m (整数位) + n (小数位)bit位来表示数据,如Q7,Q1 阅读全文
posted @ 2024-01-21 19:18 sureZ_ok 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 大多数情况,嵌入式软件工程师并不需要知道gcc编译器是工作的,但是随着调试深入,了解gcc在软件中的一些常见的用法大有裨益。 这里列一下遇到的一些嵌入式软件中用到的一些gcc知识。 1 GCC关闭某函数的优化 软件库使用O2/O3优化,有时debug时,需要关闭其中某些函数的优化(即使用此函数使用O 阅读全文
posted @ 2023-12-01 18:03 sureZ_ok 阅读(30) 评论(0) 推荐(0) 编辑
摘要: riscv平台优化矩阵乘(基于blislab优化实践) 本文基于blislab与openblas项目,讲述在riscv平台上优化矩阵乘优化过程。 为了方便riscv-rvv加速,将blislab项目中的double数据类型改为float(即测试单精度浮点性能),且例子都是列主序的。 1 blisla 阅读全文
posted @ 2023-09-13 23:55 sureZ_ok 阅读(166) 评论(0) 推荐(0) 编辑
摘要: ## 1 Docker简介 软件开发人员,经常需要安装新的软件,复杂的软件需要安装一大堆依赖,并且对依赖组件的版本还有要求,有时安装一个软件需要半天的时间,实在令人抓狂,所以Docker出现了,docker可以将应用和环境打包成一个容器,随后可以在任何地方运行(简单来说Docker就是软件带环境安装 阅读全文
posted @ 2023-08-24 10:13 sureZ_ok 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 这篇文章主要参考于《跟老男孩学linux运维:Shell编程实战》,方便写shell脚本时参考,只列一些shell脚本中的容易混淆的知识点。 目录1 变量1.1 普通变量1.2 shell特殊变量1.3 shell特殊扩展变量2 运算符2.1 空格2.2 (()) 与 [ ]2.3 || 与 &&3 阅读全文
posted @ 2023-08-19 14:47 sureZ_ok 阅读(33) 评论(0) 推荐(0) 编辑