自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

every step

今天做不成的,明天也不会做好!

  • 博客(74)
  • 收藏
  • 关注

原创 使用 C++23 从零实现 RISC-V 模拟器(6):权限支持

本节内容增加了权限表示,设置了三种权限。当 cpu 初始化时默认的权限为 Machine 模式。此外增肌了 sret 和 mret 两个指令的对应代码及其单元测试。RISC-V定义了三种特权等级,分别是用户态(User Mode)、监管态(Supervisor Mode)、和机器态(Machine Mode)。这三种特权等级对应着不同的操作系统和应用场景,提供了不同级别的访问权限。接下来实现这三种特权模式,随后实现 sret 和 mret 指令。我们将继续直接拓展 A 和 M 标准。

2024-02-16 17:20:02 1432 1

原创 使用 C++23 从零实现 RISC-V 模拟器(5):CSR

这部分内容增加了 CSR 相关的寄存器,通过 CPU 可以直接读取,此外增加了六个 CSR 相关的指令解析及其对应的单元测试。

2024-02-16 15:23:23 1818

原创 使用 C++23 从零实现 RISC-V 模拟器(4):完善 log 支持并支持更多指令

👉🏻 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」:https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc这一节内容解析了更多的指令,并且提供了更详细的 log 输出从而进一步的定位问题。具体代码可以参考这个分支的代码:https://github.com/weijiew/crvemu/tree/lab4-load-store。

2024-02-13 17:35:17 1904

原创 使用 C++23 从零实现 RISC-V 模拟器(3):指令解析

这章内容进一解析更多的指令,此外将解析指令的过程拆分为一个单独的类,采用表格驱动的方式,将数据和逻辑分离,降低了 if else 嵌套层数过多。这部分依旧改动不多,只增加了七个指令。此外代码中细碎的变动没有完全列出来,下面只是主体部分的更新,可以尝试自己动手实现,如果简单抄一遍是没有成长的,总之需要在解决问题中加深印象。可以参考这个分支的代码:https://github.com/weijiew/crvemu/tree/lab3-inst。

2024-02-12 12:22:20 1554

原创 使用 C++23 从零实现 RISC-V 模拟器(2):内存和总线

综上,这一章节将 dram 拆分出来作为一个单独的类,为了链接 dram 又引入了 bus。并且将手动编译的过程改成函数,避免了手动执行,后续可以很方便的测试更多的指令。下一节会将解析指令的过程单独拆分为一个类,然后进一步的解析更多的指令。👉🏻 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」:https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc。

2024-02-12 12:20:19 1670

原创 使用 C++23 从零实现 RISC-V 模拟器(1):最简CPU

本节实现一个最简的 CPU ,最终能够解析add和addi两个指令。如果对计算机组成原理已经有所了解可以跳过下面的内容直接看代码实现。,本章节尾有运行的具体指令。

2024-02-12 12:19:48 2688 1

原创 使用 C++23 从零实现 RISC-V 模拟器

使用 C++23 从零实现的 RISC-V 模拟器,最终的模拟器可以运行操作系统。本教程参考了所写的 Rust 版本的模拟器,但是原版只写了前三章。此外也参考了对 rvemu 的改进这也是一个 Rust 版本的并且已经完结了,对 rust 版本感兴趣的可以参考上面所给出对应的链接。接下来我将会用 C++ 23 来实现,原则是即能用上的新特性全部都用上。以循序渐进的方式,最终实现一个可以运行操作系统的 RISC-V 模拟器。此外重新组织了实现方式,一定程度上降低了难度梯度。

2024-02-12 12:19:16 1621

原创 E - Tram CodeForces - 116A

E - Tram CodeForces - 116AA. Tramtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputLinear Kingdom has exactly one tram line. It has n stops, n...

2019-08-21 20:23:17 211

原创 C - u Calculate e HDU - 1012

u Calculate eTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 59314 Accepted Submission(s): 27196Problem DescriptionA simple mathematical ...

2019-08-21 19:59:47 183

原创 B - {A} + {B} HDU - 1412

{A} + {B}Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33944 Accepted Submission(s): 13626Problem Description给你两个集合,要求{A} + {B}.注:同一个...

2019-08-21 19:58:02 145

原创 A - Climbing Worm HDU - 1049

Climbing WormTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24984 Accepted Submission(s): 17063Problem DescriptionAn inch worm is at the...

2019-08-21 19:51:28 193

原创 HDU412{A} + {B}(STL)

{A} + {B}Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33929 Accepted Submission(s): 13618Problem Description给你两个集合,要求{A} + {B}.注:同一个...

2019-08-18 20:29:34 99

原创 HDUOJ1106排序(STL)

排序Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 83261 Accepted Submission(s): 25138Problem Description输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一...

2019-08-17 16:10:50 118

原创 HDUOJ1381Crazy Search(STL/map)

Crazy SearchTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3632 Accepted Submission(s): 1314Problem DescriptionMany people like to solv...

