自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

极客驿站

不积跬步,无以致千里,不积小流,无以成江河!

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

原创 C语言之字符串处理

字符串处理字符串处理:char *strcpy(char *dest,const char *src);函数的作用将src指向的字符串拷贝dest所指向的内存中。注意:dest必须够大,否则将会出现内存污染。char* strncpy(char *dest ,const char *src,int n);将src指向的字符串前n个字节拷贝到dest所指向的内存中,注意,不补'\0'char *strcat(char *dest,const char *src);功能:将src指向的字符串追加到dest指向的

2022-06-06 11:57:38 1053 1

原创 gradlew 命令说明

gradlew 命令快速构建命令查看所有任务./gradlew tasks --allgradlew命令都可以使用简写,例如:./gradlew assembleRelease 简写为:./gradlew aR查看项目的依赖都依赖了哪些库。gradlew :app:dependencies只编译清单文件,并查看具体日志,快速定位清单文件报错gradlew :app:processDebugManifest --stacktrace:清除build文件夹

2022-03-31 12:38:11 6364

原创 UEFI 之 Virt-Manage 验证OVMF

概要EDK2 中编译出来的OVMF可以使用qemu运行验证,这也是UEFI调试的虚拟环境qemu-system-x86_64 -bios OVMF.fd,但是在使用网络相关调试的时候,qemu就比较繁琐了,需要创建虚拟网卡,设置桥接等;Virt-manage就是一个qemu的管理器,也可以用KVM搭建虚拟环境,有完善的配置网络环境,所以想用Virt-Manage跑OVMF;Virt-Manage UEFI其实跑的是OVMF_VARS.fd 和 OVMF_CODE.fd 而不是OVMF.fd,文件的位置是/u

2022-01-16 12:00:00 1769

原创 uefi 之 VirtualBox搭建验证efi环境

概要VirtualBox是一个虚拟环境,不管是windows还是Linux可以搭建,这里要搭建使用这个虚拟环境去验证我们编译的efi文件,用虚拟机搭建主要是为了虚拟机中完善的网络环境,验证网络可以验证网络efi驱动;环境x86/deepin v20应用商店安装 VirtualBox如下版本配置创建VHD盘,也就是虚拟机盘;新建格式选择的是VHD和VMDK都可以;创建完成不要运行;对虚拟机进行设置启动efi,默认是不开启的,这里启动的是virtualBox自己的uefi启动可以看出来FS1 是我们新建的vhd

2022-01-16 00:04:08 2831

原创 UEFI 之 redfish

概要Redfish是一种基于HTTPs服务的管理标准,利用RESTful接口实现设备管理。每个HTTPs操作都以UTF-8编码的JSON格式(JSON是一种key-value对的数据格式)提交或返回一个资源或结果,就像Web应用程序向浏览器返回HTML一样。该技术具有降低开发复杂性,易于实施、易于使用而且提供了可扩展性优势,为设计灵活性预留了空间。目前我们利用Redfish管理接口可以实现包括用户管理、获取服务器信息、管理模块信息等常用HDM和BIOS配置。RedFish标准由DMTF组织的SPMF论坛维护

2022-01-09 20:11:40 3603

原创 source insight 使用技巧总结

Sourceinsight(以下简称SI)是良许使用过的最好用,最顺手,最强大的编辑器,没有之一!它几乎支持所有的语言,包括:C,C++,ASM,HTML等等,能够自动创建并维护它自己高性能的符号数据库,包括函数、method、全局变量、结构、类和工程源文件里定义的其它类型的符号,对于大工程的源码阅读非常方便。快捷键:ctrl+home:置顶ctrl+end:置底ctrl+,:后退ctrl+.:前进ctrl+m:前进、后退一步ctrl+k:复制一行ctrl+tab:前一步后一步.c之间切换ctrl+h:替换

2022-01-09 19:14:25 1031

原创 UEFI 之 代码执行uefi shell命令

概要这需求就是类似于linux系统下的系统调用接口system("command")EDK中实现Shell protocol 实现包含协议[Protocols] gEfiShellProtocolGuid ## CONSUMESDemoEFI_STATUSEFIAPIUefiMain ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE

2021-12-30 17:58:18 2286

原创 RPM打包原理spec

