自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 资源 (5)
  • 收藏
  • 关注

原创 【test】google cloud

此外,服务器上还默认安装了 Docker, 这样就可以直接在 Docker 基础上运行一个 Kubernetes 本地集群了,还要啥自行车!默认已经安装了 VsCode 开发环境和终端界面,都是在线运行的,使用非常丝滑。

2024-09-27 17:57:23 280

原创 【linux】regulartor-fixed

作用:创建一个固定的 regulator。一般是一个 GPIO 控制了一路电,只有开(enable) \ 关(disabled)两种操作。

2024-09-25 18:26:35 457

原创 《汇编语言》第14章——实验 14访问CMOS RAM

编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。

2024-09-24 00:39:39 265

原创 《汇编语言》第13章——实验 13 编写、应用中断例程

(1)编写并安装 int 7ch 中断例程,功能为显示一个用0结束的字符串,中断例程安装在 0:200 处。参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret 指令执行前后 CS、IP 和栈中的状态。

2024-09-23 10:50:52 225

转载 【linux】regulator子系统

【代码】【linux】regulator子系统。

2024-09-14 17:33:30 214

原创 【test】android 设备树获取

【代码】【test】android 设备树获取。

2024-09-13 16:45:17 138

转载 【shell】高级 Shell 脚本技术

实现自定义错误消息,以便在出现问题时提供更多背景信息。exit 1;

2024-09-13 09:57:43 134

转载 【linux】devfreq 内核框架介绍

devfreq框架存在的意义,是为了将调频逻辑的公共部分,比如数据结构,调频方法等抽象出来,减少重复代码的产生,方便驱动工程师实现设备的调频操作。我们这里将有调频需求的设备称为device_freq,以便后续的讨论。有了devfreq框架,驱动工程师只需要按照devfreq框架提供的函数原型,实现具体设备的具体调频操作,同时选取合适的governor,并将device_freq和底层调频方法一同注册进devfreq框架,就能够实现调频。这里的governor ,其实指的是不同的调频策略。

2024-09-06 17:11:57 145

转载 【linux】Regulator子系统

Regulator指的是稳定器,有电压稳定器及电流稳定器两种,能够自动维持恒定电流或者电压。其中,电压稳定器voltage regulator在电路中比较常见。从设备驱动的角度来看,regulator的控制比较简单,主要有enable/disable/输出电压或电流大小的控制。Linux利用regulator framework对regulator进行管理和控制。

2024-09-04 15:00:24 388

原创 《汇编语言》第12章——实验12编写子程序号中断的处理程序

编写 0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!要求:仔细跟踪调试,在理解整个过程之前,不要进行后面课程的学习。然后返回到 DOS。

2024-09-03 13:51:42 266

原创 《汇编语言》第11章——实验11编写子程序

编写一个子程序,包含任意字符,以0结尾的字符串中的小写字母变成大写字母,描述如下。功能:将以0结尾的字符串中的小写字母变成大写字母。参数:ds:si指向的字符串首地址。名称:letterc。

2024-08-30 14:32:25 305

原创 《汇编语言》第10章——课程设计1

在整个课程中,我们一共有两个课程设计,编写两个比较综合的程序,这是第一个任务:将实验7中的power idea 公司的数据按照图10.2所示的格式在屏幕上显示出来在这个程序中,要用到我们前面学到的几乎所有的知识,注意选择适当的寻址方式和相关子程序的设计和应用。另外,要注意,因为程序要显示的数据有些已经大于65535, 应该编写一个新的数据到字符串转化的子程序,完成dword型数据到字符串的转化,说明如下。名称: dtoc。

2024-08-23 18:13:09 275

原创 《汇编语言》第8章——实验7

实验内容为将 data 段中的数据按照表格的形式写入到 table 段中,并计算 21 年中的人均收入。

2024-08-23 13:42:25 248

原创 《汇编语言》第10章——实验10编写子程序

同前面的所有实验一样,这个实验是必须独立完成的,在后面的课程中,将要用到这个实验中编写的3个子程序。将dword型数转变为十进制的数据有些已经大于65535,一个编写一个新的数据到字符串转化的子程序,完成dword型数据到字符串的转化。我们在用div指令做除法的时候,很可能发生上面的情况:结果的商过大,超过了寄存器所能存储的范围。我们可以通过特殊的程序来处理这个错误,但在这里我们不讨论这个错误的处理,这是后面的。通过上面的分析可以看到,在概念世界中,有一个抽象的数据12666,它表示了一个数值的大小。

2024-08-21 14:19:09 813

