自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【开发工具】嵌入式常用调试工具汇总帖

写这篇文章,主要是想将自己以前用过的,发过的调试工具相关的博客进行汇总,方便后续查找。调试工具【调试工具】【sysrq】魔术键(sysRq)的使用【调试工具】【objdump】反汇编工具(objdump)的使用【调试工具】【gdb】编译工具gdb的使用【调试工具】【lockdep】Linux内核死锁检测工具(lockdep)的使用【调试工具】【tcpdump】抓包工具(Tcpdump)的使用【调试工具】【mtest】uboot内存检测工具(mtest)的使用JTAG 通常系统崩溃,无任

2020-12-27 21:29:27 2918 8

原创 【LWIP】LWIP协议|相关知识汇总|LWIP学习笔记

这里作为一个汇总帖把,把以前写过的LWIP相关的博客文章汇总到一起,方便自己这边查找一些资料。LWIP协议【LWIP】LWIP网络通信流程【LWIP】LWIP动态内存管理【LWIP】原始套接字(SOCK_RAW)【LWIP】AF_PACKET套接字分析【LWIP】AF_UNIX socket套接字分析LWIP源码解析【LWIP】pbuf数据包管理【LWIP】netdev_pbuf_alloc函数分析【LWIP】以太网网卡接口部分初始化【LWIP】netif网络接口结构【LWIP】

2020-12-27 19:26:05 2426 1

原创 BSP开发|嵌入式|Linux驱动|笔试面试

写这篇文章的目的,希望以提问的形式,对自己以前的知识进行一个总结,并期待能给即将/已经踏入嵌入式领域的程序员提供一些学习上的帮助~嵌入式,软件,C语言,Linux,驱动,内核,开发,BSP,工程师,底层,后端相关,常见,频繁,常问,经典,项目,招聘,平台,学习,框架,职位,职业,架构,岗位,offer,校招,社招,企业笔试面试,面试笔试,笔试,面试,面经,笔经题目,大全,总结,概括,汇总,整理,集锦,理解,答案,常问问题,经验,分享,最常,归类,大纲

2020-12-01 22:43:00 9787 7

原创 【PCIe】非常适合初学的pcie博客(PCIe知识整理)

非常适合初学的pcie博客:PCIE扫盲(第一阶段):http://blog.chinaaet.com/justlxy/p/5100053251PCIe简介:http://blog.chinaaet.com/justlxy/p/5100053066 这一章主要介绍PCIe的由来,在2001年的时候被提出,命名“PCI-Express”,主要优势就是传输速率高,另外还有传输距...

2018-07-30 10:55:16 18260 9

原创 【开发工具】【kmemleak】内存泄漏检测工具(kmemleak)的使用

检测对象是memblock_alloc、kmalloc、vmalloc、kmem_cache_alloc等函数分配的内存块,该内存块由struct kmemleak_object来描述(简称为object)。kmemleak的实现原理非常简单,通过暴力扫描内存(假定内存中存放的都是指针,以ARM64为例,每次扫描8个字节),如果找不到指向起始地址或者内存块任何位置的指针,则分配的内存块被认为是孤立的。虽然kmemleak的扫描算法存在漏报和误报的可能,但是并不影响我们的使用。因此需要将值设置的大一些。

2024-03-14 18:34:02 814

原创 嵌入式SOC芯片选型

本文主要探讨的是如果涉及芯片选型,需要考虑哪些方面?将相关的需求列出来,供后续实践的时候参考。

2023-12-11 21:18:51 472

原创 嵌入式BSP内存统计

项目开发的可行性评估中,常涉及到内存的使用评估,这对项目DDR大小的选型及成本控制至关重要,本文主要是梳理了内存当前BSP内存统计方案,找到内存统计过程中的关键参数,以便后续项目评估过程中提供更精确的BSP内存使用情况。

2023-12-11 21:17:52 558

原创 嵌入式开发DDR的选择

