- 博客(24)
- 收藏
- 关注
原创 git使用技巧
要查看在Git中哪些文件被修改以及相关的commit信息,你可以使用git log命令配合–stat选项来查看每次commit的文件修改摘要,或者使用–patch(或-p)选项来查看详细的修改内容。git 如何查看被修改内容的commit。
2024-04-24 10:34:48
322
原创 git基础
各种git差异git 是一种版本控制系统,是一个命令,是一种工具。github 是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱。gitlab 类似 github,一般用于在企业内搭建git私服,要自己搭环境。gitee 即码云,是 oschina 免费给企业用的,不用自己搭建环境。git-ce 是社区版,gitlab-ee是企业版,收费版。GitHub、GitLab 不同点:1、GitHub如果使用私有仓库,是需要付费的,GitLab可以在上面搭建私人的免费仓库。2、Gi
2021-07-01 17:49:26
102
原创 linux开发涉及的著名网址
GNU 组织维护了 GCC、GDB、glibc、Binutils 等, 分 别 见 于https://gcc.gnu.org/,https://www.gnu.org/software/gdb/,https://www.gnu.org/software/libc/、https://www.gnu.org/software/binutils/。
2021-06-22 17:25:59
150
原创 linux内核调试技巧
1、出错日志有时,WARN_ON()也可以作为一个调试技巧。比如,进到内核某个函数后,不知道这个函数是怎么一级一级被调用进来的,可以在该函数中加入一个WARN_ON(1)。
2021-04-12 11:10:53
114
原创 Vim配置
安装vundlegit clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim配置vundle插件:可以在终端通过vim打开~/.vimrc文件,vim ~/.vimrc运行 vim ,再运行 :PluginInstall
2021-04-02 23:04:47
127
转载 Linux 死机复位(oops、panic)问题定位指南
https://blog.csdn.net/pwl999?t=1一个计算机系统和一个人类社会其实是差不多的,系统在运行中碰到的各种bug相当于人类社会中的各种案件:user space发生的bug危害性一般,可能就相当于一般的民事案件;kernel层面发生bug引起系统死机复位,属于性质特别恶劣后果特别严重的刑事案件。既然bug相当于案件,那么我们定位bug的过程和破案是差不多的。一般过程如下:首先我们要保留案发现场。只要bug发生的时候cpu还能执行,大部分的软件bug最后都会落入到cpu的陷阱
2021-03-31 23:32:03
834
原创 【研发问题系列】e1000网卡异常
问题现象:服务器单板上主从CPU通信,主CPU执行systemctl restart network之后发现从CPU网卡驱动报了异常[49549.895528] IPv6: ADDRCONF(NETDEV_UP): irlan0: link is not ready[49820.809561] e1000e: eth0 NIC Link is Down[49831.436862] e1000e: eth0 NIC Link is Up 10 Mbps Full Duplex, Flow Contro
2021-03-18 09:40:36
2876
转载 嵌入式Linux设备驱动面试题汇总(3)
大家平时在写驱动的时候,驱动相关的知识都会用到,但真到面试的时候,很难快速流畅的回答面试提出的问题,特意从网上收集整理网友遇到的问题驱动大概的分为三部分:基础部分,同步相关,还有中断部分。中断,同步相关基本都是必问的。基础部分驱动中操作物理绝对地址为什么要先ioremap?因为在内核中操作的都是虚拟地址,内核访问不到物理地址,只能通过ioremap映射为虚拟地址 内核才能访问此内存空间设备驱动模型三个重要成员是?platform总线的匹配规则是?在具体应用上要不要先注册驱动再注册设备?有先后顺序没
2021-03-13 22:02:50
599
转载 Linux驱动面试题总结(2)
1、 Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少实现open,close,read和write系统调用。字符终端、串口、鼠标、键盘、摄像头、声卡和显卡等就是典型的字符设备。块设备:和字符设备类似,块设备也是通过/dev目录下的文件系统节点来访问。块设备上能够容纳文件系统,如:u盘,SD卡,磁盘等。字符设备和块设备的区别仅
2021-03-13 21:59:53
322
转载 linux面试问题宝典
原文链接:https://blog.csdn.net/yaolixiao001/article/details/80092350简单介绍:好久没有面试了,面试之前还是要准备一下的,尤其是对工程师来说,很纠结,不管怎么说,好好准备还是很有必要的。把网上的信息整理一下。linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些?答案:Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G
2021-03-13 21:54:15
337
转载 X86 BIOS启动
https://blog.csdn.net/weixin_43971252/article/details/89575297
2021-02-25 10:13:01
190
原创 【研发问题】Realtek网口灯不亮
问题现象:项目研发阶段发现linux自带的r8169驱动加载之后,网口灯都不亮(link :黄色和act:绿色)1、系统BIOS启动之前灯是能亮的,说明灯物理上的通路没问题2、linux内核启动时候,绿灯先亮后面都灭了经过与厂家沟通需要写芯片的efuse(熔断存储)配置文件,网卡启动之后网卡的rom固件会读取efuse配置到网卡芯片的寄存器,之后由网卡的固件决定如何点灯;datasheet的里面有配置网口灯的寄存器,这样通过配置文件就可以写寄存器了,无需写死在网卡驱动代码里面...
2021-02-25 09:18:53
722
原创 【研发问题】reboot失败--时序与进程
某一天测试张三和我说,重启执行失败,并且当着我的面测试了一把,我很是疑惑。现象:测试发现reboot大概率失败分析:本地shell执行reboot不会出现失败,也就是说reboot功能并无问题;那问题出在哪里呢?那肯定测试的方法与我不一致。接着我详细和测试沟通,发现测试是使用python写的脚本在shell下自动执行reboot,其实就是起了一个reboot进程,貌似也没啥差异。由于reboot被开发封装过,是先执行一系列的脚本,最终调用systemctl reboot,唯一的解释是最终没有调用到sys
2021-02-08 10:18:45
925
原创 【研发问题系列】开篇说明
1、现在市面上有很多书籍讲述各种知识,但是总感觉缺少什么,应该是如何举例。工程问题来驱动学习技能应该是最有效的方法。2、通过实际举例,讲述每一个知识点;可以复现问题,分析问题,解决问题的方法去讲述。...
2021-02-08 10:03:54
75
原创 torvalds
linus维护的主线:https://git.kernel.org/pub/scm/linux/kernel/git/Torvalds/linux.git/
2021-02-05 10:33:18
148
1
转载 linux内核指南
转载:https://www.cnblogs.com/yangv/p/5627316.htmllinux 内核邮件列表第一节 - 一般性问题为什么有些时候使用“GNU/Linux"而另一些时候使用“Linux”?答:在这个FAQ中,我们尝试使用“linux”或者“linux kernel”来表示内核,而GNU/Linux用于表示整个GNU/GPL的操作系统软件。我们需要分清:) FAQ的目的是提供linux内核更多的信息并避免语义上的歧义。更多GNU软件和linux关系的讨论可以在http
2021-02-05 10:20:20
2932
原创 vim个人配置
if filereadable(expand("~/.vimrc.bundles"))source ~/.vimrc.bundlesendifset ff=unixset nocompatible " be iMproved, requiredfiletype off " requiredset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()Plugin ‘VundleVim/Vundle.vim’Plugin ‘vim-airline/v
2020-08-20 22:35:51
204
1
转载 linux内核空间申请内存的函数的分析
转载:https://www.cnblogs.com/sky-heaven/p/7390370.html我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。 那么,在内核空间中如何申请内存呢?一般我们会用到 kmalloc()、kzalloc()、vmalloc() 等,下面我们介绍一下这些函数的使用以及
2020-07-12 10:12:33
128
原创 FPU异常分类
研究浮点异常总结:首先看下glibc里面给出的用例,从这里去理解arm手册里描述的几种浮点异常到底是怎么回事FE_INVALID 无效操作异常 测试用例是0.0/0.0,还有-1开平方根也是FE_DIVBYZERO 除0异常,很好理解,测试用例是1.0/0.0FE_OVERFLOW 上溢出操作异常 测试用例是FLT_MAX+1.0e32f,好理解FE_UNDERFLOW 下溢出操作异常 测试用例是FLT_MIN/3.0,可以理解FE_INEXACT
2020-07-05 15:57:16
1457
转载 copy_{to,from}_user
转载:https://blog.csdn.net/juS3Ve/article/details/100787869引言我们对copy_{to,from}_user()接口的使用应该是再熟悉不过吧。基本Linux书籍都会介绍它的作用。毕竟它是kernel space和user space沟通的桥梁。所有的数据交互都应该使用类似这种接口。所以,我们没有理由不知道接口的作用。但是,我也曾经有过以下疑问。为什么需要copy_{to,from}_user(),它究竟在背后为我们做了什么?copy_{to,fr
2020-07-04 22:28:11
223
原创 C语言基础:形参与实参
上课老师会给你讲函数的形参与实参的概念,前期基本上背诵,没有真正理解。这里写一个简单的例子说明下。测试用例如下:测试结果:简单的说你得往变量的地址写数据才能生效。形参只是栈空间的某个地址写了一个数据,这个数据的值和入参的值相同,但是这个地址却不是形参本身的地址。后面会读汇编再来深入理解这个。。。。未完待续...
2020-07-04 21:33:09
193
转载 Linux内核的idle进程分析
转载:https://www.cnblogs.com/cynchanpin/p/7323299.html”idle是什么简单的说idle是一个进程,其pid号为 0。其前身是系统创建的第一个进程。也是唯一一个没有通过fork()产生的进程。在smp系统中,每一个处理器单元有独立的一个执行队列,而每一个执行队列上又有一个idle进程,即有多少处理器单元。就有多少idle进程。系统的空暇时...
2018-10-31 23:44:47
780
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人