原创 【wsl】wsl + vscode 中使用 typora 打开 markdown 文件

一个五星好评的插件Open in External App则可以在vscode中用typora打开md文件,不仅如此,还有设定其他应用打开相应的文件,比如chrome打开html。添加好之后,右击 md 文件即可看到 Open in External App 选项,点击即可跳转到typora。使用Open in External App。vscode 连接好wsl。

2024-08-07 11:00:28 440

原创 [rustlings]23_conversions

【代码】[rustlings]23_conversions。

2024-07-24 00:30:17 370

原创 [rustlings]18_iterators

【代码】[rustlings]18_iterators。

2024-07-23 14:33:45 112

原创 [rustlings]13_error_handling

这里是创建了一个新的Err类型,Err类型中有两种不同的枚举值.对于不同的枚举值代表两种不同的错误.这一个就是在Err(E)中加了点手脚,就是Err(E)中E的类型也是一个Err类型.

2024-07-19 16:51:20 440

原创 【linux】kernel-trace

preemptoff tracer记录的时间 = call_function_with_irqs_and_preemption_off() + call_function_with_preemption_off()irqsoff tracer记录的时间 = call_function_with_irqs_off() + call_function_with_irqs_and_preemption_off()spin_lock()会调用preempt_disable() 导致。带有函数调用关系的trace。

2024-07-19 14:40:46 479

原创 [rustlings]09_strings

【代码】[rustlings]09_strings。

2024-07-17 22:41:10 130

原创 [rustlings]08_enums

【代码】[rustlings]08_enums。

2024-07-17 21:32:34 257

原创 [rustlings]11_hashmaps

HashMap 类型储存了一个键类型 K 对应一个值类型 V 的映射。它通过一个 哈希函数(hashing function)来实现映射,决定如何将键和值放入内存中。

2024-07-17 17:47:11 280

原创 【linux】linux中的panic

在循环中,它重置非屏蔽中断(NMI),然后定期调用一个名为架构依赖的panic_blink函数;在x86上,该事件会引起键盘LED会闪烁,驱动drivers/input/serio/i8042.c:i8042_panic_blink().原子的 注册函数,实际上对spin_lock_irqsave/spin_unlock_irqsave封装。2、注册 atomic_notifier_chain_register。当内核参数panic=n,表示panic持续时间,在n秒后重启。内核支持四种不同类型,基于。

2024-07-11 15:30:26 579

原创 【linux】内核文件创建以及写文件

在测试创建文件时,一直创建失败,测试发现需要提升内存访问权限到 KERNEL_DS。内核使用系统调用参数肯定是内核空间,为了不让这些系统调用检查参数所以必须设置set_fs(KERNEL_DS)才能使用该系统调用。使用 kernel_write() 将内容写入文件。保存当前的内存访问权限级别到 old_fs 变量。使用 filp_open() 以写入模式创建文件。提升内存访问权限到 KERNEL_DS。最后将内存访问权限恢复到之前保存的级别。

2024-07-05 15:47:08 311

原创 【test】小爱同学通过esp32控制电脑开关

Wake-On-LAN的实现,主要是向目标主机发送特殊格式的数据包,是AMD公司制作的MagicPacket这套软件以生成网络唤醒所需要的特殊数据包,俗称魔术包(Magic Packet)。小爱其实是不直接操作内网被控的电脑,而是通过小爱给一个第三方物联网平台巴法云发送一个消息,而你内网要部署一个用来接收巴法云下发的消息的程序,一旦接收到状态有发生变化,就执行一些执行,比如发送魔术包开机,再比如通过脚本ssh登录你的主机Windows主机执行关机命令.(需要主板支持WOL,在BIOS中设置打开)

2024-07-04 21:26:17 1269

原创 【test】/proc/sysrq-trigger

怎么打开和关闭SysRq组合键?为了安全起见,默认SysRq组合键是关闭的。如果想让此功能一直生效,在/etc/sysctl.conf里面设置kernel.sysrq的值为1。重新启动以后,此功能将会自动打开。因为打开sysrq键的功能以后,有终端访问权限的用户将会拥有一些特别的功能。因此,除非是要调试,解决问题,一般情况下,不要打开此功能。如果一定要打开,请确保你的终端访问的安全性。

2024-06-12 14:47:06 252 1

原创 【test】Windows11下通过sshfs挂载远程服务器目录

