玮玮豆豆
码龄7年
关注
提问 私信
  • 博客:34,083
    社区:105
    动态:8
    34,196
    总访问量
  • 33
    原创
  • 45,473
    排名
  • 571
    粉丝
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2018-05-13
博客简介:

weixin_42198851的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    302
    当月
    5
个人成就
  • 获得726次点赞
  • 内容获得3次评论
  • 获得379次收藏
创作历程
  • 33篇
    2024年
成就勋章
TA的专栏
  • arm64
    9篇
  • linux
    18篇
  • shell脚本
    5篇
  • makefile
    2篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

182人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

zynqmp官方开发手册

发布资源 2024.09.11 ·
rar

arm64 Linux操作系统知识点

低地址存放:指向上一个栈 (父函数的栈)的栈基地址 FP,类似于链表的prev指针。应用程序要访问内核就必须通过系统调用层,内核可以在系统调用层对应用程序的访问权限、用户类型和其他一些规则进行过滤,以避免应用程序不正确地访问内核。高地址存放:当前函数的返回地址,也就是进入该函数时LR的值,本书把这个地址称为P_LR(Previous LR)。在函数执行时,FP和SP寄存器会指向该函数栈空间的FP处。4. 函数返回时,ARM64处理器先把栈中的P_LR的值载入当前LR,然后执行RET指令。
原创
发布博客 2024.09.11 ·
1382 阅读 ·
35 点赞 ·
0 评论 ·
19 收藏

Ubuntu搭建FTP服务器

5. 执行以下指令打开/etc/xinetd.d/tftp 文件, 配置/etc/ xinetd.d/tftp 文件,将 tftp 路径设置为tftp服务目录。2. 新建tftp工作目录,并添加读、写、执行权限(没有权限后面无法正常访问该文件夹),如下图所示。3. 安装 tftp-hpa 和 tftpd-hpa 服务程序,其命令如下图所示。
原创
发布博客 2024.09.10 ·
703 阅读 ·
14 点赞 ·
0 评论 ·
3 收藏

arm64高速缓存基础知识

随机法:随机地确定替换的高速缓存行,由一个随机数产生器产生随机数来确认替换行FIFO法:选择最先调入的高速缓存行进行替换LRU法:最少使用的行优先替换。
原创
发布博客 2024.09.09 ·
1873 阅读 ·
41 点赞 ·
2 评论 ·
10 收藏

Linux shell编程--sed进阶

小写的n命令会告诉sed编辑器移动到数据流中的下一文本行,而不用重新回到命令的最开始 再执行一遍。如果分支命令的模式没有匹配,sed编辑器会继续执行脚本中的命令,包括分支标签后的命令。单行next命令会将数据流中的下一文本行移动到sed编辑器的工作空间(称为模式空间)。美元符表示数据流中的最后一行文本,所以当sed编辑器到了最后一行时,它没有执行N命令,但它对所有其他行都执 行了这个命令。它只打印多行模式空间中的第一行。8. 跟分支命令一样,在没有指定标签的情况下,如果测试成功,sed会跳转到脚本的结尾。
原创
发布博客 2024.09.07 ·
1305 阅读 ·
18 点赞 ·
0 评论 ·
12 收藏

Linux编程--信号基础

1. 信号是事件发生时对进程的通知机制。有时也称为软件中断2. 引发内核为进程产生信号的各类事件如下:硬件发生异常,即硬件检测到一个错误条件并通知内核,随即再由内核发送相应信号给相关进程。硬件异常的例子包括执行一条异常的机器语言指令,诸如,被 0 除,或者引用了无法访问的内存区域。用户键入了能够产生信号的终端特殊字符。其中包括中断字符(通常是Control-C)、暂停字符(通常是 Control-Z)。发生了软件事件。
原创
发布博客 2024.09.06 ·
1341 阅读 ·
23 点赞 ·
0 评论 ·
23 收藏

Linux--目录与文件操作函数