概述RPM(Redhat Package Manager)是用于Redhat、CentOS、Fedora等Linux 分发版(distribution)的常见的软件包管理器。因为它允许分发已编译的软件,所以用户只用一个命令就可以安装软件。准备首先请准备一个Linux环境,比如CentOS。RPM打包使用的是rpmbuild命令,这个命令来自rpm-build包,这个是必装的。yum install rpm-build当然也可以直接安装rpmdevtools,这个工具还包含一些其他的工具,同时

2021-12-30 15:47:05 1361

原创 grafana编译安装

系统loongnix准备环境安装go语言环境yum install golang -y[root@master grafana]# go versiongo version go1.11.5 linux/mips64le[root@master grafana]# 安装nodejsyum install nodejs-devel[root@master grafana]# node -vv10.15.3[root@master grafana]#安装npmyum i

2021-12-30 15:46:44 925

原创 dpdk编译移植

从 字面解释上看,D PD K 是 专 注于数据平面软件开发的套件;本质上,它是一组可以从用户空间调用的软件库,提供了一种开销更小的方法来代 替 传 统 的 L inux系 统 调 用 ,使得应用程序可以绕过内核直接和底层硬件交互.网 络 数 据 包 不 再 通 过 内 核 ,而 是 直 接 走D PD K 的专有路径,从网卡直接到达用户空间,交由用户处理,从而将繁重的数据包过滤、数据包转发工作从内核态转至用户态.另外,D PD K实现了多核“无锁”并行结构,使多处理器核心可以高效并行工作,并充分发挥速

2021-12-30 15:46:23 1214

原创 龙芯平台fio异步无法测试问题

概要fio是一个非常灵活的io测试工具,他可以通过多线程或进程模拟各种io操作随着块设备的发展,特别是SSD盘的出现,设备的并行度越来越高。要想利用好这些设备,有个诀窍就是提高设备的iodepth, 一次喂给设备更多的IO请求,让电梯算法和设备有机会来安排合并以及内部并行处理,提高总体效率。应用程序使用IO通常有二种方式:同步和异步。 同步的IO一次只能发出一个IO请求,等待内核完成才返回,这样对于单个线程iodepth总是小于1,但是可以通过多个线程并发执行来解决,通常我们会用16-32个线程同时工

2021-12-30 15:46:05 532

原创 rpmrebuild 妙用

安装rpmrebuild下载链接: https://sourceforge.net/projects/rpmrebuild/files/rpmrebuild/2.12-1/rpm -ivh rpmrebuild-2.14-1.noarch.rpm #安装rmprebuild提取SPEC文件可以提取提取已经安装的rpm包的SPEC文件rpmrebuild -s test.spec htop-1.0.3-4.fc21.loongson.mips64el[root@localhost tem

2021-12-30 15:45:14 1001

原创 rpm打包-helloword

示例这里用官方文档中的例子来操作一遍。 下面演示 GNU“Hello World” 项目的打包过程。下载源码cd ~/rpmbuild/SOURCESwget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz编辑SPEC文件编辑SPEC文件,Emacs 和 vi 的最新版本有 .spec 文件编辑模式,它会在创建新文件时打开一个类似的模板。所以可使用以下命令来自动使用模板文件:cd ~/rpmbuild/SPECSvim hello.spec

2021-12-30 15:44:55 445

原创 java环境部署

安装方法方法1. tar包方式从 下载页面 下载安装文件,请确认所使用的版本(32位、64位)。解压缩(放在/opt目录下为例)$ sudo tar zxf DOWNLOADED-JDK.tar.gz -C /opt验证java版本$ /opt/j2sdk-image/bin/java -versionopenjdk version "1.8.0_60"OpenJDK Runtime Environment (Loongson 8-loongson3a-Loongnix)

2021-12-26 10:25:59 1667

原创 maven命令总结

Maven库:http://repo2.maven.org/maven2/Maven依赖查询:http://mvnrepository.com/说明一般使用情况是这样,首先通过cvs或svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。常用命令创建Maven的普通java项目:mvn archetype:cr

2021-12-26 10:24:06 138

原创 龙芯-大数据平台搭建(ambari+hdp)

