嵌入式学习
idevede
在等待的日子里,刻苦读书,谦卑做人,养得极深,日后才能枝繁叶茂
展开
-
UART的基础知识及使用
一、S3C2410内置的UART控制器S3C2410内部具有3个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模式或DMA(直接内存访问)模式,也就是说UART控制器可以在CPU与UART控制器传送数据的时候产生中断或DMA请求。并且每个UART控制器均具有16字节的FIFO(先入先出寄存器),支持的最高波特率可达到115.2Kbps图5-11是S3C2410内部U转载 2017-02-25 11:06:48 · 11233 阅读 · 0 评论 -
LLVM 后端移植 寄存器定义部分代码分析
对经过前端翻译后生成的 LLVM 中间代码,通过后端代码生成器可以生成对特定后端处理器的后端代码。生成的后端代码可以两种形式存在:一种是以目标处理器的汇编代码形式,可以通过汇编器编译后得到相应的目标处理器二进制代码, 并能运行在目标处理器上;另一种是直接以二进制代码存在,不能运行在目标处理 器上,但可以使用 JIT 编译器直接在本地运行。移植接口代码结构有用的抽象类::TargetMachin...原创 2019-05-22 13:28:02 · 7126 阅读 · 0 评论 -
LLVM TableGen 学习笔记
LLVM TableGen分析TableGen 描述文件是由许多的记录(record)组成的。每一个记录都有一个唯一的名字,包含一系列的数据,这些数据就是 TableGen 文件所描述的领域所需的信息。使用 tblgen 工具解析文件时,指定这些数据所针对的不同领域,就可以解析出该领域所需的记录信息。记录可以分为两种,一种称为定义(definition),一种成为类(class)。定义是最基本...原创 2019-05-21 23:14:14 · 7647 阅读 · 0 评论 -
llvm编译系统结构分析
LLVM 编译系统分析中间代码工具集编译流程整个 LLVM 编译系统的组成可分成三部分:LLVM 中间代码,用于分析、 优化、代码生成等工作的集成库,以及建立在以上集成库基础之上的工具,包括汇 编器、链接器、调试器等等。本章将先依次分析这三个组成部分,然后再对 LLVM 的编译流程作详细的说明。中间代码LLVM 中间代码是一种采用 SSA 形式的 IR(Immediate Represent...原创 2019-05-21 22:40:14 · 6932 阅读 · 0 评论 -
Improving direct-mapped cache performance by the addition of a small fully-associative cache and pre
Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers 阅读笔记摘要总结摘要计算机预测技术在不久的将来峰值将达到1000MIPS。如果这些处理器的层次结构基于传统的缓存技术,很容易损失一半甚至更多的性能。本文介绍了提高缓存性...原创 2019-05-15 22:00:57 · 6571 阅读 · 0 评论 -
在RISC V 上添加custom指令并在gem5 和 spike上运行
修改RISCV工具链第一步是安装RISCV工具链:$ git clone https://github.com/riscv/riscv-tools.git$ git submodule update --init --recursive$ export RISCV=/path/to/install/riscv/toolchain$ ./build.sh第二步明确要添加的指令,以...原创 2019-05-08 11:44:06 · 15486 阅读 · 21 评论 -
[计算机体系结构] Cache 基本概念
Allocation在CACHE中发现一个位置,并把新的cache数据存到这个位置的过程。这个处理过程可能包括evicting(驱逐)cache中已存在的数据,从而为新的数据腾出空间。Associativity指每个Set(集)里包含的line frames(行帧)数。也就是cache的way(路)数。Capacity miss容量失效...转载 2019-05-05 15:32:27 · 9866 阅读 · 0 评论 -
RISCV的实战-二级流水线的DarkRISCV
作者一夜写成RISCV处理器,设计思路清晰,描述文档也很棒,特意翻译一下,供自己和大家学习翻译 2018-10-22 11:18:12 · 14827 阅读 · 2 评论 -
Rocket学习常用网址整理
1.https://github.com/ucb-bar/project-template2.https://github.com/ucb-bar/rocc-template3.关于谷歌rocket chip生成指令的搜索:https://www.google.com.ar/search?q=rocket+chip+add&oq=rocket+chip+add&aqs=chrome...原创 2018-04-26 19:55:59 · 10191 阅读 · 1 评论 -
Chisel 语言(Scala)学习 2 实例化模型和向量操作
系列文章主要用来记录学习Chisel和scala过程中遇到的难点或知识点,这篇文章主要学习实例化模型和向量操作原创 2018-03-14 16:04:29 · 10816 阅读 · 0 评论 -
RISC V Rocket-chip 模拟器使用笔记(一)
1.Rocket-chip可以做什么“Rocket是一款64bit的标量处理器,5级流水线,采用的是risc-v指令集,集成FPU,并有许多or1200没有的特性,比如:无阻塞缓存、分支预测、返回地址堆栈、硬件页表填充、cache支持ECC、支持多核等。”它允许我们生成不同配置(自定义)的SOC,包括软件工具链。2.Rocket-chip的子模块(文件目录)1.chisel3:用来进行RTL级建模...原创 2018-03-13 13:21:32 · 22323 阅读 · 7 评论 -
deepin系统(unstable 发行版 4.14)安装perf的正确姿势
想从spec入手分析程序使用状态,发现perf命令相当好用,所以打算安装一下。结果折腾了一上午才发现没有合适的方法。Perf是内置于Linux内核源码树中的性能剖析(profiling)工具。它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。常用于性能瓶颈的查找与热点代码的定位。安装perf第一个错误的方法:安装perf,首先安装内核源码:sudo ...原创 2018-03-16 13:09:54 · 10835 阅读 · 3 评论 -
新型硬件发展趋势及其对数据管理与分析的挑战(下)
3 研究挑战与展望3.1 研究挑战虽然新型硬件环境为数据管理与分析提供了新的设计维度,但是不论从个体的新型硬件发展前景抑或从整体的与现有体系的整合方式来看,都具有较大的不确定性。这些新型硬件能否给上层软件系统带来期望的性能收益取决于如何发掘新型硬件的性能提升空间以及准确界定硬件自身的局限性,洞察他们蕴含的假设条件以及对于系统设计平衡点的影响,这些都是数据管理与分析领域必须面对的挑战:1) 首先,要...转载 2018-03-02 11:14:27 · 10256 阅读 · 0 评论 -
新型硬件发展趋势及其对数据管理与分析的挑战(上)
CCF于1月11日发布了最新一期《中国计算机科学技术发展报告》,对可群智协同计算、软件智能化开发技术等11个方向的研究进展做了详细介绍和讨论。加入CCF会员登录CCF官网,可在数字图书馆栏目下载和浏览。1 引言数据管理与分析系统的发展离不开硬件和软件技术的进步。硬件和软件是构成计算系统的两大要素,软件技术的发展既可以享受硬件技术升级在性能提升方面带来的直接红利,但又受到硬件自身特点和局限性的制约,...转载 2018-03-02 11:12:28 · 12539 阅读 · 0 评论 -
linux C串口常规设置参考
据通信的基本方式可分为并行通信与串行通信两种。· 并行通信是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求传输速度较高的应用场合。· 串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。串口设置详解本节主要讲解设置串口的主要方法。转载 2017-04-22 10:58:40 · 10633 阅读 · 0 评论 -
莱迪思产品ICEstick Evaluation Kit 简介
iCEstick评估套件是一款易于使用、小体积的评估板,通过使用板上莱迪思半导体公司的iCE40 FPGA系列,可以以极低的成本快速实现系统功能的开发。用户可以与一个IrDA收发器进行通信,一个Digilent PMOD™外设连接器可用于许多传感器扩展功能,还有16个通用I/O和LED。各部件功能及管脚介绍原创 2017-03-13 22:13:39 · 9738 阅读 · 0 评论 -
LLVM 后端移植 指令集代码学习笔记
实现关于目标处理器指令集的 TableGen 描述 以及继承并实现 TargetInstrInfo 类,也即需要实现文件“XXXInstrInfo.td”、 “XXXInstrInfo.h”和“XXXInstrInfo.cpp”。在文件“XXXInstrInfo.td”中,需要描述目标处理器的指令集,指令功能,指令的寻址方式,指令操作数,指令编码,指令汇编代码的输出格式,以及指令与 LLVM 虚...原创 2019-05-22 22:06:22 · 6939 阅读 · 0 评论