Connection:远程服务器配置,如IP、端口、远程用户名、验证方式(密码,或密钥[参考:SSH密钥管理及免密码登陆])此时远程目录已经出现在了本地资源管理器中,未出现可刷新一下,或直接点击GUI主界面连接按钮左边的打开文件夹按钮即可进入目录。sshfs.exe文件的路径与settings中的sshfs binary 路径一致。Remote PATH:远程目录配置,挂载后将成为本地对应盘符的根目录。Local:本地盘符设置(注意不要与现有盘符冲突)长期使用建议在主界面的设置中打开开机自启。

2024-05-25 15:53:59 459

原创 【test】ubuntu22.04和window11同一局域网开共享目录

安装 samba 服务。终端命令行中输入设置共享文件夹。创建 1 个共享文件夹,并修改其权限。设置 samba 配置文件。打开 samba 配置文件。按键盘键“i”进入编辑模式,在文件最后写入。或者输入完后按 “Esc” 退出编辑到命令行模式。按下 “shift + :” 键,输入 ”wq” 保存文件并退出。重启 samba 服务。设置 samba 登录密码。在 win 上测试。“win+r” 键打开运行 输入\\ipip 为 ubuntu主机ip。

2024-05-15 00:28:01 1026

原创 【test】【3588】从板子导出fdt文件转化为dtsi文件方法

使用以下指令生成dtsi文件。使用adb获取fdt文件。

2024-05-11 10:09:24 158

转载 【test】uboot与分区表

读取分区信息:在启动过程中,U-Boot 需要读取分区表来找到操作系统的内核所在的分区。这一步是关键的,因为它决定了 U-Boot 如何找到用于启动的内核映像。初始化硬件:U-Boot 是嵌入式系统中使用的引导加载程序,它在操作系统启动之前运行,负责初始化硬件(如处理器、内存、存储设备等)。在嵌入式系统或任何使用 U-Boot 的环境中,理解分区表和 U-Boot 之间的交互对于系统维护和故障排除非常重要。加载操作系统:U-Boot 从存储设备读取操作系统的内核,然后将其加载到内存中,以便启动操作系统。

2024-05-09 14:51:46 227

转载 【test】uboot启动流程详解

要分析boot启动流程,首先要找到程序入口地址,可以通过编译uboot生成u-boot.lds,通过查看链接脚本u-boot.lds知道入口点是 arch/arm/lib/vectors.S 文件中的_start。

2024-05-07 17:53:36 52

转载 【test】深入MTK平台bootloader启动之【 Pre-loader -> Lk】分析笔记

5、获取lk加载到DRAM的地址(固定值),然后从ROM中找到lk分区的地址, 如果没找到jump_addr,则 goto error;1-3:设备上电起来后,跳转到Boot ROM(不是flash)中的boot code中执行把pre-loader加载起到ISRAM,bootloader 启动分两个阶段,一个是pre-loader加载lk(u-boot)阶段,另一个是lk加载kernel。直到整个Android启动完成.7、jump到lk(如果有实现el3,则会先jump到el3,然后再回到lk)

2024-05-07 15:56:21 319

转载 【test】中断解读以及中断服务函数

这就涉及到一个中断嵌套问题,由于printf之类的glibc函数采用的是缓冲机制,这个缓冲区是共享的,相当于一个全局变量,第一层中断来时,它向缓冲里面写入一些部分内容,恰好这时来了个优先级更高的中断,它同样调用了printf,也向缓冲里面写入一些内容,这样缓冲区的内容就错乱了。中断服务函数的调用是硬件级别的,当中断产生,pc指针强制跳转到对应的中断服务函数入口,进入中断具有随机性,并不是某段代码对其进行调用,那么如果有返回值它的返回值返回给谁?1、软中断是执行中断指令产生的,而硬中断是由外设引发的。

2024-05-07 10:37:27 44

原创 【test】git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.

【代码】【test】git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.

2024-04-26 16:29:18 332

原创 【test】printk调试打印

printk()是Linux内核中最广为人知的函数之一。它是我们打印消息的标准工具,通常也是追踪和调试 的最基本方法。格式字符串虽然与C99基本兼容,但并不遵循完全相同的规范。它有一些扩展和一些限制(没 有 %n 或浮点转换指定符)。参见:ref: 如何正确地获得printk格式指定符。所有的printk()消息都会被打印到内核日志缓冲区,这是一个通过/dev/kmsg输出到用户空间的环 形缓冲区。读取它的通常方法是使用 dmesg。printk() 消息可以指定日志级别。使用printk记录消息。

2024-04-24 17:55:57 283

转载 【test】VirtualBox虚拟机 给Ubuntu扩容