当前DDR主要有DDR、DDR2、DDR3、DDR4、DDR5等不同的内存标准。本文主要是对比不同标准的DDR,了解其差异性以及优劣势,以便在以后在以后做DDR选型的时候做一定的参考。

2023-11-28 21:24:25 1098

原创 嵌入式开发中常见的文件系统

本文主要介绍嵌入式开发中常用的文件系统类型。对比其差异性及优劣势,以便在后续开发时,选择更合适的嵌入式文件系统。

2023-11-27 21:20:18 1346

原创 linux 下打印堆栈信息 jstack pstack gstack 有啥区别?分别的使用场景是啥?

注意:pstack和gstack都是通过读取进程的内存信息来获取堆栈信息的,所以只能用于分析正在运行的进程。而jstack可以通过进程ID或Java进程的启动命令来获取堆栈信息,所以可以用于分析正在运行的Java进程,也可以用于分析Java进程的崩溃日志。jstack:jstack是Java虚拟机自带的工具,用于打印Java进程的堆栈信息。它可以显示进程的函数调用栈,包括函数名和地址。jstack、pstack和gstack是在Linux系统下用于打印堆栈信息的工具,它们的使用场景和功能略有不同。

2023-11-21 20:12:35 762

原创 【操作系统】操作系统的大端模式和小端模式

所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。

2023-11-07 15:09:21 376

原创 【进程与线程】进程与线程 Q&A

进程与线程常见知识点:

2023-11-07 06:30:17 357

原创 【UART】UART Q&A

UART常见知识点整理

2023-11-07 05:59:20 362

原创 【I2C】熟悉I2C的传输时序。根据I2C的时序图,标出每段时序对应的含义

熟悉I2C的传输时序。根据I2C的时序图,标出每段时序对应的含义

2023-11-07 05:38:33 710

原创 【笔试题】位运算

1、实现对一个8bit数据(unsigned char类型)的指定位(例如第n位)置0或者置1操作,并保持其他地位不变。2、UART寄存器(32位)地址位0x10000000,写出将第2~第10位区域置为0x1F的代码段:

2023-11-07 04:44:09 281 1

原创 【笔试题】宏相关笔试题

记录一些企业招聘常见的笔试题:已知一个结构体里面的成员的地址,反推出该结构体的首地址定义一个宏,实现对数据a的第n位置位、清零、取反

2023-11-07 04:21:12 141

原创 做过哪些外设驱动?

面试被问到做过哪些I2C外设?把相关信息整理下,做一个归纳。

2023-10-26 16:06:51 417

转载 【C语言】源程序->可执行程序,需要执行哪几个步骤?

从C源代码到可执行文件的四个过程:预处理、编译、汇编、链接。

2023-10-26 14:27:46 226

原创 【面试】说出你的三个优点和三个缺点

面试的时候常被问到自己的三个优点及三个缺点

2023-10-26 13:57:43 492

转载 【内存管理】进程的虚拟地址和内核中的虚拟地址有什么关系?

那么到底什么是虚拟内存地址 ?Linux 内核为啥要引入虚拟内存而不直接使用物理内存 ?虚拟内存空间到底长啥样?内核如何管理虚拟内存?什么又是物理内存地址 ?如何访问物理内存?本文笔者就来为大家详细一一解答上述几个问题,让我们马上开始吧~~~~

2023-10-18 23:09:52 159

原创 【内存管理】虚拟内存、物理内存之间的关系

本文介绍了什么是虚拟内存、什么是物理内存,虚拟内存与物理内存之间的关系,以及为何需要虚拟内存的原因

2023-10-18 14:53:24 926

原创 【开发日常】insmod: error inserting ‘*.ko‘: -1 Unknown symbol in module原理分析

问题的起源是一次面试,面试官询问加载内核的时候,如果insmod失败,且提示Unknown symbol in module。请问我里面的原理是什么呢?为什么内核知道当前缺少的是这个symbol?

2023-10-17 21:25:34 752

原创 【uboot】Uboot的启动流程

本文主要是对uboot的启动流程进行了较为详细的分析

2023-10-16 17:28:27 597

