- 博客(180)
- 资源 (4)
- 收藏
- 关注
原创 ARM平台Linux系统设置SPI中断亲和性(中断cpu掩码设置)
可以通过往smp_affinity文件里面写配置值改写亲和性,配置值本质上是一个掩码值,即用一个bit表示某一个cpu核是否可以处理该中断。假设我们需要设置的中断时这个定时器10012000.timer0,中断号是13,然后进入目录。只需要将掩码值以十六进制值对应字符串(不需要0x)写入smp_affinity文件即可。设置成功,后续当有13号SPI中断触发时,GIC会将中断发送到掩码设定的处理器。首先看一下需要设置的中断的中断号,使用下面这个命令。0-7表示这个中断可以被所有cpu核处理。
2024-01-12 16:59:04
582
原创 基于彩虹表碰撞法破解SHA/MD5等hash加密——半非暴力破解哈希逆运算
网上查了一下彩虹表攻击相关资料,发现大部分文章说得都不太清楚,于是扒了Philippe Oechslin最初的paper《Making a Faster Cryptanalytic Time-Memory Trade-Of》,再结合开源项目RainbowCrack-NG(),把整个彩虹表攻击原理及其实现方法做了梳理,方便大家理解。
2023-12-26 18:10:17
2118
原创 C++中new/delete和malloc/free行为推导
1.new/delete内部实现使用的还是malloc和free的逻辑,也还是从heap上分配内存;面试中是不是经常被问道new和malloc的区别?2.堆内存分配规则是寻址尺寸大小相近的空闲内存块;网上的答案也是五花八门,于是乎写了个程序验证一下。
2023-12-17 00:37:32
90
原创 使用gdb调试QEMU模拟的RISC-V平台程序
target remote 表示连接远程调试,后面跟上远程地址和端口,本机可省略地址。我们跑一个裸核程序,也就是不带操作系统的程序,然后使用gdb调试该程序。首先编译目标程序,然后使用QEMU的kernel参数进行加载。-s 让QEMU在1234端口侦听gdb的调试连接;-nographic 表示没有图像界面,只有命令行。-S 表示启动后就挂起,等待 gdb 连接;-bios 后面跟opensbi固件程序。-kernel 后面跟要调试程序文件路径。-smp 后面跟模拟CPU核心数。
2023-11-29 19:37:09
621
4
原创 浅谈Linux bash脚本----getopts获取脚本POSIX标准传参
getopts会随着while循环挨个遍历参数列表,opt为匹配到的参数字符,OPTARG为当前匹配到的参数值,如果有的话。总结一下,getopts从第一个脚本命令行参数开始,假如是以-开头,则识别为是传参,取-后面的一个字母做为传参名,然后到getopts配置的参数列表中检查该传参是否有值。如果该传参有配置值,取该命令行参数剩余部分为参数值,如果剩余部分为空字符串,则取下一个命令行参数做为参数值(不管下一个命令行参数是否以-开头);命令基于 POSIX 标准,并且通常与。
2023-11-23 14:43:48
793
原创 全职RISC-V芯片D1开发板使用adb串口COM连接设备和文件上传下载
将两个USB端口都连接到工作电脑推荐使用ADB工具访问开发板,下载连接如下:解压后直接可用,将解压后的目录加入环境变量,方便使用。
2023-11-22 11:46:49
809
原创 Python中match...case的用法
比如本例中的case _: ,与default功能类似,表示其他值,同时_相当于一个局部变量,其值等于condition,_也可以取其他变量名,当然,一个match语句中最多只能有一个捕捉模式的case,且必须位于最后一个case,就像只能有一个default一样。本例中的a,b,c,d为捕捉模式在列表中的应用,而*b为通配符,表示匹配任意个元素,包括0个元素,且一个case中只能有一个通配符变量。以上是Python中match...case的语法,没有break,也没有default,取而代之的是。
2023-09-24 01:22:08
1951
1
原创 C语言项目将外部数据文件打包进elf文件的解决方案
2、使用objcopy添加数据文件,必须是往main.o中,而不能是main.elf中,因为main.elf是连接后的文件,地址和各段长度都确定了,而main.o中只有长度,没有地址,当修改section内容时,只需要修改section长度即可,最终在link的过程中根据长度确定地址即可;最近遇到一个项目需求,需要将一个数据文件打包进elf可执行程序中,原因是这个elf可执行程序需要在CPU裸机上跑,且没有文件系统支持。需要打包的数据文件为:matrix.dat。
2023-09-19 15:19:16
208
原创 GNU项目管理工具make、autoscan、autoupdate、aclocal、autoconf、automake、configure.ac、Makefile.am简明教程
在Linux环境下编程,Makefile是不可回避的,手写一个Makefile文件或许难度不高,如果要写一个符合自由软件惯例的Makefile就没那么容易了。在工程根目录下命令行执行autoscan命令,他会扫描当前目录下的源代码文件,生成configure.scan文件。在工程更目录下执行 automake 命令,生成 Makefile.in 文件。在工程更目录下执行 configure 命令,生成 Makefile 文件。在工程更目录下执行 aclocal 命令,生成 aclocal.m4文件。
2023-07-07 17:05:55
707
原创 DDR4技术原理详解
DDR4是DDR4-SDRAM的简写,即第4代DDR-SDRAM,DDR-SDRAM全称Double Date Rate Synchronous Dynamic Random Access Memory。本文重点解析DDR4技术规范及其背后的电子电路原理,以及编程使用DDR4过程中需要注意的性能事项。
2023-07-04 15:26:55
8403
原创 数值优化简介
数值优化这个名字来源于一本书,名为《Numerical Optimization》。Numerical Optimization这两个单词传递了两个知识领域的概念:Optimization指的是数学概念上的优化,即求最优解,也可以理解为求函数的最小值的解;Numerical指的是数值计算,即在计算机上通过编程实现数学公式计算;因此数值优化主要研究对象是怎么编写计算机程序求解数学领域的最优化问题,特别是计算工程领域的最优方案。数值优化首先是个数学优化问题,可以简单理解为下面的数学公式。
2023-06-28 17:33:48
1687
原创 DDR-SDRAM技术原理总结
DDR SDRAM 全称: Double Date Rate Synchronous Dynamic Random Access Memory先说RAM(Random Access Memory),字面意思:随机访问存储器,其特点是可任意访问一个内存地址,其访问时间是一样的(相对于RAM出现之前的卡带和硬盘)。进一步DRAM(Dynamic Random Access Memory),与其相对应的是SRAM(Staic Random Access Memory),两者区别在于物理结构不一样,SRAM使用4-
2023-06-14 18:49:48
3135
原创 MUMPS稀疏矩阵求解库4.8.4到5.6.0之间各个版本下载地址
"4.8.4": {"urls": [},"4.9.2": {"urls": [},"urls": [},"5.0.2": {"urls": [},"5.1.2": {"urls": [},"5.2.1": {"urls": [},"5.3.1": {"urls": [},"5.3.5": {"urls": [},"5.4.1": {"urls": [
2023-06-09 14:48:12
1273
2
原创 用于Alpha指令集处理器CModel裸机(不带操作系统)的CoreMark性能测试程序源码编译流程
编译coremark源码用于Alpha指令集的CModel仿真程序
2023-05-15 14:50:29
1275
原创 Linux(类Unix)系统可执行程序ELF文件格式详解
类Linux系统下,ELF文件结构大致可分为ELF header、Seciotn header table、Program header table,即将数据划分为多个Section存入ELF文件,然后通过Section header table进行索引,在ELF header中记录Section header table的位置和大小
2023-05-10 11:16:17
1533
原创 通过SSHFS协议将Linux目录映射到Windows网络驱动器操作步骤
最近在使用国内某友商的自研芯片服务器,自己裁剪的Linux系统,遇到NFS和Samba无法编译安装的情况,幸好SSH是现成就有的,就想能否基于SSH协议实现文件共享,最好是这个Linux服务器和工作环境的Windows实现文件共享。网上找了一下,还真有个sshfs协议,相应的工具也是齐全的,只需要在Windows端进行配置即可,记录如下。,其中sshfs是固定的,后面的hpc是SSH账号登录名,后面的IP地址是SSH服务器IP。这两个软件都必须装,否则后续步骤无法成功。
2023-04-28 09:55:40
1297
原创 cmake简明教程:关键语法分析
CMake是一个跨平台的安装/编译工具,它能用简单的语句描述所有平台的安装/编译过程。通常在Linux环境下,CMake根据CMakeLists.txt生成Makefile,在Makefile中定义了具体的编译过程。如上所示,cmake内置了大量于编译指令对应的命令,同时还定义了编程常用的变量设置、分支语句、循环语句等流程控制命令。add_executable设置了编译后生成的可执行文件名字为test,源代码文件为main.cc。project定义了该工程的项目名称,以及版本号为1.0。
2023-03-12 10:01:10
186
转载 ARM64汇编指令入门
将x0的值减去100,放入cpsr中,cpsr寄存器有两位表示(lessthan,zero), 如果结果为小于0,则lessthan这一位标识为1,zero位标识为0。栈顶指针偏移6个字节地址后,从这开始,依此取16个字节的值,前8个字节给X29,后8个字节给X30。B:跳转指令,如条件判断跳转符合条件的指令执行,可以看做是if,else,通常与CMP配合使用。函数调用过程中,会开辟栈空间供局部变量使用,使用后,需要还原栈空间,FP,指令地址等等。
2022-09-29 17:25:02
5134
原创 gcc 编译参数整理
O3: 打开所有-O2优化选项并且增加 -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload和-ftree-vectorize优化选项。gcc main.o -o main // 把二进制代码链接成可执行文件,在不加 -E -S -c 这几个参数时,默认编译成可执行文件。eg:gcc -S main.i -o main.s // 把标准输出文件编译成汇编代码,即把C代码编译成汇编代码。
2022-09-08 14:57:45
1265
原创 使用node-addon-api编写node.js插件
直接上干货。步骤:第一步:编写binding.gyp文件,参考node-gyp文档node-gyp - npm{ "targets": [ { "target_name": "ShareMemory", "cflags!": [ "-fno-exceptions" ], "cflags_cc!": [ "-fno-exceptions" ], "sources": [ "./mmap.cc" ], "include_di.
2021-12-15 17:51:09
3159
2
原创 JavaScript如何将Unit8Array图片数据转换为JPG图片
网页端JavaScript如何将Unit8Array图片数据转换为JPG图片
2021-11-23 12:57:26
8360
原创 基于electron开发自己的IDE 之 玩转electron-vue
打算开发一个JavaScriptIDE,后续开发课程及课程讲解的时候方便使用这个IDE项目打算用electron进行开发,UI部分用vue配合element-ui,代码编辑器部分ace 或者CodeMirror,具体还有待确认本篇先走通一下electron-vue的项目构建,这些都是基于node.js的,所以先安装node.js国内网络环境不佳,建议安装cnpm,方便后续安装npm包npm i cnpm -g然后安装vue脚手架cnpm i vue-cli安装创建elect.
2021-04-22 09:48:03
1307
原创 微信开放标签 wx-open-launch-weapp 踩坑日记
先贴上H5源码<!DOCTYPE HTML><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <link rel="stylesheet" href="https://res.wx.qq.com/open/libs/weui/2.4.1/weui.min.css"></link> <script
2021-04-01 14:54:34
1355
原创 支付宝小程序填坑系列 之 自定义组件无法显示
最近换了台新机器,重装了支付宝小程序IDE,发布了一个新版本的支付宝小程序,于是奇异的事情发生了。。。之前使用很正常的支付宝小程序,突然间无法登录了,于是一顿排查猛如虎。。。最后发现是卡在了登录环节,我们登录组件是使用了一个小程序自定义组件,为了方便在不同页面复用。平时表现优异的登录组件,怎么突然就罢工了呢?各种调试。。。就是不出来。。。无奈之下只要查官方文档,好家伙,终于找到原因了,如下所述:https://opendocs.alipay.com/mini/framework/cust
2021-03-25 14:11:56
3080
原创 基于KOA开发微信公众号管理系统
准备工作:1.微信开发官方文档,必备。https://mp.weixin.qq.com/wiki2.测试公众号,必备。https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login3.云服务器和域名,我用的阿里云框架选择:Node.js参考:1.https://www.cnblogs.com/pengdt/p/12072512.html...
2021-02-08 22:03:50
369
原创 vue.js ElementUI做Form时遇到输入框无法输入问题及其解决方案
我们通常会在data里面定义一个formData用于存放这个Form表单用到的数据。如果在data定义的时候给这个formData赋了初值,也就是部分字段值,比如下面这个例子:表单字段:name、age、addressformData初值{age: 18}且在created函数里面给formData赋了name值,也就是 formData.name = '张三'那么就会出现一个问题,在页面上无法修改name字段的值解决办法也很简单,data里面未申明的字段,不要在created里面去
2021-01-20 11:27:14
6737
原创 记录一次 Deadlock found when trying to get lock; try restarting transaction 错误
在MySql插入数据的时候遇到 Deadlock found when trying to get lock 错误,日志如下SequelizeDatabaseError: Deadlock found when trying to get lock; try restarting transaction at Query.formatError (/www/server/node_modules/sequelize/lib/dialects/mysql/query.js:244:16)
2020-09-20 08:14:38
7582
原创 Node.js通过Request访问PHP写的服务器返回HPE_INVALID_HEADER_TOKEN(Invalid header token)问题解决过程记录
先看一下报错内容百度了HPE_INVALID_HEADER_TOKEN,没找到啥有用的信息于是用HTTPAnalyse抓包看一下,如图好家伙,这个response headers比较有个性,赶紧联系对方修改一下,把application/json;charset=UTF-8老老实实放到Content-Type下面去,问题就搞定了总结一下,应该是node.js在解析response的header的时候,读到application/json;charset=UTF-8的时候报异常了..
2020-09-09 18:03:22
3555
原创 支付宝小程序开发之使用 alipay.fund.trans.uni.transfer接口支付宝打款到银行卡
使用alipay.fund.trans.uni.transfer接口进行打款必须使用支付宝公钥证书进行签名,但是支付宝提供的alipay-sdk并不支持支付宝公钥证书加密,所以,我们必须自己进行加密。官方说明文档参考:配置公钥证书https://opensupport.alipay.com/support/helpcenter/207/201602471154?ant_source=antsupport&ant_source=manual&recommend=c465eca9838.
2020-06-02 16:02:54
7187
2
原创 支付宝小程序支付模块填坑手记--手把手教你如何使用node.js版本支付宝小程序alipay-sdk对接支付接口alipay.trade.create
刚刚把一个微信小程序转换成支付宝小程序,其中支付宝的支付模块的坑是影像深刻啊,记录一下。首先是支付宝的文档,关于小程序支付的文档地址:https://opendocs.alipay.com/mini/introduce/pay文档大方向上是清晰的,但细节上的坑是巨深的,主要集中在 第五步:调用接口 的 第2小点在服务端调用 alipay.trade.create(统一收单交易创建接口)...
2020-05-07 17:51:22
5655
5
原创 Sequelize使用findAndCountAll、belongsTo、hasMany、include、count、sum、group进行多表关联统计查询问题小结
场景回顾数据库:Mysql5Sequelize版本:5.21.5我们有两个表,分别为 用户表(user)和文章表(article),建立Sequelize模型如下User.jsmodule.exports = function (sequelize, DataTypes) { return sequelize.define('user', { id: { // 编...
2020-04-13 10:18:47
11127
1
Python DBUtils
2012-05-02
MySQL数据库工具(MySQL-python-1.2.3.win-amd64-py2.7.exe)
2012-05-02
条形码绘制源代码(支持Code128 Code39 Datamatrix Postnet等)
2011-05-12
jira_crack.zip(JIRA4破解补丁)
2010-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人