自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 【研发问题】atlas 200移植mcp2515

atals 200 接入mcp2515调试问题

2022-09-16 10:01:13 501 1

原创 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 93

原创 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 131

原创 linux内核调试技巧

1、出错日志有时,WARN_ON()也可以作为一个调试技巧。比如,进到内核某个函数后,不知道这个函数是怎么一级一级被调用进来的,可以在该函数中加入一个WARN_ON(1)。

2021-04-12 11:10:53 98

原创 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 98

转载 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 726

原创 【研发问题系列】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 2455

转载 嵌入式Linux设备驱动面试题汇总(3)

大家平时在写驱动的时候,驱动相关的知识都会用到,但真到面试的时候,很难快速流畅的回答面试提出的问题,特意从网上收集整理网友遇到的问题驱动大概的分为三部分:基础部分,同步相关,还有中断部分。中断,同步相关基本都是必问的。基础部分驱动中操作物理绝对地址为什么要先ioremap?因为在内核中操作的都是虚拟地址,内核访问不到物理地址,只能通过ioremap映射为虚拟地址 内核才能访问此内存空间设备驱动模型三个重要成员是?platform总线的匹配规则是?在具体应用上要不要先注册驱动再注册设备?有先后顺序没

2021-03-13 22:02:50 542

转载 Linux驱动面试题总结(2)

1、 Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少实现open,close,read和write系统调用。字符终端、串口、鼠标、键盘、摄像头、声卡和显卡等就是典型的字符设备。块设备:和字符设备类似,块设备也是通过/dev目录下的文件系统节点来访问。块设备上能够容纳文件系统,如:u盘,SD卡,磁盘等。字符设备和块设备的区别仅

2021-03-13 21:59:53 291

转载 linux面试问题宝典

原文链接:https://blog.csdn.net/yaolixiao001/article/details/80092350简单介绍:好久没有面试了,面试之前还是要准备一下的,尤其是对工程师来说,很纠结,不管怎么说,好好准备还是很有必要的。把网上的信息整理一下。linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些?答案:Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G

2021-03-13 21:54:15 318

转载 X86 BIOS启动

https://blog.csdn.net/weixin_43971252/article/details/89575297

2021-02-25 10:13:01 175

原创 【研发问题】Realtek网口灯不亮

问题现象:项目研发阶段发现linux自带的r8169驱动加载之后,网口灯都不亮(link :黄色和act:绿色)1、系统BIOS启动之前灯是能亮的,说明灯物理上的通路没问题2、linux内核启动时候,绿灯先亮后面都灭了经过与厂家沟通需要写芯片的efuse(熔断存储)配置文件,网卡启动之后网卡的rom固件会读取efuse配置到网卡芯片的寄存器,之后由网卡的固件决定如何点灯;datasheet的里面有配置网口灯的寄存器,这样通过配置文件就可以写寄存器了,无需写死在网卡驱动代码里面...

2021-02-25 09:18:53 649

原创 【研发问题】reboot失败--时序与进程

某一天测试张三和我说,重启执行失败,并且当着我的面测试了一把,我很是疑惑。现象:测试发现reboot大概率失败分析:本地shell执行reboot不会出现失败,也就是说reboot功能并无问题;那问题出在哪里呢?那肯定测试的方法与我不一致。接着我详细和测试沟通,发现测试是使用python写的脚本在shell下自动执行reboot,其实就是起了一个reboot进程,貌似也没啥差异。由于reboot被开发封装过,是先执行一系列的脚本,最终调用systemctl reboot,唯一的解释是最终没有调用到sys

2021-02-08 10:18:45 888

原创 【研发问题系列】开篇说明

1、现在市面上有很多书籍讲述各种知识,但是总感觉缺少什么,应该是如何举例。工程问题来驱动学习技能应该是最有效的方法。2、通过实际举例,讲述每一个知识点;可以复现问题,分析问题,解决问题的方法去讲述。...

2021-02-08 10:03:54 58

原创 torvalds

linus维护的主线:https://git.kernel.org/pub/scm/linux/kernel/git/Torvalds/linux.git/

2021-02-05 10:33:18 131 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 2580

原创 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 180 1

转载 linux内核空间申请内存的函数的分析

转载:https://www.cnblogs.com/sky-heaven/p/7390370.html我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。  那么,在内核空间中如何申请内存呢?一般我们会用到 kmalloc()、kzalloc()、vmalloc() 等,下面我们介绍一下这些函数的使用以及

2020-07-12 10:12:33 116

原创 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 1027

转载 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 197

原创 C语言基础:形参与实参

上课老师会给你讲函数的形参与实参的概念,前期基本上背诵,没有真正理解。这里写一个简单的例子说明下。测试用例如下:测试结果:简单的说你得往变量的地址写数据才能生效。形参只是栈空间的某个地址写了一个数据,这个数据的值和入参的值相同,但是这个地址却不是形参本身的地址。后面会读汇编再来深入理解这个。。。。未完待续...

2020-07-04 21:33:09 167

转载 二分查找

二分查找

2020-02-09 17:32:35 169

转载 Linux内核的idle进程分析

转载:https://www.cnblogs.com/cynchanpin/p/7323299.html”idle是什么简单的说idle是一个进程,其pid号为 0。其前身是系统创建的第一个进程。也是唯一一个没有通过fork()产生的进程。在smp系统中,每一个处理器单元有独立的一个执行队列,而每一个执行队列上又有一个idle进程,即有多少处理器单元。就有多少idle进程。系统的空暇时...

2018-10-31 23:44:47 753

空空如也

空空如也

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

TA关注的人

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