查看命令:df -h 扩展命令:xfs_growfs /dev/centos/root(本命令只适用于xfs文件系统,可使用df -Th命令查看)转:https://blog.csdn.net/huangtao_1995/article/details/125843857。背景:VirtualBox虚拟机中centos7.0 系统,/dev/mapper/centos-root存储不足,需扩容。查看命令:lvdisplay 扩展命令:lvextend -L +20G /dev/centos/root。

2024-04-17 10:31:49 100

转载 git repo工具详细使用教程

改成 curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo ,这样就可以下载repo了。在执行的curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo的时候不能下载repo;近一直想下载android的源码看看,但是按照官方的文档下载,遇到了问题。使用下面这个国内资源就可以了。

2024-04-07 11:01:38 162

转载 【test】vsocode 离线remote ssh

2、因为服务器和开发机使用的系统可能不一样,登录服务器后安装插件的方式如果使用前面说的从VSIX安装,可能导致部分插件能够正常安装,但是使用会不正常(目前只遇到一个插件有这个问题),最好的方式就是在能够连外网的电脑搭建一个同样的环境,装好后,将外网电脑连接的服务器里面的插件打包后,拷贝到离线电脑连接的服务器中,插件位置见图4,没有这种条件的就只有尝试下载插件源码包了(要注意需要是服务器系统可用,而且版本要兼容),插件安装后是一样的东西(其实就是把源码打包再解压)离线安装其它插件到服务器。

2024-03-28 14:05:42 223

原创 【test】【linux perf】【Android simpleperf】 获取火焰图 使用示例

3)Trachpoint Event:内核中的静态 tracepoint 所触发的事件,这些 tracepoint 用来判断程序运行期间内核的行为细节,比如 slab 分配器的分配次数等。2)x 轴表示抽样数, 如果一个函数在 x 轴占据的宽度越宽, 就表示它被抽到的次数多, 即执行的时间长. 注意, x 轴不代表时间, 而是所有的调用栈合并后, 按字母顺序排列的。1)y 轴表示调用栈, 每一层都是一个函数. 调用栈越深, 火焰就越高, 顶部就是正在执行的函数, 下方都是它的父函数.

2024-03-06 11:45:58 1036

转载 【test】蓝牙测试基础

例如手机通过蓝牙连接音箱,手机蓝牙为 central,蓝牙音箱为外设。蓝牙作为一种近距离的无线传输技术,功率低,从蓝牙 1.0 到蓝牙 5.0,满足用户在给定距离范围内(一般 10 米)快速和安全数据或语音传输要求,所以被大量的集成到给中设备上。认识不同平台的蓝牙,找到其共同点,例如苹果平台与安卓平台的蓝牙 BLE 框架类似,都有中心和外设两种模式,测试环境搭建分清楚中心设备和外设设备。蓝牙相关的测试产品,例如蓝牙音箱、蓝牙手环、蓝牙耳机、蓝牙灯等消费类电子产品。蓝牙扫描、连接、收发数据等全流程进行测试。

2024-03-05 09:56:02 180

sshfs-sshfs-sshfs

sshfs-win:https://github.com/billziss-gh/sshfs-win/releases winfsp:https://github.com/billziss-gh/winfsp/releases SSHFS-Win Manager:https://github.com/evsar3/sshfs-win-manager/releases 原文链接:https://blog.csdn.net/qq_45698138/article/details/139198521

2024-06-07

磁盘分析软件(C盘爆满精确清理必备)-SpaceSniffer

C盘扫描

2024-05-20

串口调试工具包括网络编程

串口调试工具包括网络编程

2023-04-13

tcp服务器-select比较报文数

https://blog.csdn.net/qq_45698138/article/details/129749403?spm=1001.2014.3001.5502

2023-03-29

ring-log内核双向循环链表实现环形日志-6M缓冲区-proc接口-读取写入日志

https://blog.csdn.net/qq_45698138/article/details/129739902?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129739902%22%2C%22source%22%3A%22qq_45698138%22%7D

2023-03-29

linux api man pages chm

linux api man pages chm

2023-03-09

ubus-编译脚本-参考文档

shell脚本自动化编译

2023-03-08

arm-linux交叉编译工具

arm-linux交叉编译工具

2022-06-21

单链表操作sigle-list.h

单链表增删查改

2022-05-17

linux内核链表list.h

内核链表

2022-05-17

组合数据类型的购物小程序c语言

C语言入门

2022-04-23

60seconds count-down.7z

60秒倒计时-单片机

2021-11-01

空空如也

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

TA关注的人

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