准备主节点:master(10.40.25.190)从节点:slave1(10.40.25.191),slave2(10.40.25.192)注意事项:确保所有节点时间同步;确保所有节点能互相通信以及能访问外网检查DNS和NSCD所有节点都要设置ambari在安装时需要配置全域名,所以需要检查DNS。为了减轻DNS的负担, 建议在节点里用 Name Service Caching Daemon (NSCD)vi /etc/hosts10.40.25.190 master.com master

2021-12-26 10:17:33 3389

原创 大数据各组件概述

大数据概要流程图解析1)数据采集:定制开发采集程序,或使用开源框架FLUME2)数据预处理:定制开发mapreduce程序运行于hadoop集群3)数据仓库技术:基于hadoop之上的Hive4)数据导出:基于hadoop的sqoop数据导入导出工具5)数据可视化:定制开发web程序或使用kettle等产品6)整个过程的流程调度:hadoop生态圈中的oozie工具或其他类似开源产品什么是RPCRPC(Remote Procedure Call Protocol)——远程过程调用协议,它

2021-12-26 09:54:29 3396

原创 storm测试

## 流计算测试(storm)配置 kafka格式化磁盘(安装 kafka 节点的服务器)挂载一块磁盘将其格式化为ext4格式mkfs.ext4 /dev/nvme0n1分别挂载磁盘到安装 kafka 节点的服务器有几个盘创建几个文件夹mkdir -p t0 t1 t2 t3挂载mount /dev/nvme0n1 /mnt/t0mount /dev/nvme1n1 /mnt/t1mount /dev/nvme2n1 /mnt/t2mount /dev/nvme3n1 /m

2021-12-26 09:48:20 999

原创 Hadoop编译

硬件环境环境:同方龙芯两路服务器,操作系统 64 位 loongnix下载重新编译需要的软件包前期准备部署JAVA环境loongnix默认已经安装[root@localhost hadoop-2.6.4-src]# java -versionopenjdk version "1.8.0_202"OpenJDK Runtime Environment (Loongson 8.1.2-loongson3a-Fedora) (build 1.8.0_202-b08

2021-12-26 09:46:41 1098

原创 MIPS指令

MIPS有三种指令格式:(所有指令都是32 位长)R格式功能操作码6bit1源操作数寄存器5bit2源操作数寄存器5bit目标操作数寄存器(放结果)5bit偏移量5bit函数码6bit说明标记/指令opcodersrtrdshamtfunct位数31-2625-2120-1615-1110-65-0例:add000000rsrtrd00000100000rd=rs+rt例: jr000000rs0000

2021-12-26 09:31:19 10190

原创 MIPS 寄存器

概要MIPS寄存器RISC的一个显著特点就是大量使用寄存器。因为寄存器的存取可以在一个时钟周期内完成,同时简化了寻找方式,所以,MIPS的指令中除了加载/存储指令以外,都使用寄存器或者立即数作为操作数,以便让编译器通过保持对寄存器内数据的频繁存取进一步优化代码的生成性能。  MIPS32寄存器分为两类:通用寄存器(GPR)和特殊寄存器。通用寄存器(GPR)在MIPS体系结构中有32个通用寄存器,在汇编程序中可以用编号$0~$31表示,也可以用寄存器的名字表示,如sp、sp、sp、t1、$ta等,如

2021-12-26 09:28:38 6004

原创 MIPS汇编的HolleWorld

概要我们学会了MIPS汇编语言后,编写汇编程序还需要一个“框架”,用“框架”的目的是让我们更加容易的编写汇编程序,把更复杂的任务,比如符号解析、地址重定向、对齐等工作交给工具链去完成。这个框架有2种方式,汇编源代码文件(以.S为后缀)和内嵌汇编(在.c文件中嵌入汇编语言的方式)。本篇介绍.S为后缀的汇编源程序的编写格式。我们可能经常遇到以.S后缀结尾和.s后缀结尾的文件。它们都是汇编源文件(可以作为gcc as汇编器的输入)。区别在于.S是GCC编译的汇编源代码文件。编译后生成的输出文件就是.s。之前介

2021-12-26 09:26:44 575

原创 C语言 文件操作