2019-08-17 15:12:11 166

原创 HDUOJ1425sort(哈希)

sortTime Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 72971 Accepted Submission(s): 19350Problem Description给你n个整数,请按从大到小的顺序输出其中前m大的数。Inpu...

2019-08-17 10:05:28 239

原创 HDUOJ前m大的数1280(哈希)

前m大的数Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27870 Accepted Submission(s): 9277Problem Description还记得Gardon给小希布置的那个作业么?(上次比赛的1005...

2019-08-17 09:12:26 133

原创 HDUOJ1029Ignatius and the Princess IV(排序)

Ignatius and the Princess IVTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32767 K (Java/Others)Total Submission(s): 51690 Accepted Submission(s): 23268Problem Description“OK, yo...

2019-08-16 20:59:54 111

原创 HDUOJ1166敌兵布阵(树状数组)

敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 151598 Accepted Submission(s): 62866Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子D...

2019-08-16 19:40:05 175

原创 I - HDU - 1065

I Think I Need a HouseboatTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 16362 Accepted Submission(s): 4521Problem DescriptionFred Mappe...

2019-08-13 17:23:23 204

原创 Core Java 笔记(1)

前言大一下期学习了Java 这门语言,我感觉学习发的教材很烂。学起来很费解,前期一直看视频学习,虽然学到不少,但总感觉学的不扎实,前期的博客也有细碎的Java知识点,前两天基于Hexo做了一个个人博客,近期打算总结一下,把文章转移到博客上。期末的时候买了本《Java Core》 ,现在是暑假,打算把JSE的每一部分再仔细过一遍。下星期还要把Struct2搞定,学习Spring。JAVA优于C+...

2019-07-28 16:37:41 119

原创 SSH/SSM 框架

框架什么是框架?简而言之,框架是软件的半成品,将繁琐的代码封装起来,简化了开发过程中代码的重复利用,提高了效率。三大框架:SSH/SSMSSH分别是srtuct2/spring/HibernateSSM分别是Springmvc/spring/Mybats老项目使用的是SSH,现在项目一般使用SSM,二者各有优缺。三层架构web表现层MVC架构M: model封装数据库V: v...

2019-07-26 21:39:27 220

原创 Struct2框架学习

为什么使用这个框架?框架的出现是为了解决软件设计过程中的某个痛点,而struct2的出现恰恰解决了笔者在做的项目中涉及到了用户管理部分,需要做注册登陆部分,用到了struct2.Struct2 的简介有很多,这里不再赘述。学这框架的原因,个人理解为这个struct2连接了web层和业务逻辑层,实现了数据间的交互响应。而Hibernate衔接了数据库和业务逻辑层,对JDBC进行了轻量级的封...

2019-07-24 21:04:30 213

原创 Hibernate+sql2008+idea 框架搭建

框架框架是半成品的软件,具备软件的特性,作为工具使用。Hibernate一种对象映射机制,对JDBC进行了轻量级的封装。

2019-07-22 20:25:10 211

原创 JAVA(数独)

import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.Iterator;import java.util.TreeSet;import javax.swing.JButton;...

2019-07-18 09:55:43 1042

原创 AI未来读后感

寒假无聊之际读到了李开复的这本书,全书以不同的角度来解读人工智能。而吸引我的却是人工智能的发展,书本开篇就提及一个名词:中国的斯普特尼克的时代,在2016年李世石和阿尔法go的那场比赛吸引了近两千万中国人观战,最终阿尔法go胜出极大的刺激到了中国人民。而为什么被称为中国的斯普特尼克时代呢?普特尼克是前苏联发射的一艘卫星,也是人类历史上的第一颗卫星,这艘卫星刺激到了美国人。这艘火箭间接导致了美苏的...

2019-07-18 09:55:26 1219

原创 Hibernate持久化类

持久化类持久化类: 将内存的的对象保存到数据库中,简而言之就是Java类+映射文件。编写规则对持久化类提供一个无参构造方法属性私有,提供set和get方法唯一标识OID使用包装类类型(使用Interator 而非 int)持久化类不能用final修饰持久化类的三种状态瞬时态: 没有被OID,没有被Session所管理。托管态: 有OID,没有被Session所管理。持久态...

2019-07-13 21:13:37 134

原创 Hibernate框架学习

工具类将重复代码块包装成工具类,方便使用。import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.boot.registry.StandardServiceRegistry;import org.hibernate.boot.registry.StandardSer...

2019-07-13 17:47:59 108

原创 sql笔记

字符串: 带n 代表Unicode 字母数字占一个字节,汉字占两个字节。不带n 代表不是Unicode 占一个字节。带var 不会自动补充。可变长度。不带var 会自动补充空格。固定长度。如果明确长度,使用带var的char ,可变长度。能使用固定长度就使用固定长度,减少资源浪费。首先判断是否需要中文,若需要加n,否者反之,然后判断长度是否可变,若可变加var,反之不加var。bi...

2019-07-07 21:48:47 145

原创 Linux(第三章:文本编辑)

vi移动光标hjkl 分别代表 ← ↓ ↑ →Ctrl + m 代表↓Ctrl + p 代表↑0代表光标以东到此行包含空格的开头部分^代表光标移动到此行不包含空格开头部分$移动光标到行尾,8$ 光标向下移动7行G移动到行尾5G移动到第五行开头9| 移动到第九列w 光标移动到下一个单词的开头判断包含标点个空格W 光标移动到下一个单词开头,只识别空格b 光标退到前一个词...

2019-07-03 07:37:30 132

原创 Linux(第四章:Linux shell 程序设计)

shell概述shell的特点:八种特点:组合方式简单,名字可扩展,shell内置命令可直接使用,允许使用数据流等模式,结构化程序设计,可以后台执行,环境可配置,可以设计shell脚本。四个种类:sh ,csh,ksh,bash四种。脚本建立通过vi 编辑脚本 ,bash 执行脚本#!/bin/bash 类似于头文件,调用bash程序对它进行解释。脚本执行分三种方式执行:ba...

2019-07-03 07:35:12 231

原创 Linux(第八章:Linux系统管理)

系统管理概述对Linux服务器端进行的管理和配置用户和工作组管理Linux是多用户操作系统。工作组:将权限类似的用户放在一起,方便管理和用户账号有关的文件:/etc/passwd :和账号信息相关的都存在这个文件夹中。/etc/shadow : 存放账号密码的有效期。/etc/group : 存放组用户信息文件创建用户:图形界面下创建:略命令界面下创建:首先必须是超级用户...

2019-07-02 20:04:55 349

原创 明清通俗小说选读

滕大尹鬼断家私这篇小说改编自扯画轴,扯画轴讲述的是包公时期的一位乡绅知府倪守谦老来得子,取名善述。其长子善继生性贪心,倪守谦恐其长子霸占家产,死前告诉长子等善述长大后给点田产不至于饿死街头就行,又立下另一个遗嘱藏于扯画轴中交于他人,若大儿不听话,就讲此遗嘱拿出惩治。大儿长大后果然霸占家产,小儿拿着扯画轴告于包公,包公断案明了,且谢绝了倪守谦的千两白银。冯梦龙将次小说做了改编,有宣扬清官变为宣扬...

2019-06-18 17:49:14 772

原创 Linux(命令总结)

简单命令$who 获得当前用户信息$echo 将参数输出到屏幕上,如果不加双引号会输出成字符串以空格隔开,如果加则原样输出。$date 显示时间$cal 显示月份$clear 清屏$passwd 修改密码文本概念和文件类型文件系统: 由若干目录和其子目录组成的层次结构,根目录是最上层的。文件结构: 分为成分和命名两种。文件类型: 分别为普通文件,目录文件,设...

2019-06-13 18:39:24 3310 7

原创 linux(第一章:linux系统概述)

什么是Linux?Linux就是一个操作系统,以Unix为原型写出来的。Linux有什么特点?1.与Unix兼容。2.开源。3.高性能且安全。4.可被定制。5.可操作性高。6.多用户,多任务的32位操作系统。Linux的版本Linux的版本分为核心板和发行版两种。核心版本: A.B.CA代表主版本号,B代表次版本号,C代表代表当前版本修订次数。次版本号(B)的奇数代表不稳...

2019-06-13 16:30:00 550

原创 HDUOJ2047:阿牛的EOF牛肉串

阿牛的EOF牛肉串Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 50597 Accepted Submission(s): 23893Problem Description今年的ACM暑期集训队一共有18人,分为6支队伍。其...

2019-06-11 14:14:47 174

原创 HDUOJ2046:骨牌铺方格

骨牌铺方格Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 74273 Accepted Submission(s): 35642Problem Description在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输...

2019-06-10 18:35:04 144

原创 HDUOJ2044:一只小蜜蜂...

一只小蜜蜂…Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 111122 Accepted Submission(s): 39257Problem Description有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行...

2019-06-10 18:30:58 318

原创 HDUOJ2041:超级楼梯

超级楼梯Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 88357 Accepted Submission(s): 45390Problem Description有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,...

2019-06-10 17:48:03 218

原创 JAVA(单例设计模式)

引入什么是设计模式?解决某类问题而产生的行之有效的解决方法。(java共有23中设计模式)什么是单例设计模式?一个类再内存中只用一个对象。如何体现?首先将构造函数私有化。其次构建一个本类对象。提供一个方法可以获取本类对象。代码体现同一个类的两个对象class A{ private int num; public void setNum(int num){...

2019-06-08 14:48:50 3553 1

原创 HDUOJ2057:

A + B AgainTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 41377 Accepted Submission(s): 16837Problem DescriptionThere must be many A + B...

2019-06-06 10:48:21 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除