原创 【开发工具】【Valgrind】内存问题检测工具(valgrind)的使用

Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。

2022-11-12 22:37:32 2188 1

原创 测试实时进程

#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <sys/prctl.h>#include <assert.h>#include <pthread.h>int cpu_core(){ return 4;}int thread_rt( int *id){char *a;c.

2022-05-09 09:45:06 461

翻译 【编码规范】Linux 内核编码风格

目录重点速读:1) 缩进2) 把长的行和字符串打散3) 大括号和空格的放置3.1) 大括号3.2) 空格4) 命名5) typedef6) 函数7) 集中的函数退出途径8) 注释9) 你已经把事情弄糟了10) Kconfig 配置文件11) 数据结构12) 宏、枚举和 RTL13) 打印内核消息14) 分配内存15) 内联弊病16) 函数返回值及命名17) 使用布尔18) 不要重新发明内核宏19) 编辑器模式行(配置信.

2022-04-25 14:55:32 1638

原创 【开发工具】【sparse】Linux下代码检测工具(sparse)的使用

获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中:【开发工具】嵌入式常用开发工具汇总帖Linux内核源码里其实包含了相应的代码检测工具【sparse】,位置在:Documentation/dev-tools/sparse.rstDocumentation/translations/zh_CN/sparse.txtDocumentation/dev-tools/sparse.rst 的中文翻译以下为正文---------------------------------

2022-04-19 23:38:19 788

原创 【Makefile】Makefile 中 LINUXINCLUDE 的作用

在驱动开发的时候,我们经常会创建很多新的头文件,这些头文件大多以#include"xxx.h"的形式放在源码中。而内核头文件则是以#include <xxx.h>的形式存在。这两者的区别:前者(使用""),来引用xxx.h文件,是首先检索文件的当前路径;如果没有,再检索标准路径,看看这些文件夹下是否有该头文件。后者(使用<>),来引用xxx.h文件,是首先检索标准路径,看看这些文件夹下是否有该头文件;如果没有,也不会检索当前文件所在路径,并将报错。实际移植过程中遇.

2022-02-10 15:58:14 486

原创 【开发工具】【strace】Linux下Strace程序调试工具源码安装

参考:https://www.jianshu.com/p/33521124bdf2https://www.cnblogs.com/youxin/p/8837771.html什么是Strace?strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用。Strace是一个简单的跟踪系统调用执行的工具。在其最简单的形式中,它可以从开始到结束跟踪二进制的执行,并在进程的生命周期中输出一行具有系统调用名称,每个系统调用的参数和返回值的文本行。strace源码下载.

2022-02-08 11:21:50 10745

原创 【开发工具】【perf】性能分析工具perf的编译和使用说明

源码位置:kernel/tools/perf配置内核以支持perfmake xxx_defconfigmake menuconfig设置以下配置:CONFIG_HAVE_PERF_EVENTS=yCONFIG_PERF_USE_VMALLOC=y编译perf工具make CROSS_COMPILE=xxx ARCH=xxx defconfigmake CROSS_COMPILE=xxx ARCH=xxx menuconfigmake CROSS_COMPILE=xxx

2022-01-26 14:24:07 2119

原创 【开发工具】【make】make 3.82源码编译安装

摘要:通过下载make 3.82源码,再编译机上安装make 3.82版本。解决make版本过高的问题。1、下载make 3.82:下载地址为:wget ftp://ftp.gnu.org/gnu/make/make-3.82.tar.gz我们以gdb-8.3.tar.gz 这个文件为例。2、解压缩:$ tar xvf make-3.82.tar.gz注:小技巧:Linux下一般压缩文件后缀为.tar.bz2和.tar.gz,它们解压命令有两三个选项是一致的:xf(

2022-01-21 16:31:34 11790

原创 【开发日常】【makefile】解决Makefile版本过高导致的编译问题

摘要:在openEuler上降低makefile的版本最近在openEuler编译时遇到makefile报错,但是相同的代码在老的CENTOS下时可以编译成功的。排查时发现openEuler的“make -v”版本较高计划降低make版本后,重新编译试试。问题原因:发现了一个很神奇的现象,不同的编译机下,去执行相同的makefile,这个makefile里面就是将“\#include <stdio.h> int main(){ return 0; }”这段字符输出.

2022-01-21 16:27:14 1273

原创 【Net】在arm下实现网络DNS服务

平台:SSC359G架构:ARM摘要:在arm下之前一直没自己做过dns相关的调试。测试反馈配置/etc/resolv.conf后,DNS仍然没用现象是arm开发板配置完IP地址、掩码、网关之后,已经能ping通外部IP。但是无法进行域名解析。/usr # ping 180.101.49.11PING 180.101.49.11 (180.101.49.11): 56 data bytes64 bytes from 180.101.49.11: seq=0 ttl=51 ti

2022-01-20 21:40:10 1707

原创 【开发工具】【Dropbear】Dropbear编译安装

简介:dropbear:小型的嵌入式系统专用的SSH服务端和客户端工具 服务器端:dropbear、dropbearkey 客户端:dbclient dropbear默认使用nsswitch实现名称解析(账户名称) dropbear会在用户登录时检查其默认shell是否为安全shell,/etc/shells中的shell一般称为安全shell编译安装dropbear之前,需要先安装zlib库参考:【开发工具】【Zlib】Zlib编译安装_诸...

2021-11-28 04:10:00 7432 1

原创 【开发工具】【Zlib】Zlib编译安装

Zlib安装下载zlib-1.2.11.tar.bz2官网下载:http://www.zlib.net/fossils/直接下载:https://download.csdn.net/download/Ivan804638781/48127420解压缩tar -vxjf zlib-1.2.11.tar.bz2注:小技巧:Linux下一般压缩文件后缀为.tar.bz2和.tar.gz,它们解压命令有两三个选项是一致的:xf(v),前者再加上j选项,后者再加上z选项。进入目录cd

2021-11-28 03:59:56 2186 1

原创 【spi】 Q&A

【SPI】如何选择SPI的相位和极性?关于SPI从设备,在空闲的时候,是高电平还是低电平,即决定了CPOL是0还是1;然后再找到关于设备是在上升沿还是下降沿去采样数据,这样就是,在定了CPOL的值的前提下,对应着可以推算出CPHA是0还是1了。如果从设备也是一个SPI控制器,4种模式都支持,此时只要自己设置为某种模式即可。...

2021-10-31 21:53:21 836

原创 【uboot】设置uboot下的bootargs参数

关键字:【bootargs】、【uboot】、【boot】、【bootloader】、【】、【】、【】、【】、【】、【】、描述:因为项目需要,常常要修改uboot代码。其中比较重要的就有“bootargs”参数什么是bootargs?简单来说:bootargs就是传递给内核的启动参数。在uboot加载内核时,会将bootargs参数传递给内核(指定内存地址)。在内核启动过程中,会获取bootargs参数,并解析其中的信息。用于启动过程中用于配置相关的驱动模块信息。如何设置bo

2021-10-10 21:30:58 4884

原创 【开发日常】解压system.img时报错,解决办法

解压system.img时报错报错:无法作为[Ext]压缩包打开该文件原因解析在linux环境下查看该文件类型 system.img: Android sparse image, version: 1.0, Total of 153600 4096-byte output blocks in 1768 input chunks. 解析: 这个文件类型是【Android sparse image】 对应这个类型的文件,要想解压,首先需要转换格式 ...

2021-09-26 10:55:00 1734

原创 【SPI】SPI学习之SPI调试相关

spi调试方法uboot下调试SPI在uboot下,有spi的调试命令“sspi”,代码在:uboot/cmd/spi.c具体用法如下:

2021-05-29 17:59:11 4717 5

原创 【SPI】SPI学习之SPI驱动相关

spi驱动框架目录:linux/driver/spi/<从设备驱动层>  spidev.c                             自己编写<核 心 层>  spi.c                             内核提供<控 制 器 层>  spi-xxx.c(瑞芯微:spi-rockchip.c  全志:spi-sunxi.c)     原厂提供...

2021-05-29 17:52:53 2487 1

strace-4.11源代码下载

strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用。 Strace是一个简单的跟踪系统调用执行的工具。在其最简单的形式中,它可以从开始到结束跟踪二进制的执行,并在进程的生命周期中输出一行具有系统调用名称,每个系统调用的参数和返回值的文本行。

2022-02-08

lzo-2.10.tar.bz2

lzo库文件

2021-11-24

zlib-1.2.11.tar.bz2

zlib-1.2.11.tar.bz2 zlib

2021-11-24

mtd-utils.tar.bz2

mtd-utils工具包,包含mtdinfo、ubinfo、ubiformat、ubiattach、ubidetach、ubimkvol...等

2021-11-24

hdparm-9.60.tar.gz

hdparm-9.60 【开发工具】【Hdparm】测试硬盘读写速度 # hdparm -Tt /dev/sda /dev/sda: Timing cached reads: 1918 MB in 2.00 seconds = 959.62 MB/sec Timing buffered disk reads: 184 MB in 3.00 seconds = 61.26 MB/sec hdparm可检测,显示与设定IDE或SCSI硬盘的参数。

2021-08-18

notepad++_v.8.1.2.zip

notepad++_v.8.1.2 文本阅读工具,比记事本好用

2021-08-13

Everything-1.4.1.935.x86.zip

Everything-1.4.1.935.x86 全局搜索工具,查文件路径很快

2021-08-13

7z2103-x64.zip

7z2103-x64压缩工具 win10下的压缩和解压工具

2021-08-13

PotPlayer64.zip

PotPlayer64 看视频很好用,解压就可以运行

2021-08-13

Source Insight 4.0.0085-4.0.0086.zip

SourceInsight工具 1. 安装原版软件:Source Insight Version 4.0.0085/Source Insight Version 4.0.0086 2. 替换原主程序:sourceinsight4.exe 3. 导入授权文件(Import a new license file):si4.pediy.lic

2021-08-13

RTL8201FI-VC-CG.pdf

PHY芯片手册-RTL8201FI

2021-08-04

ppp-2.4.9.tar.gz

PPP源码下载 版本:ppp-2.4.9

2021-04-06

ppp-2.4.8.tar.gz

PPP源码下载 版本:ppp-2.4.8

2021-04-06

ppp-2.4.2.tar.gz

ppp源码下载 版本:ppp-2.4.2

2021-04-06

TscanCodeV2.14.24.windows.exe

TscanCodeV2.14.24.windows.exe 在windows上部署TscanCode代码检测工具

2021-04-02

setupssh-8.5p1-1.exe

openssh Windows 下 cmd 窗口使用 ssh 命令

2021-03-30

imx6ul_iic_drv.zip

imx6ul_iic总线驱动

2021-03-14

2017-0316-sama5d2以太网驱动(暂时完成版).zip

sama5d2以太网驱动

2021-03-14

stream_5.10.tar.gz

STREAM是一套综合性能测试程序集,通过fortran和C两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率, 使得 STREAM 测试例程可以充分发挥出内存的能力。 STREAM 测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值。

2021-02-24

iperf-2.0.9-win64.rar

iperf-2.0.9-win64 iperf 是一个网络性能测试工具。iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。 最简单的方式,iperf可以用来测试网络传输速度。

2021-02-21

kernel-headers-5.4.56-200.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-5.4.49-200.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-5.4.42-200.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-5.4.28-200.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-5.4.25-200.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.113-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.110-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.104-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.94-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.84-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.72-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.43-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.40-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.34-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.29-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.28-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.19.23-300.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.14.119-200.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.14.116-200.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

kernel-headers-4.14.111-200.el7.x86_64.rpm

有的系统安装后缺少这个rpm,导致后续软件不能安装 安装后可以正常编译驱动模块、程序等。

2021-01-23

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

TA关注的人

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