因此,如果移除了符号链接所指向的文件名,符号链接本身还将继续存在,尽管无法再对其进行解引用(下溯)操作,也将此类链 接称之为悬空链接。(换言之,newpath 也是符号链 接,指向 oldpath 所指代的同一文件。改名既不影响指向该文件的其他硬链 接,也不影响持有该文件打开描述符的任何进程,因为这些文件描述符指向的是打开文件描 述,(在调用 open()之后)与文件名并无瓜葛。unlink()系统调用不会对符号链接进行解引用操作,若 pathname 为符号链接,则移除链接 本身,而非链接指向的名称。
原创
发布博客 2024.09.05 ·
1303 阅读 ·
34 点赞 ·
0 评论 ·
16 收藏

linux文件的拓展属性

3. 默认情况下,若具有给定名称(name)的 EA 不存在,上述系统调用会创建一个新 EA。欲改变userEA值,则需要写权限,如欲将 user EA 与一文件关联, 在装配底层文件系统时需带有 user_xattr 选项。6. 想获取与某文件相关联的 EA 名列表,只需对文件拥有“访问”权限(亦即对 pathname 下的所有路径均拥有执行权限),对文件本身则无需任何权限。系统调用 setxattr()、lsetxattr()以及 fsetxattr()用来设置文件的 EA 值之一。
原创
发布博客 2024.09.04 ·
1268 阅读 ·
14 点赞 ·
0 评论 ·
19 收藏

arm调试-- gdb与gdbserver的安装与使用

将生成的可执行文件和 gdb-7.11.1 /gdb/gdbserver路径下生成的gdbserver复制到开发板中。PC端把可执行文件和源码拷贝到gdb-7.11.1/_install/bin下。2. 解压编译gdb以及gdbserver。1、复制gdbserver。2、运行gdbserver。5、连接gdbserver。4、在PC端运行gdb。(1)gdb PC端。(2)arm终端打印。
原创
发布博客 2024.09.03 ·
1030 阅读 ·
4 点赞 ·
1 评论 ·
4 收藏

GNU汇编器

align 有三个参数,第一个参数表示对齐的要求,第二个参数表示要填充的数(可忽略),第三个参数表示这个对齐应该跳过的最大字节数。通常只是用第一个参数。汇编阶段生成的可重定向目标文件和链接阶段生成的可执行二进制文件的主要区别在于,可重定向目标文件的所有段的起始地址都是0。1、预处理:GCC的预编译器(CPP)对各种预处理命令进行处理,例如对头文件的处理、宏定义的展开、条件编译的选择等。汇编阶段生成的可重定位目标文件以及链接阶段生成的可执行二进制文件都是按照一定的文件格式(ELF)组成的二进制目标文件。
原创
发布博客 2024.09.02 ·
1247 阅读 ·
17 点赞 ·
0 评论 ·
13 收藏

Linux系统编程--时间函数

2. settimeofday()调用所造成的那种系统时间的突然变化,可能会对依赖于系统时钟单调递增 的应用造成有害的影响。最后两个字段返回的信息是:父进程(比如,times()的调用者)执行了系统调用 wait()的所有 已经终止的子进程使用的 CPU 时间。相形之下,函数 localtime()需要考虑时区和夏令时设置,返回对应于系统本 地时间的一个分解时间。当我们运行一个 shell 程序,我们可以使用的 time(1)命令,同时获得这两个部分的时间值, 以及运行程序所需的实际时间。
原创
发布博客 2024.09.02 ·
1684 阅读 ·
36 点赞 ·
0 评论 ·
17 收藏

shell脚本--正则表达式

它为常见模式提供了高级模式符号和特殊符号,比如匹配数字、单词以及按字母排序的字符。在转义特殊字符时,你需要在它前面加 一个特殊字符来告诉正则表达式引擎应该将接下来的字符当作普通的文本字符。(1) 在正则表达式模式中,也可以反转字符组的作用。可以寻找组中没有的字符,而不是去寻找组中含有的字符。它必须匹配一个字符,如果在点号字符的位置没有字符,那么模式就不成立。如果模式出现在行首之外的位置, 正则表达式模式则无法匹配。2. 管道符号两侧的正则表达式可以采用任何正则表达式模式(包括字符组)来定义文本。
原创
发布博客 2024.08.31 ·
1469 阅读 ·
30 点赞 ·
0 评论 ·
7 收藏

Makefile编写2--使用变量,函数

如果有变量是通常 make的命令行参数设置的,那么 Makefile中对这个变量的赋值会被忽略。如果你想在 Makefile 中设置这类参数的值,那么,你可以使用“override”指示符。中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式,如果匹配的话,则以替换。其格式是“$(var:a=b)”或是“${var:a=b}”,其意思是,把变量“var”中所有以“a”字串“结尾。模式变量的好处就是,我们可以给定一种“模式”,可以把变量定义在符合这种模式的 所有目标上。
原创
发布博客 2024.08.30 ·
1183 阅读 ·
26 点赞 ·
0 评论 ·
8 收藏

Linux--实现U盘,SD卡的自动挂载

在/etc/init.d/rsC或S10mdev中加入以下语句:当有热插拔事件产生时,内核会调用/proc/sys/kernel/hotplug文件里指定的应用程序来处理热插拔事件。把/sbin/mdev写到/proc/sys/kernel/hotplug文件里。当有热拔插事件时,内核调用/sbin/mdev来处理。
原创
发布博客 2024.08.29 ·
1141 阅读 ·
33 点赞 ·
0 评论 ·
5 收藏

shell脚本--创建函数

bash shell会把函数当作一个小型脚本,运行结束时会返回一个退出状态码。有3种不同的方法来为函数生成退出状态码。十、在.bashrc 文件中定义函数。三、使用函数输出(类似于定向输出)十一、shtool库下载及安装。四、在函数中使用变量。六、向函数传数组参数。五、在函数中处理变量。
原创
发布博客 2024.08.29 ·
1045 阅读 ·
12 点赞 ·
0 评论 ·
10 收藏

nvme的PRP与SGL

主机在命令中设置好PRP或者SGL,并告诉SSD数据源在内存的什么位置,或者从闪存上读取的数据应该放到内存的什么位置。
原创
发布博客 2024.08.28 ·
1361 阅读 ·
23 点赞 ·
0 评论 ·
13 收藏

arm64--异常处理与中断处理

EL0 非特权模式,用于运行应用程序EL1为特权模式,用于运行操作系统内核EL2用于运行虚拟化管理程序EL3用于运行安全世界的管理程序。
原创
发布博客 2024.08.27 ·
1143 阅读 ·
26 点赞 ·
0 评论 ·
10 收藏

Linux-arm64中断现场保护详解

_entry_task为内核静态定义的percpu变量,在进程切换时,会将next进程的进程描述符保存到该变量中。十一、S_LR与S_STACKFRAME与S_STACKFRAME。三、per_cpu变量获取offset。五、disable_step_tsk。六、get_thread_info。一、ldr_this_cpu。二、__entry_task。七、S_FRAME_SIZE。九、thread_info。
原创
发布博客 2024.08.26 ·
527 阅读 ·
14 点赞 ·
0 评论 ·
0 收藏

Linux文件IO缓存

当操作磁盘文件时,缓冲大块数据以减少系统调用,C 语言函数库的 I/O 函数(比如, fprintf()、fscanf()、fgets()、fputs()、fputc()、fgetc())正是这么做的。3. 总之,如果需要强制刷新内核缓冲区,那么在设计应用程序时就应考虑是否可以使用大 尺寸的 write()缓冲区,或者在调用 fsync()或 fdatasync()时谨慎行事,而不是在打开文件时就使用 O_SYNC 标志。有时也称此为直接 I/O(direct I/O)或者裸 I/O(raw I/O)。
原创
发布博客 2024.08.26 ·
1426 阅读 ·
41 点赞 ·
0 评论 ·
28 收藏

shell脚本构造

也可以在read命令行中不指定变量。如果是这样,read命令会将它收到的任何数据都放进 特殊环境变量REPLY中。shell脚本中最有用的特性之一就是可以从命令输出中提取信息,并将其赋给变量。把输出赋 给变量之后,就可以随意在脚本中使用了。-t选项指定了read命令等待输入的秒数。read命令从标准输入(键盘)或另一个文件描述符中接受输入。这两个变量都能够在单个变量中存储所有的命 令行参数。变量会将命令行上提供的所有参数当作同一字符串中的多个独立的单词。$*变量会将命令行上提供的所有参数当作一个单词保存。
原创
发布博客 2024.08.25 ·
1178 阅读 ·
25 点赞 ·
0 评论 ·
29 收藏
加载更多