文件:文件是存放在外存的数据的有序集合,普通文件.txt、.c、.h…设备文件设备文件代表一个设备,在linux操作系统下,一切设备皆文件。要操作设备就操作设备文件。按编码分:文本文件二进制文件在c语言中对文件进行读写的时候不关心是什么编码的,只是把文件当做字节流(字节的集合)来处理,按字节进行读写,文件基本操作:1:文件指针FILE *fp;//FILE 是一个结构体类型,打开文件的时候系统会在内存中申请一个 FILE 类型的结构体变量,来存放此文件相关的信息。返回结构体的

2021-12-19 18:19:35 543

原创 C语言指针

指针:指针的概念:指针就是地址。内存:内存的每一字节都分配了一个编号,从0x00 00 00 00 开始到 0x ff ff ff ff这个编号咱们称之为内存的地址。指针变量:存放地址编号的变量被称为指针变量。指针变量的分类:按类型分:一级指针char * p ; //字符指针变量 可以保存字符变量的地址,或字符串的地址。int * p;//整型指针变量 可以保存整型变量的地址long int *p;float *p;//浮点型的指针变量,可以保存float类

2021-12-19 18:18:29 187

原创 C语言预处理

预处理编译过程:1:预编译将.c 中的头文件展开、宏展开生成的文件是.i文件2:编译将预处理之后的.i 文件生成 .s 汇编文件3、汇编将.s汇编文件生成.o 目标文件4、链接将.o 文件链接成目标文件预处理有几种啊?1:include#include<>//用尖括号包含头文件,在系统指定的路径下找头文件#include "" //用双引号包含头文件,现在当前目录下找头文件,找不到,再到系统指定的路径下找。注意:include 经常用来包含头文件,可以包含 .c

2021-12-19 18:17:28 917

原创 C语言结构体

