- 博客(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
原创 《汇编语言》第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】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
原创 《汇编语言》第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]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]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】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
2024-06-07
tcp服务器-select比较报文数
2023-03-29
ring-log内核双向循环链表实现环形日志-6M缓冲区-proc接口-读取写入日志
2023-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人