test
文章平均质量分 55
Yengi
谢谢关注,欢迎交流分享。
展开
-
嵌入式经典面试题
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。意识到这个表达式将使一个16位机的整型数溢出,因此要用到长整型符号L,告诉编译器这个常数是的长整型数。如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要 #原创 2022-06-23 20:04:32 · 8522 阅读 · 0 评论 -
【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 · 673 阅读 · 0 评论 -
【test】【3588】从板子导出fdt文件转化为dtsi文件方法
使用以下指令生成dtsi文件。使用adb获取fdt文件。原创 2024-05-11 10:09:24 · 64 阅读 · 0 评论 -
【test】uboot与分区表
读取分区信息:在启动过程中,U-Boot 需要读取分区表来找到操作系统的内核所在的分区。这一步是关键的,因为它决定了 U-Boot 如何找到用于启动的内核映像。初始化硬件:U-Boot 是嵌入式系统中使用的引导加载程序,它在操作系统启动之前运行,负责初始化硬件(如处理器、内存、存储设备等)。在嵌入式系统或任何使用 U-Boot 的环境中,理解分区表和 U-Boot 之间的交互对于系统维护和故障排除非常重要。加载操作系统:U-Boot 从存储设备读取操作系统的内核,然后将其加载到内存中,以便启动操作系统。转载 2024-05-09 14:51:46 · 13 阅读 · 0 评论 -
【test】uboot启动流程详解
要分析boot启动流程,首先要找到程序入口地址,可以通过编译uboot生成u-boot.lds,通过查看链接脚本u-boot.lds知道入口点是 arch/arm/lib/vectors.S 文件中的_start。转载 2024-05-07 17:53:36 · 10 阅读 · 0 评论 -
【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 · 19 阅读 · 0 评论 -
【test】中断解读以及中断服务函数
这就涉及到一个中断嵌套问题,由于printf之类的glibc函数采用的是缓冲机制,这个缓冲区是共享的,相当于一个全局变量,第一层中断来时,它向缓冲里面写入一些部分内容,恰好这时来了个优先级更高的中断,它同样调用了printf,也向缓冲里面写入一些内容,这样缓冲区的内容就错乱了。中断服务函数的调用是硬件级别的,当中断产生,pc指针强制跳转到对应的中断服务函数入口,进入中断具有随机性,并不是某段代码对其进行调用,那么如果有返回值它的返回值返回给谁?1、软中断是执行中断指令产生的,而硬中断是由外设引发的。转载 2024-05-07 10:37:27 · 10 阅读 · 0 评论 -
【test】[email protected]: Permission denied (publickey). fatal: Could not read from remote repository.
【代码】【test】[email protected]: Permission denied (publickey). fatal: Could not read from remote repository.原创 2024-04-26 16:29:18 · 314 阅读 · 0 评论 -
【test】printk调试打印
printk()是Linux内核中最广为人知的函数之一。它是我们打印消息的标准工具,通常也是追踪和调试 的最基本方法。格式字符串虽然与C99基本兼容,但并不遵循完全相同的规范。它有一些扩展和一些限制(没 有 %n 或浮点转换指定符)。参见:ref: 如何正确地获得printk格式指定符。所有的printk()消息都会被打印到内核日志缓冲区,这是一个通过/dev/kmsg输出到用户空间的环 形缓冲区。读取它的通常方法是使用 dmesg。printk() 消息可以指定日志级别。使用printk记录消息。原创 2024-04-24 17:55:57 · 212 阅读 · 0 评论 -
【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 · 27 阅读 · 0 评论 -
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 · 42 阅读 · 0 评论 -
【test】【linux perf】【Android simpleperf】 获取火焰图 使用示例
3)Trachpoint Event:内核中的静态 tracepoint 所触发的事件,这些 tracepoint 用来判断程序运行期间内核的行为细节,比如 slab 分配器的分配次数等。2)x 轴表示抽样数, 如果一个函数在 x 轴占据的宽度越宽, 就表示它被抽到的次数多, 即执行的时间长. 注意, x 轴不代表时间, 而是所有的调用栈合并后, 按字母顺序排列的。1)y 轴表示调用栈, 每一层都是一个函数. 调用栈越深, 火焰就越高, 顶部就是正在执行的函数, 下方都是它的父函数.原创 2024-03-06 11:45:58 · 636 阅读 · 0 评论 -
【test】蓝牙测试基础
例如手机通过蓝牙连接音箱,手机蓝牙为 central,蓝牙音箱为外设。蓝牙作为一种近距离的无线传输技术,功率低,从蓝牙 1.0 到蓝牙 5.0,满足用户在给定距离范围内(一般 10 米)快速和安全数据或语音传输要求,所以被大量的集成到给中设备上。认识不同平台的蓝牙,找到其共同点,例如苹果平台与安卓平台的蓝牙 BLE 框架类似,都有中心和外设两种模式,测试环境搭建分清楚中心设备和外设设备。蓝牙相关的测试产品,例如蓝牙音箱、蓝牙手环、蓝牙耳机、蓝牙灯等消费类电子产品。蓝牙扫描、连接、收发数据等全流程进行测试。转载 2024-03-05 09:56:02 · 66 阅读 · 0 评论 -
【test】Git撤销已经推送(push)至远端仓库的提交(commit)信息操作
我们需要撤销CSDN-java反射06-成员变量Field-代码优化这次提交,所以需要回退至的版本是CSDN-java反射-修饰符-代码优化,即需要回退至的版本号是:aa909cff2239536df14820fe086d96305b24e9f1。这时,我们需要撤销这次推送(git push)与提交(git commit),然后进行代码修改,再重新进行提交和推送。有时,在git push之后,才发现还有一些代码需要进行很小的改动,这些改动在原则上不应该作为一次新的提交。3.修改代码,重新提交和推送。转载 2024-02-20 13:54:59 · 78 阅读 · 0 评论 -
【test】三种方法来取消git add命令
综上所述,Git提供了多种方法来取消git add命令,使用git reset、git rm和git restore命令都可以实现这个目的。需要注意的是,如果文件在暂存区中和工作区中的内容不同,那么取消暂存操作并不会恢复文件的内容,需要使用git checkout命令或其他方法将文件内容还原到之前的状态。在Git 2.23版本中引入了新的命令git restore,该命令用来恢复工作区中的文件,也可以用来取消文件的暂存。其中,是要取消暂存的文件名,也可以使用通配符来取消多个文件的暂存。转载 2024-02-21 17:03:43 · 262 阅读 · 0 评论 -
【test】ubuntu系统盘制作
制作系统盘会将u盘内的所有内容格式化。原创 2024-01-22 20:48:11 · 468 阅读 · 0 评论 -
【linux】关于autoconf.h与Kconfig、.config关系
编译系统会使用一个名为 scripts/kconfig/conf 的脚本来处理.config文件和 Kconfig 文件,以生成 autoconf.h 文件。并且对 Kconfig 文件的编辑会反映在 .config 文件和最终生成的 autoconf.h 文件中。autoconf.h 文件:autoconf.h 文件是根据用户在配置工具中所做的选择生成的头文件。根据用户的选择,这些宏定义可以启用或禁用特定的代码块。.config 文件:.config 文件是根据用户在配置工具中所做的选择生成的配置文件。原创 2024-01-19 17:04:47 · 588 阅读 · 0 评论 -
【test】wsl2和win互ping
参考:原创 2024-01-15 22:03:35 · 417 阅读 · 0 评论 -
【android】Android学习笔记之蓝牙连接相关
这里首先要说的不是这个广播,而是当连接HFP时,在打电话的过程中,有可能出现的几种状态: (这些状态都是在当你手机通过蓝牙连接到某一个可以执行蓝牙电话功能的设备上,并且连接了HFP这个profile之后,在通话的过程中可能产生的) 1.BluetoothHeadsetClientCall.CALL_STATE_ACTIVE 当主叫或者被叫电话被接通时,会上报为这个状态。这里需要注意的是,如果你的蓝牙程序需要实现的是蓝牙电话的功能,那么可以通过这个广播来设置蓝牙连接成功的标志信号。转载 2024-01-15 16:44:38 · 117 阅读 · 0 评论 -
【win11】【wsl】使用踩坑记录
2.输入Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux。百度搜索相关错误,给出的解决思路是重启Hyper-V功能,没有进行尝试。解决方法在BIOS中打开了VT,或svm 开启虚拟化。百度搜索到有相关问题是雷电模拟器导致的,尝试如下命令。3.等待命令执行完毕,依照提示输入Y,电脑自动重启。wsl1更换版本到wsl2之后,打开wsl直接闪退。WSL1更换WSL2中遇到的问题。转载 2024-01-12 00:05:06 · 167 阅读 · 0 评论 -
【android】rk3588-android-bt
初始化结束后,必须调用init_cb回调函数(参见bt_vendor_callbacks_t)通知协议栈初始化结果,否则会阻塞协议栈线程导致蓝牙相关功能无法正常使用。1.2、协议栈调用op函数,分别调用BT_VND_OP_POWER_CTRL、BT_VND_OP_USERIAL_OPEN、BT_VND_OP_FW_CFG三个opcode;HCI定义了如何交换命令,事件,异步和同步数据包。在收到BT_VND_OP_FW_CFG后初始化状态机,然后发送HCI_REST命令,切换状态为HW_CFG_START;原创 2024-01-11 18:58:29 · 1412 阅读 · 2 评论 -
【test】vscode-ssh-ubuntu20.04
【代码】【test】vscode-ssh-ubuntu-虚拟机。转载 2024-01-09 21:22:49 · 49 阅读 · 0 评论 -
SecureCRT:保存输出日志的方法
SecureCRT使用之自动记录日志功能5. 选项:对应上图的右侧第二个红框,可以根据自己的习惯进行配置,例如希望每次记录的调试信息都只含有此次的内容,就可以选择“覆盖文件”,如果希望日志信息一直记录不缺失,那么就可以选择“追加到文件”,这样内容就在一个文件中不断追加,虽然内容全部都在,但是有时候不太方便统计分析单次的情况。在每一行的效果,如图中每行前面列的打印。首先让我们来回忆一下历史久远的手动记录日志功能:“文件”——“会话日志”,选择日志文件的存放位置并拟定文件名,点击保存。转载 2024-01-09 20:57:15 · 1677 阅读 · 1 评论 -
【test】securecrt破解
https://gitee.com/liu_chaos/doc-lib原创 2024-01-06 00:22:49 · 429 阅读 · 0 评论 -
【test】ch340驱动
说明:CH340/CH341 USB转串口WINDOWS驱动程序,支持32/64位Windows 11/10/8.1/8/7/VISTA/XP,SERVER 2022/2019/2016/2012/2008/2003,2000/ME/98,通过微软数字签名认证,支持USB转UART/3线和9线SERIAL串口等,用于随产品发行到最终用户。CH340/CH341/CH342/CH343/CH344/CH347/CH9101/CH9102/CH9103/CH9143 MAC驱动链接。转载 2024-01-05 23:47:43 · 884 阅读 · 0 评论 -
【C++】构造函数参数初始化的顺序
1.成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关。就是(通常是private下)定义变量的先后顺序。所以一般构造函数的初始化列表和定义顺序相同。2.如果不使用初始化列表初始化,在构造函数内初始化时,无所谓了,就根据你的逻辑写就行。4.类中static成员变量,只能在类内声明,然后类外初始化。3.类中const成员常量必须在构造函数初始化列表中初始化。2) 派生类的静态变量或全局变量。4) 派生类的成员变量。3) 基类的成员变量。转载 2023-12-28 14:59:13 · 92 阅读 · 0 评论 -
【linux】select实现定时器
【代码】【linux】select实现定时器。原创 2023-12-27 16:56:27 · 566 阅读 · 1 评论 -
【linux】工作队列简单示例
【代码】【linux】工作队列简单示例。原创 2023-12-26 16:41:28 · 353 阅读 · 0 评论 -
【linux】iov_iter操作
为读取方向,以准备从迭代器中读取数据。之后检查返回的复制字节数,以确保数据被完整复制。之后检查返回的复制字节数,以确保数据被完整复制。然后,将两个缓冲区的地址和长度分别赋值给。数组的地址、数组元素数量和总长度。迭代器初始化为写入方向,并传递。的数据,从而验证数据的正确性。中的数据逐个复制到迭代器。原创 2023-12-21 15:18:08 · 467 阅读 · 0 评论 -
WSL2编译内核并更改替换内核版本
参考https://blog.csdn.net/weixin_43408232/article/details/129960452。原创 2023-11-27 22:00:12 · 776 阅读 · 3 评论 -
kernel里的代码(bluez)
hci_cmd_task是负责发送CMD的任务,它从hdev->cmd_q队列中取CMD,然后调用hci_send_frame把CMD发送出去,与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_rx_task是负责接收数据的任务,它从hdev->rx_q队列中取数据,然后根据数据的类型调用上层函数处理。HCI 在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。hci_send_frame又会调用实际的HCI驱动的send函数发送数据。转载 2023-11-11 09:50:46 · 82 阅读 · 0 评论 -
rk3588烧录记录
参考:https://wiki.t-firefly.com/zh_CN/Core-3588J/upgrade_firmware.html。原创 2023-11-09 14:44:08 · 347 阅读 · 0 评论 -
中国移动吉比特H5-9光猫获取超级管理员权限
1.使用光猫背后的普通用户名登录进光猫,浏览器复制以下链接打开。修改管理员超级账号的密码 aDm8H%MdA (可自定义)修改管理员超级账号为 CMCCAdmin (可自定义)#修改TELNET密码 改为 admin (可自定义)#修改TELNET密码 改为 admin (可自定义)#修改TELNET账号 改为 root (可自定义)#修改TELNET账号 改为 root (可自定义)—————以下为其它参考命令———————————亲测可用型号:H5-9 、h3-2se。#开放TELNET LAN端口。转载 2023-11-04 01:07:49 · 1984 阅读 · 1 评论 -
github+hexo 博客搭建
登录你的 GitHub 帐号,并创建一个新的仓库,仓库名是 .github.io,其中 是你的 GitHub 用户名。将该仓库设置为公开仓库。这将在 Hexo 项目的 source/_posts 目录下创建一个新的 Markdown 文件,用于编写你的第一篇博客文章。在终端中,进入该文件夹,并运行以下命令来初始化 Hexo。创建一个新的文件夹,用于存储你的博客项目。浏览器打开 .github.io 即可查看。环境:win11+wsl。打开终端安装以下软件。原创 2023-08-25 20:14:39 · 905 阅读 · 0 评论 -
linux环境下利用线程池拷贝普通文件或目录(C语言实现)
linux环境下利用线程池拷贝普通文件或目录(C语言实现)原创 2022-06-28 23:23:22 · 1122 阅读 · 0 评论 -
通过百度API检测人脸特征,获取颜值、年龄、性别--C语言实现
用到的开源库有:cJSON、libcurl百度API获取方式:https://cloud.baidu.com/参考:API文档C代码如下 :用到的库有curl、cJSONtest.c编译运行:2.对图片进行base64编码查看API文档请求格式为,图片需要进行Base64编码、图片的格式可以为PNG、JGP、JPEG、BMP①先在目录中保存一张包含人脸的图片例如1.png②对图片进行Base64编码base64编码①封装请求头请求格式如下:4.解析JSON数据使用cJSON解析最后效果如下:原创 2022-06-02 19:08:59 · 3518 阅读 · 0 评论 -
dtmf_fsk音频数据测试
采样率越高,每秒中采集到的样本数量就越多,这可以提供更精确的音频表示,但同时也会增加所需的存储空间和处理能力。例如,在一段声音信号中,振幅越高,则声音会听起来更响亮、更强烈,振幅越低,则声音会听起来更柔和、更安静。例如,在一段声音信号中,振幅越高,则声音会听起来更响亮、更强烈,振幅越低,则声音会听起来更柔和、更安静。例如输入0x55,对应的二进制为01010101,fsk调制后的频率组合为 低频-高频-低频-高频-低频-高频-低频-高频。所以dBfs的最大值为当x取值为32767时的值,即0dBfs。原创 2023-03-31 11:48:41 · 494 阅读 · 0 评论 -
tcp服务器-比较报文数
2、在设备上的TCP客户端,以1s为间隔定时检查网卡eth0.1(WAN口网卡)上面的网卡信息(使用popen调用ifconfig命令行工具),然后将收到的RX和TX的报文数量和报文大小通过TCP连接发送给TCP服务器。这是一个基于select函数的简单TCP服务器程序,它的主要功能是监听客户端的连接请求,并接收客户端发送的数据。它接收四个参数,分别是接收的报文数量、发送的报文数量、接收的字节数和发送的字节数。需要注意的是,这个客户端程序是一个单向的通信,即客户端只发送请求,不等待服务器的响应。原创 2023-03-24 13:57:33 · 230 阅读 · 0 评论 -
关于问gpt-3.5-turbo的一些网络知识,tcp/ip,物理层,数据链路层,网络层,传输层,应用层
【代码】关于问gpt-3.5-turbo的一些网络知识,tcp/ip,物理层,数据链路层,网络层,传输层,应用层。原创 2023-03-18 17:32:12 · 901 阅读 · 0 评论 -
C语言笔试题
A)动态结构和静态结构 B)紧凑结构和非紧凑结构C)线性结构和非线性结构 D)内部结构和外部结构**答案:**C**评析:**逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。A)1,4,3,2 B)2,3,4,lC)3,1,4,2 D)3,4, 2,1**答案:**C**评析:**栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有1,2,由于l先于2进栈,所以l不可能在2之前出栈,故选项C这种出栈序列是不可能的原创 2022-06-25 21:02:57 · 709 阅读 · 0 评论