结构体1、结构体类型的定义三种方法1、先定义结构体类型再定义结构体变量。 struct stu{ //结构体成员列表 int num; char sex; char name[20]; float score; }; struct stu lili; 2、在定义结构体类型的时候顺便定义结构体变量 struct stu{ //结构体成员列表 int num

2021-12-19 18:16:37 632 1

原创 字符串处理

字符串处理:char *strcpy(char *dest,const char *src);函数的作用将src指向的字符串拷贝dest所指向的内存中。注意:dest必须够大,否则将会出现内存污染。char* strncpy(char *dest ,const char *src,int n);将src指向的字符串前n个字节拷贝到dest所指向的内存中,注意,不补’\0’char *strcat(char *dest,const char *src);功能:将src指向的字符串追加到des

2021-12-19 18:09:37 149

原创 数组和函数

数组和函数一:数组按数组元素的类型可以分为:字符数组 char a[10];数值数组:short int a[10];int a[10]float a[10]double a[10]指针数组char *a[10]//定义了一个指针数组有10个字符指针变量其他类型类似结构体数组struct stu { 成员列表};struct stu edu[10]//定义了一个结构体数组有十个结构体变量按维数分为一维数组、二维数组、多维数组int a[10];//一维数组

2021-12-19 18:08:22 643

原创 C 语言特点

1、c语言特点一:关键字:1、数据类型相关的关键字char 、short int、int 、long int、 float、double、struct、union、enum 、signed、unsigned、void2、存储相关关键字 register、static、const、auto、extern、3、控制语句相关的关键字if 、else 、break、continue、for 、while、do、switch casegoto、default4、其他关键字sizeof、t

2021-12-19 18:05:41 382

原创 uefi 之 ramdisk

ramdisk一般指虚拟内存盘。虚拟内存盘是通过软件将一部分内存(RAM)模拟为硬盘来使用的一种技术;EDK中支持ramdisk协议的`gEfiRamDiskProtocolGuid`,bootManage,httpboot使用;

2021-12-14 13:59:34 2614 3

原创 CTag 安装和使用

安装ctagsuniversal-ctags是exuberant-ctags的替代者,相比gtags可以解析更多的语言,但是其他方面比如操作,数据库的组织方式等就不够好。需要自己编译安装先用 git clone https://github.com/universal-ctags/ctags.git 下载,然后参考ctags/docs/autotools.rst,用以下命令编译(Ubuntu要先用 sudo apt-get install autoconf 安装autoconf)$ ./autogen

2021-06-14 11:41:49 2660 3

原创 git 使用

查看和修改用户名以及邮箱:git config user.namegit config user.email设置/更改用户名和邮箱,有先后顺序:git config --global user.name "your name"git config --global user.email "your email"开启/关闭颜色git config --global color.ui true换行符操作Linux是0x0A(LF),win是0x0D0A(CRLF)Au.

2021-06-07 23:00:03 288

原创 vim8.2移植+ gtags 安装

下载源码https://www.vim.org/download.php#unixftp://ftp.vim.org/pub/vim/unix编译配置./configure --with-features=huge \              --enable-multibyte \     &nbs

2021-06-07 22:57:46 776

原创 UEFI之虚拟环境(OVMF)

概要模拟器平台介绍 :一个仿真平台并不是一个实际的硬件平台 , 但它旨在证明 EDKII 核心模块的稳定性和独立于硬件可以开发模块。仿真平台和实际平台之间的差异是其加载器和仿真的硬件设备。OvmfPkg 是基于qemu的虚拟环境,Linux 和 Windows都可以使用源码git clone https://github.com/tianocore/edk2.gitcd edk2git submodule update --initcd ..qemu需要安装qemuapt insta

2021-06-06 23:07:13 3760 5

原创 UEFI之VFR

概述UEFI用户交互界面的实现涉及到多种不同类型的文件,这里要讲的是VFR(Visual Forms Representation)文件,相比UNI文件它要复杂得多,理解起来也更困难。UEFI交互界面那些字符串是来自UNI文件的(其实并不是全部来自UNI,也有部分是直接通过代码生成的),而整个窗体的框架部分则是来自VFR文件的。在UEFI中,构成这样的窗体的组件大致有四种,分别是Strings,Forms,Fonts和Images,如下图所示:Strings就是UNI文件提供的,Forms就是本文

2021-06-06 22:55:44 3851 1

原创 UEFI之Basetools技巧总结

概要在EDK2中没有编写Makefile的过程,终止是通过Basetools生成编译文件和Makefile的,但是在我们使用中总是感觉没有使用Makefile顺手,所以这里进行总结;生成静态库进行编译这个过程就是,我编译生成一个静态库.lib文件,然后提供别人或自己在以后的编译中使用,省去了重新编译的时间,也可以实现只提供静态库和.h给别人使用;这里以OpensslLib.inf为例,由于OpensslLib编译非常的慢,所以我就将它做成了一个静态库;[Defines] INF_VERSION

2021-06-06 22:51:51 1581

原创 UEFI 之 EDK2 环境的搭建

下载代码下载代码主要是在githun,但需要说明的是,直接克隆的代码是不完整的,少好多的子目录和StdLib等;克隆代码:git clone https://github.com/tianocore/edk2.git克隆子目录代码cd edk2git submodule update --init更新子目录代码cd edk2git pullgit submodule update如果无法更新就加这个参数--recursive子目录包括CryptoPkg/Lib

2021-06-06 21:16:51 1138 1

原创 UEFI 之 HelloWorld

基础的Hello Worldmain.c/*main.c */#include <Uefi.h>#include <Library/UefiLib.h>#include <Library/UefiApplicationEntryPoint.h>EFI_STATUSEFIAPIUefiMain ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *Syst

2021-06-06 21:14:07 737

原创 UEFI之虚拟环境搭建(EmulatorPkg)

概要模拟器平台介绍 :一个仿真平台并不是一个实际的硬件平台 , 但它旨在证明 EDKII 核心模块的稳定性和独立于硬件可以开发模块。仿真平台和实际平台之间的差异是其加载器和仿真的硬件设备。Emulator虚拟环境,用来取代Nt32Pkg和UnixPkg,可以跨平台编译运行的一个虚拟器。源码git clone https://github.com/tianocore/edk2.gitcd edk2git submodule update --initcd ..环境1.更新软件源,sudo

2021-06-06 21:10:27 1673 1

原创 UEFI之edk2 目录说明

edk2中的子目录AppPkgUEFI Application Development Kit是一系列用来进行uefi app开发的套件,标准依赖库,工具以及demo,目标是降低UEFI app的开发门槛。MdePkg全称为“Module Development Environment Package”,这是一个特殊的package,包含了用于开发一个module所需要的最小环境。一个module可能也会依赖于其他的Package,但是所有modules必须依赖于MdePkg。MdeModuleP

2021-06-06 21:08:32 1315

空空如也

空空如也

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

TA关注的人

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