- 博客(186)
- 资源 (4)
- 收藏
- 关注
原创 Micropython编译ESP32C3开发板版本过程详细步骤步骤
首先需要将esp-idf切换到Micropython支持的版本,根据micropython/ports/esp32/README.md中的描述,v1.24版本的Micropython支持v5.0.4, v5.0.5, v5.1.2, v5.2.0, v5.2.2,但是经过尝试,只有v5.1.2版本的esp-idf版本能够编译成功,少走弯路,直接用这个版本。但是执行. /home/yle/esp/esp-idf/export.sh后报缺少libusb库,同样,apt安装一下。工作目录:/root/
2024-12-08 00:58:11
594
原创 ESP32C3单片机使用笔记---烧录MicroPython
3.使用以下命令将下载到的MicroPython固件程序烧录到ESP32C3的Flash中。直接使用git clone。
2024-11-16 18:06:35
466
原创 Mojo在Windows上详细安装步骤
3.安装Ubuntu,必须从Microsoft Store安装,打开Microsoft Store,搜索Ubuntu,安装第一个(不带版本号的,这个是最新的稳定版本),安装完成后,在Microsoft Store里面点“运行”,会弹出窗口创建Linux账号,到此WSL+Ubuntu部署成功。1.Windows版本必须是Windows10以上,而且版本≥1903,或者内部版本≥18362,若不满足,请升级系统。8.运行mojo REPL模式。然后回车,两次,得到如下打印。7.编译mojo程序。
2024-10-14 16:39:11
836
原创 Windows WSL Ubuntu运行Mojo项目注意事项汇总
3.magic init创建的项目不要创建到mount到Linux系统的Windows目录,否则在magic run的时候,会报failed to link ncurses-6.5-he02047a_1.conda错误,在/home目录下创建项目即可解决该问题;1.从Microsoft Store安装最新版本的Ubuntu,之前尝试使用WSL --install安装,没能成功;2.必须使用WSL2版本,否则最新版本的Ubuntu运行不起来;持续更新中......
2024-10-14 15:28:45
162
原创 .config、Kconfig、***_defconfig之间的关系和工作原理
本文简要介绍了defconfig、Kconfig的工作原理,以及他们和.config的关系
2024-09-20 20:44:51
618
原创 SPI擦除Flash芯片MX25U的一个sector流程分析
3.发送05命令,轮询设备状态,擦除结束之前设备状态为0x3333,直到设备返回状态0x0000,擦除结束;2.发送20命令,带上flash地址,擦除指定扇区;1.发送06命令,打开写使能;4.发送04命令,关闭写使能;
2024-09-14 15:58:07
189
原创 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
959
原创 基于彩虹表碰撞法破解SHA/MD5等hash加密——半非暴力破解哈希逆运算
网上查了一下彩虹表攻击相关资料,发现大部分文章说得都不太清楚,于是扒了Philippe Oechslin最初的paper《Making a Faster Cryptanalytic Time-Memory Trade-Of》,再结合开源项目RainbowCrack-NG(),把整个彩虹表攻击原理及其实现方法做了梳理,方便大家理解。
2023-12-26 18:10:17
3605
原创 C++中new/delete和malloc/free行为推导
1.new/delete内部实现使用的还是malloc和free的逻辑,也还是从heap上分配内存;面试中是不是经常被问道new和malloc的区别?2.堆内存分配规则是寻址尺寸大小相近的空闲内存块;网上的答案也是五花八门,于是乎写了个程序验证一下。
2023-12-17 00:37:32
154
原创 使用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
1111
5
原创 浅谈Linux bash脚本----getopts获取脚本POSIX标准传参
getopts会随着while循环挨个遍历参数列表,opt为匹配到的参数字符,OPTARG为当前匹配到的参数值,如果有的话。总结一下,getopts从第一个脚本命令行参数开始,假如是以-开头,则识别为是传参,取-后面的一个字母做为传参名,然后到getopts配置的参数列表中检查该传参是否有值。如果该传参有配置值,取该命令行参数剩余部分为参数值,如果剩余部分为空字符串,则取下一个命令行参数做为参数值(不管下一个命令行参数是否以-开头);命令基于 POSIX 标准,并且通常与。
2023-11-23 14:43:48
913
原创 全职RISC-V芯片D1开发板使用adb串口COM连接设备和文件上传下载
将两个USB端口都连接到工作电脑推荐使用ADB工具访问开发板,下载连接如下:解压后直接可用,将解压后的目录加入环境变量,方便使用。
2023-11-22 11:46:49
919
原创 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
2781
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
321
原创 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
832
原创 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
12355
原创 数值优化简介
数值优化这个名字来源于一本书,名为《Numerical Optimization》。Numerical Optimization这两个单词传递了两个知识领域的概念:Optimization指的是数学概念上的优化,即求最优解,也可以理解为求函数的最小值的解;Numerical指的是数值计算,即在计算机上通过编程实现数学公式计算;因此数值优化主要研究对象是怎么编写计算机程序求解数学领域的最优化问题,特别是计算工程领域的最优方案。数值优化首先是个数学优化问题,可以简单理解为下面的数学公式。
2023-06-28 17:33:48
2439
原创 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
4007
原创 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
1629
2
原创 用于Alpha指令集处理器CModel裸机(不带操作系统)的CoreMark性能测试程序源码编译流程
编译coremark源码用于Alpha指令集的CModel仿真程序
2023-05-15 14:50:29
1439
原创 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
1707
原创 通过SSHFS协议将Linux目录映射到Windows网络驱动器操作步骤
最近在使用国内某友商的自研芯片服务器,自己裁剪的Linux系统,遇到NFS和Samba无法编译安装的情况,幸好SSH是现成就有的,就想能否基于SSH协议实现文件共享,最好是这个Linux服务器和工作环境的Windows实现文件共享。网上找了一下,还真有个sshfs协议,相应的工具也是齐全的,只需要在Windows端进行配置即可,记录如下。,其中sshfs是固定的,后面的hpc是SSH账号登录名,后面的IP地址是SSH服务器IP。这两个软件都必须装,否则后续步骤无法成功。
2023-04-28 09:55:40
1630
原创 cmake简明教程:关键语法分析
CMake是一个跨平台的安装/编译工具,它能用简单的语句描述所有平台的安装/编译过程。通常在Linux环境下,CMake根据CMakeLists.txt生成Makefile,在Makefile中定义了具体的编译过程。如上所示,cmake内置了大量于编译指令对应的命令,同时还定义了编程常用的变量设置、分支语句、循环语句等流程控制命令。add_executable设置了编译后生成的可执行文件名字为test,源代码文件为main.cc。project定义了该工程的项目名称,以及版本号为1.0。
2023-03-12 10:01:10
230
转载 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
5800
原创 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
1358
原创 使用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
3298
2
原创 JavaScript如何将Unit8Array图片数据转换为JPG图片
网页端JavaScript如何将Unit8Array图片数据转换为JPG图片
2021-11-23 12:57:26
8981
原创 基于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
1500
原创 微信开放标签 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
1461
原创 支付宝小程序填坑系列 之 自定义组件无法显示
最近换了台新机器,重装了支付宝小程序IDE,发布了一个新版本的支付宝小程序,于是奇异的事情发生了。。。之前使用很正常的支付宝小程序,突然间无法登录了,于是一顿排查猛如虎。。。最后发现是卡在了登录环节,我们登录组件是使用了一个小程序自定义组件,为了方便在不同页面复用。平时表现优异的登录组件,怎么突然就罢工了呢?各种调试。。。就是不出来。。。无奈之下只要查官方文档,好家伙,终于找到原因了,如下所述:https://opendocs.alipay.com/mini/framework/cust
2021-03-25 14:11:56
3346
原创 基于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
411
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关注的人