
linux
文章平均质量分 72
jack_201316888
这个作者很懒,什么都没留下…
展开
-
PCIe扫盲系列博文连载目录篇
PCIe扫盲系列博文连载目录篇(第一阶段)Felix-电子技术应用-AET-中国科技核心期刊-最丰富的电子设计资源平台 (chinaaet.com)1、前言篇:PCIe扫盲——PCIe简介:http://blog.chinaaet.com/justlxy/p/51000530662、PCIe扫盲——PCI总线基本概念:http://blog.chinaaet.com/justlxy/p/51000530773、PCIe扫盲——一个典型的PCI总线周期:http://blog.chinaaet.转载 2022-03-19 13:28:39 · 2151 阅读 · 0 评论 -
PCIE 协议分析工具
推荐两个实用的PCIe工具软件-Felix-电子技术应用-AET-中国科技核心期刊-最丰富的电子设计资源平台原创 2022-03-18 21:41:16 · 2188 阅读 · 0 评论 -
LLVM 介绍
https://blog.youkuaiyun.com/weixin_38244174/article/details/82705181 最近开始搞LLVM,下面我将从以下五个方面来介绍LLVM。分别是:(1)LLVM是什么?(2)LLVM的组成部分;(3)LLVM+Clang环境搭建;(4)LLVM的运行过程;(5)LLVM Pass的构建运行过程。(一)LLVM是什么?? LLVM(low level virtual machine)从本质上来说,是一个开源编译器框架,能够提供程序语...转载 2021-12-24 13:41:44 · 7801 阅读 · 0 评论 -
编译原理简介
编译原理简单介绍编译原理简单介绍什么叫编译程序翻译程序编译程序翻译和编译的区别编译的过程词法分析语法分析语义分析和中间代码的产生优化目标代码生成编译程序的结构编译程序总框表格与表格的管理出错处理遍编译的前端与后端编译前端编译后端编译程序的生成编译程序的构造工具T型图用高级语言L1构造编译程序编译程序的移植自编译方式构造工具什么叫编译程序翻译程序翻译程序(Translator)是一种程序,其输入是某种语言的一系列语句,而其输出则是另一种语言的一系列语句转载 2021-12-22 18:47:43 · 882 阅读 · 0 评论 -
TVM LLVM 加速AI
下面为记录人工智能推理加速过程,基于TVM总体脉络: 1. TVM 安装 2. TVM 测试及使用 3. Auto TVM 使用 4. 编译导出 so/dll 5.在C++中调用生成的so/dll零、什么是TVMTVM是apache基金会开放的人工智能模型编译框架,由华人 陈天琦博士 初始开发。陈博士本科毕业于上海交大ACM班,有极深的计算机理论基础,有名的xgboost就是出自他手。通常我们使用人工智能模型进行前向推理的方式是这样:1. 训...转载 2021-12-22 15:49:23 · 562 阅读 · 1 评论 -
GLSL简介 GLSL――OpenGL Shading Language
GLSL简介 OpenGL着色语言(GLSL――OpenGL Shading Language)是用来在OpenGL中着色编程的语言,也即开发人员写的短小的自定义程序,他们是在图形卡的GPU (Graphic Processor Unit图形处理单元)上执行的,代替了固定的渲染管线的一部分。比如:视图转换、投影转换等。GLSL(GL Shading Language)的着色器代码分成2个部分:Vertex Shader(顶点着色器)和Fragment(片断着色器),有时还会有Geometr...转载 2021-12-05 17:40:11 · 1248 阅读 · 0 评论 -
【无标题】gerrit 搭建
ubuntu18.04搭建gerrit+gitweb代码审核系统(gerrit-3.2.3,自己亲手搭建经验总结贴)_yehe111的博客-优快云博客原创 2021-11-20 17:57:22 · 308 阅读 · 0 评论 -
riscv32 qemu rt-thread
riscv32 qemu rt-thread的最小移植实现(1) - bigmagic的个人空间 - OSCHINA - 中文开源技术交流社区riscv32 qemu rt-thread的最小移植实现(1)2021-02-08阅读 3070riscv32 qemu rt-thread的最小移植实现(1)1.说明 2.工具准备 2.1 安装riscv32交叉编译工具链 2.2 安装qemu 2.3 获取rt-thread的代码 3.移植整体思路规划 4.riscv32工程模转载 2021-11-10 15:11:55 · 536 阅读 · 0 评论 -
docker --gerrit
docker笔记4--配置gerrit_脚步不能达到的地方,眼光可以达到;眼光不能达到的地方,精神可以飞到-优快云博客原创 2021-11-06 10:53:59 · 432 阅读 · 0 评论 -
VCS+verdi /dve 仿真环境搭建-问题汇总
Ubuntu 16.04 VCS+Verdi安装总结 - 灰信网(软件开发博客聚合)1, verdi启动时候:无法安装 /lib/x86_64-linux-gnu/libpng12.so.0 的新版本https://www.cnblogs.com/CJ-cooper/p/15149286.html2 , gcc g++ 要用4.8版本#dveexport PATH=$PATH:/home/user/synopsys/vcs_2016.06/gui/dve/bin #改成自己v原创 2021-10-28 17:20:00 · 1711 阅读 · 0 评论 -
ubuntu 20.04 安装 VCS + Verdi
Ubuntu16.04安装VCS和VerdiUbuntu 16.04 VCS+Verdi安装总结 - 灰信网(软件开发博客聚合)原创 2021-10-27 16:30:49 · 3001 阅读 · 4 评论 -
VCS-Verdi ubuntu 安装
前言金鱼博主今天又花了大半天重装VCS+Verdi,现在记录一下,以备下回重装…顺带一提,我的安装环境是虚拟机的Ubuntu 16.04。参考1.安装流程参考自:https://blog.youkuaiyun.com/qq_40829605/article/details/853457952.安装过程中各种问题的解决办法参考:VCS+Verdi 安装及破解过程(Ubuntu)【1】_huayangshiboqi的博客-优快云博客_安装vcs3.安装过程中各种问题的解决办法参考:从零开始VCS+转载 2021-10-27 10:34:20 · 1869 阅读 · 3 评论 -
Cache的基本原理
Linux Programmer对于没有接触过底层技术的朋友来说,或许从未听说过cache。毕竟cache的存在对程序员来说是透明的。在接触cache之前,先为你准备段code分析。int arr[10][128];for (i = 0; i < 10; i++) for (j = 0; j < 128; j++) arr[i][j] = 1;如果你曾经学习过C/C++语言,这段code自然不会陌生。如此简单的将arr数组所有..转载 2021-10-26 14:13:51 · 572 阅读 · 0 评论 -
shell 批量替换文件名
Linux shell利用sed如何批量更改文件名详解_ZhangYaohui专栏-优快云博客_sed批量修改文件名本文主要给大家介绍了关于Linux shell用sed批量更改文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。所有文件夹里面的文件 名都可以替换的方法:for file in `find . -iname *.jpg`donewfile=`echo $file | sed 's/-//g'`mv $file $newfil..原创 2021-10-22 15:46:52 · 1267 阅读 · 0 评论 -
riscv bare-metal c
riscv - How can I compile C code to get a bare-metal skeleton of a minimal RISC-V assembly program? - Stack Overflowriscv64 裸机编程实践与分析 - 云+社区 - 腾讯云I have the following simple C code: void main(){ int A = 333; int B=244; int sum; su.原创 2021-10-20 17:49:56 · 689 阅读 · 0 评论 -
RISCV ISS Spike
RISCV ISS Spike 介绍_cs824980820的博客-优快云博客RISCV ISS Spike 介绍Spike Spike的使用 Spike项目的目录结构 其他一些文件夹的用处 riscv文件夹 processor.cc processor.h insn文件夹、指令的处理过程 内存 HTIF SpikeSpike是RISC-V的一种仿真器,它可以仿真一个或多个hart目前它支持的RISC-V指令集特性有:RV3转载 2021-10-19 15:14:42 · 2039 阅读 · 3 评论 -
riscv 工具链
以下内容包含:一.risc-v-gnu-tools 交叉编译环境的安装 (你将可以使用riscv编译器编译一个c程序)二.riscv-toolchain 工具链的安装 (你将能够使用spike模拟器运行一个riscv程序)三.在qemu模拟器下运行一个linux系统 (在linux系统下用riscv模拟器运行一个linux系统。。。想想就刺鸡)在经过几天的试错后,整理了一下各个步骤:以下代码在ubuntu下可直接运行,其他系统请自行修改部分代码一.risc-v-gnu-tools 交转载 2021-10-19 14:32:19 · 710 阅读 · 1 评论 -
riscV 裸机编程
1.概述 2.最小工程的构成 3. 链接脚本 4.可执行的程序源代码分析 5.编译与运行 5.1 编译 5.2 运行 5.3 调试 6.总结 1.概述任何芯片在启动之前都需要有一段汇编代码,从这段汇编代码上就可以体现一些架构设计的特点。往往做嵌入式底层开发都需要关注这段汇编代码的含义,这样在使用的时候才能全面的了解启动时做了什么事情,在后续的程序中遇到问题也能复盘推演。本文就针对riscv..转载 2021-10-18 17:32:55 · 2274 阅读 · 0 评论 -
QEMU RISC-V machine emulation & interacting with it using bare-metal C code
Adding a custom peripheral to QEMU RISC-V machine emulation & interacting with it using bare-metal C code - embeddedinnIntroductionPermalinkQEMU is an excellent platform to emulate hardware platforms. But, we often end up using ready-made platforms转载 2021-10-18 11:04:42 · 377 阅读 · 0 评论 -
基于qemu-riscv从0开始构建嵌入式linux系统
Quard_D的博客_优快云博客嵌入式,linux,Qt相关技术分享https://blog.youkuaiyun.com/weixin_39871788转载 2021-10-13 16:58:12 · 154 阅读 · 0 评论 -
qemu risc-v linux, gnu toolchain
qemu虚拟机模拟一个riscv linux系统 - 连任 - 博客园在 QEMU 上运行 RISC-V 64 位版本的 Linux - 知乎个在下载https://github.com/riscv-collab/riscv-gnu-toolchain 的时候,存在问题,解决方法:git clone https://github.com.cnpmjs.org/riscv-collab/riscv-gnu-toolchain在目录里面, vim .gitmodule把q..原创 2021-10-13 14:08:26 · 142 阅读 · 0 评论 -
qemu riscV linux 环境搭建
参考【参考 1】网页版 “Running 64- and 32-bit RISC-V Linux on QEMU”Running 64- and 32-bit RISC-V Linux on QEMUrisc-v-getting-started-guide.readthedocs.io/en/latest/linux-qemu.html【参考 2】"Github 上的 RISC-V GNU Compiler Toolchain 仓库"https://github.com/riscv/ris转载 2021-10-13 09:48:21 · 603 阅读 · 0 评论 -
OpenGL program
OpenGL installcmd:sudo apt-get install build-essentialsudo apt-get install build-essential libgl1-mesa-devsudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev原创 2021-10-12 17:12:19 · 145 阅读 · 0 评论 -
openGL VBO VAO EBO IBO
下面,你会看到一个图形渲染管线的每个阶段的抽象展示。要注意蓝色部分代表的是我们可以注入自定义的着色器的部分。在这里插入图片描述 渲染管线的东西我就不详细说了,首先我们在openGL绘制图形前,必须先输入一些顶点数据(在OpenGL中我们必须输入NDC坐标,才能可见),然后我们会把它作为输入发送给图形渲染管线的第一个阶段:顶点着色器。它会在GPU创建内存用与储存这些数据,还要要配置OpenGL如何解释这些内存,并且指定其如何发送给显卡,然后顶点着色器就可以处理我们指定的数据了。 那么我们...转载 2021-10-12 16:43:56 · 205 阅读 · 0 评论 -
linux内存管理slab
前言1.以下这篇文章是2015年我所在的via-telecom小组学习内存知识时整理的笔记。最近复习内存管理又拿出来看了一遍,庆幸当时阅读时留了这份笔记,不然重头看又要花费很多时间。当时画了很多visio图片且加上了via-telecom的copyright。虽然目前via-telecom被intel收购了,为了纪念在via-telecom的岁月暂且保留这些copyright。如果涉及了版权问题,请联系我。2。虽然最新的内核默认支持的是SLUB,但理解SLAB的原理依然对我们有帮助。所以先把SLAB的转载 2021-10-09 14:35:59 · 187 阅读 · 0 评论 -
nginx 内存池的分析
参考:http://blog.youkuaiyun.com/livelylittlefish/article/details/6586946http://code.google.com/p/nginxsrp/wiki/NginxCodeReview相关的源码文件为:- nginx_palloc.h- nginx_palloc.c- nginx_alloc.h- nginx_alloc.c内存池数据块结构typedef struct {u_char *last; // ..转载 2021-10-09 14:29:31 · 106 阅读 · 0 评论 -
memory pool 介绍
C/C++下内存管理是让几乎每一个程序员头疼的问题,分配足够的内存、追踪内存的分配、在不需要的时候释放内存——这个任务相当复杂。而直接使用系统调用malloc/free、new/delete进行内存分配和释放,有以下弊端: 1.调用malloc/new,系统需要根据“最先匹配”、“最优匹配”或其他算法在内存空闲块表中查找一块空闲内存,调用free/delete,系统可能需要合并空闲内存块,这些会产生额外开销; 2.频繁使用时会产生大量内存碎片,从而降低程序运行效率; 3.容易...转载 2021-10-09 14:16:01 · 952 阅读 · 0 评论 -
fpga risc-v
FPGA学习日志坚持每天写总结 2021.2.18Risc-V学习FPGA学习日志前言一、RISC-V是什么?二、学习RISC-V的探索过程1.《手把手教你设计CPU——RISC-V处理器篇》2.liangkangnan的博客总结前言准备参加比赛,需要学习riscv的相关知识,于是找了《手把手教你设计CPU——RISC-V处理器篇》以及一些开源的riscv核(蜂鸟E203、tinyriscv等)一、RISC-V是什么?以下是我的理解,具体的定义要自己百度了riscv是一种转载 2021-06-12 13:53:10 · 2331 阅读 · 1 评论 -
Buildroot 介绍
buildroot使用介绍 - ArnoldLu - 博客园 (cnblogs.com)buildroot使用介绍buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。使.转载 2021-05-04 19:03:35 · 760 阅读 · 0 评论 -
buildroot构建嵌入式linux
1.1 什么是buildroot Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。 下载:git clone git://git.buildroot.net/buildr转载 2021-04-30 11:55:58 · 644 阅读 · 0 评论 -
boost c++库
目录第1章简介 第2章智能指针 第3章函数对象 第4章事件处理 第5章字符串处理 第6章多线程 第7章异步输入输出 第8章进程间通讯 第9章文件系统 第10章日期与时间 第11章序列化 第12章词法分析器 第13章容器 第14章数据结构 第15章错误处理 第16章类型转换操作符该书采用Creative Commons License授权本书的中文版由Albert L...转载 2021-04-01 08:23:27 · 175 阅读 · 0 评论 -
ubunut中文乱码问题
ubunut中文乱码问题https://blog.youkuaiyun.com/weixin_39792252/article/details/80415550ubunut 压缩文件中文乱码问题。https://blog.youkuaiyun.com/Joker_LCL/article/details/109490801unzip -O CP936 健匠智能设计开发资料.zip原创 2021-01-05 11:39:29 · 78 阅读 · 0 评论 -
用户空间与内核空间——高端内存
https://www.cnblogs.com/zlcxbb/p/5841417.htmllinux 用户空间与内核空间——高端内存详解 摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间的地址映射。Linux内核地址空间划分通常32位L..转载 2020-11-26 12:32:26 · 264 阅读 · 0 评论 -
内核空间和用户空间
https://blog.youkuaiyun.com/vc66vcc/article/details/80409479目录内核空间和用户空间 为什么需要区分内核空间与用户空间 内核态与用户态 如何从用户空间进入内核空间 整体结构 总结 另一种说法 一、4G地址空间解析 二、虚拟地址空间分配及其与物理内存对应图 三、物理内存分配图内核空间和用户空间 对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4.转载 2020-11-26 12:13:24 · 5854 阅读 · 0 评论 -
linux kernel/ user space
一. 简介Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间。两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间的地址映射。 os分配给每个进程一个独立的、连续的、虚拟的地址内存空间,该大小一般是4G(32位操作系统,即2的32次方),其中将高地址值的内存空间分配给os占用,linux os占用1G,window原创 2020-11-26 12:07:39 · 263 阅读 · 0 评论 -
GDB debug 5
gdb debug ,,,, strace ,,,,,调试程序最让人头疼的就是层出不断的Bug,而且有些Bug不容易定位,下面介绍一种很强大的调试工具:GDB虽然之前听过GDB调试,但是自己调试时一直没使用过。今天在调试highmac程序时,遇到了一个段错误,即segmentation fault。段错误的原因有指针使用错误,内存访问越界等等很多,所以一时还无法下手。。但是我请来了师兄,描述了一下现象:简单来说就是,我在主函数中注释掉了一个不需要的线程,采用了注释该线程的创建函数pthread_原创 2020-11-25 16:55:31 · 232 阅读 · 0 评论 -
how to -- linux debug
搞电子都知道,电路不是焊接出来的,是调试出来的。程序员也一定认同,程序不是写出来的,是调试出来的。那么调试工具就显得尤为重要,linux作为笔者重要的开发平台,在linux中讨论调试工具主要是为那些入门者提供一些帮助。调试工具能让我们能够监测、控制和纠正正在运行的程序。我们在运行一些程序的时候,可能被卡住或出现错误,或者运行过程或结果,没能如我们预期,此时,最迫切需要明白究竟发生了什么。为了修复程序,剖析和了解程序运行的细节, 调试工具就成为了我们的必备工具,工于善其事,必先利其器。在Linux下的用户空间原创 2020-11-24 12:03:13 · 128 阅读 · 0 评论 -
内存泄漏检测工具valgrind
1概述1.1 介绍Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所示:图11.2 工具Valgrind的最新版是3.11.0,它一般包含下列工具:1.Memcheck最常用.原创 2020-11-24 11:18:39 · 353 阅读 · 0 评论 -
编程语言排行榜
https://www.tiobe.com/tiobe-index/TIOBE Index for October 2020October Headline: Python is getting closer to the second positionPython conquered the third position in the TIOBE index last year, but its popularity is still rising. This month it has rea原创 2020-10-10 09:45:55 · 196 阅读 · 0 评论 -
Xshell+Xmanager-可视化远程访问-windows login Linux环境
windows login Linux环境,但是因为虚拟机用着电脑会变卡,而且自己有台式+笔记本,所以自己想要创建一个随时随地多设备可以用的实验环境。因此想到了搭建一个Linux系统的远程服务器。但是远程访问linux系统是无法获得可视化功能,因此为了实现可视化(例如可以运行matplotlib),我采用了Xshell+Xmanager的解决方式,本质来说是用Xshell操作访问服务器,用Xmanger来实现可视化的功能。1 在阿里云/腾讯云购买一台学生服务器,9.9一个月。选择的系统环境是Ubuntu原创 2020-09-22 09:38:51 · 2021 阅读 · 0 评论