Linux 日常使用与开发
文章平均质量分 68
Evan_ZGYF丶
我在起点
展开
-
嵌入式SOC芯片选型
本文主要探讨的是如果涉及芯片选型,需要考虑哪些方面?将相关的需求列出来,供后续实践的时候参考。原创 2023-12-11 21:18:51 · 694 阅读 · 0 评论 -
嵌入式BSP内存统计
项目开发的可行性评估中,常涉及到内存的使用评估,这对项目DDR大小的选型及成本控制至关重要,本文主要是梳理了内存当前BSP内存统计方案,找到内存统计过程中的关键参数,以便后续项目评估过程中提供更精确的BSP内存使用情况。原创 2023-12-11 21:17:52 · 740 阅读 · 0 评论 -
嵌入式开发DDR的选择
当前DDR主要有DDR、DDR2、DDR3、DDR4、DDR5等不同的内存标准。本文主要是对比不同标准的DDR,了解其差异性以及优劣势,以便在以后在以后做DDR选型的时候做一定的参考。原创 2023-11-28 21:24:25 · 2525 阅读 · 0 评论 -
嵌入式开发中常见的文件系统
本文主要介绍嵌入式开发中常用的文件系统类型。对比其差异性及优劣势,以便在后续开发时,选择更合适的嵌入式文件系统。原创 2023-11-27 21:20:18 · 2485 阅读 · 0 评论 -
【操作系统】操作系统的大端模式和小端模式
所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。原创 2023-11-07 15:09:21 · 761 阅读 · 0 评论 -
【进程与线程】进程与线程 Q&A
进程与线程常见知识点:原创 2023-11-07 06:30:17 · 746 阅读 · 0 评论 -
做过哪些外设驱动?
面试被问到做过哪些I2C外设?把相关信息整理下,做一个归纳。原创 2023-10-26 16:06:51 · 833 阅读 · 0 评论 -
【内存管理】虚拟内存、物理内存之间的关系
本文介绍了什么是虚拟内存、什么是物理内存,虚拟内存与物理内存之间的关系,以及为何需要虚拟内存的原因原创 2023-10-18 14:53:24 · 1542 阅读 · 0 评论 -
【开发工具】【Valgrind】内存问题检测工具(valgrind)的使用
Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。原创 2022-11-12 22:37:32 · 2410 阅读 · 1 评论 -
开发环境 -- 虚拟机和主机之间ping不通/开发板和虚拟机之间ping不通
在学习驱动的时候遇到的一个问题,差不多把网上的方法都试了一遍,然后莫名其妙就好了。。。记下来下次再用1.顺便一提:The VMware Authorization Service is not runningVMware Workstation cannot connect to the virtual machine. Make sure you have r原创 2016-10-20 18:34:56 · 2446 阅读 · 0 评论 -
【编码规范】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 · 1768 阅读 · 0 评论 -
【开发工具】【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 · 918 阅读 · 0 评论 -
【Makefile】Makefile 中 LINUXINCLUDE 的作用
在驱动开发的时候,我们经常会创建很多新的头文件,这些头文件大多以#include"xxx.h"的形式放在源码中。而内核头文件则是以#include <xxx.h>的形式存在。这两者的区别:前者(使用""),来引用xxx.h文件,是首先检索文件的当前路径;如果没有,再检索标准路径,看看这些文件夹下是否有该头文件。后者(使用<>),来引用xxx.h文件,是首先检索标准路径,看看这些文件夹下是否有该头文件;如果没有,也不会检索当前文件所在路径,并将报错。实际移植过程中遇.原创 2022-02-10 15:58:14 · 558 阅读 · 0 评论 -
【开发工具】【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 · 11278 阅读 · 0 评论 -
【开发工具】【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 · 2939 阅读 · 0 评论 -
【开发工具】【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 · 12850 阅读 · 0 评论 -
【开发日常】【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 · 1408 阅读 · 0 评论 -
【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 · 2211 阅读 · 0 评论 -
【开发工具】【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 · 7765 阅读 · 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 · 2402 阅读 · 1 评论 -
【uboot】设置uboot下的bootargs参数
关键字:【bootargs】、【uboot】、【boot】、【bootloader】、【】、【】、【】、【】、【】、【】、描述:因为项目需要,常常要修改uboot代码。其中比较重要的就有“bootargs”参数什么是bootargs?简单来说:bootargs就是传递给内核的启动参数。在uboot加载内核时,会将bootargs参数传递给内核(指定内存地址)。在内核启动过程中,会获取bootargs参数,并解析其中的信息。用于启动过程中用于配置相关的驱动模块信息。如何设置bo原创 2021-10-10 21:30:58 · 5859 阅读 · 0 评论 -
【开发日常】解压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 · 1973 阅读 · 0 评论 -
【中断】自己写一个中断处理程序,需要注意哪些问题?
Linux中断知识汇总:【深入理解Linux内核】【中断】内容汇总帖目录什么是中断处理程序?注册中断处理程序编写中断处理程序编写中断处理程序的注意事项为什么在中断里不可以睡眠?为什么在中断里不可以使用耗时很长的函数?什么是中断处理程序?中断处理程序:在响应一个特定中断的时候,内核会执行一个函数,该函数叫做中断处理程序。产生中断的每一个设备都有一个相应的中断处理程序。中断处理程序是被内核调用来响应中断的,他们运行于中断上下文中,该上下文中的代码不可阻塞。我们一.原创 2021-04-28 22:19:26 · 6884 阅读 · 3 评论 -
【中断】异常和中断的关系、异常向量表和中断向量表的关系
Linux中断知识汇总:【深入理解Linux内核】【中断】内容汇总帖目录什么是异常?什么是中断?异常和中断的关系什么是异常向量表?什么是中断向量表?异常向量表和中断向量表的关系什么是异常?异常:因为内部或者外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件。当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。从这句话中可以知道异常包括中断(单片机中的中断)+和运行模式的切换“中断”+资源访问“中断”。..原创 2021-04-27 23:50:45 · 4774 阅读 · 1 评论 -
【中断】发生硬件中断后,ARM处理器做了那些事情?
发生硬件中断后,ARM处理器做了那些事情?CPU自动保存处理器状态,即将中断发生时的CPSR寄存器内容保存到SPSR_irq寄存器中 CPU自动设置当前程序状态寄存器CPSR的低5位,使处理器进入特权模式中的IRQ模式(Linux不使用FIQ,只使用IRQ) 硬件自动关闭IRQ中断 将返回地址(PC)自动保存到LR_irq寄存器中 CPU自动的将程序计数器PC设置成异常中断向量表中的地址,进入相应的异常处理程序中处理中断 处理完中断后,恢复中断发生前的处理器状态,即将SPSR_irq寄存器中原创 2021-04-24 22:00:23 · 2035 阅读 · 2 评论 -
【中断】你对中断究竟有多了解?试着把中断的触发流程整理了一遍...
如果要你讲一下中断,你会怎么去描述一个中断的触发流程呢?最基础的可能就是:保护现场 - 中断处理 - 恢复现场...那保护现场做了什么事情?中断处理需要注意什么事情?恢复现场又做了什么事情?相对应的,关于中断,还有很多这样的问题:触发中断的因素有哪些? 各中断源如何向CPU提出中断请求? CPU如何区分是哪个中断触发的请求? 当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断请求? CPU在什么条件、什么时候、以什么方式来响应中断?..原创 2021-04-24 16:38:09 · 10754 阅读 · 5 评论 -
【开发日常】HI3519V101设置DDR时钟频率
目录确认DDR时钟源选择确认DPLL POSTDIV 时钟频率重新设置DDR时钟频率确认DDR时钟源选择PERI_CRG13 为SOC 频率配置寄存器PERI_CRG13 为SOC 频率配置寄存器表3-7 CRG寄存器概览(基址是0x1201_0000)偏移地址 名称 描述 页码0x0034 PERI_CRG13 SOC 频率配置寄存器 3-23对应内存地址为:0x12010034原创 2021-04-16 15:59:45 · 2012 阅读 · 0 评论 -
【开发日常】【windows】【tscan】在windows上部署TscanCode代码检测工具
目录TscanCode简介下载TscanCode安装TscanCode使用TscanCodeTscanCode简介TscanCode是腾讯静态分析团队开发的一款开源免费的C/C++静态分析工具,由于其比较简单实用,准确率较高,并且扫描C/C++代码不需要进行编译,所以个人觉得对C/C++项目开发挺有帮助的,就简单介绍一下该工具的安装与使用。下载TscanCode下载地址:https://download.csdn.net/download/Ivan804638781/1原创 2021-04-02 22:02:50 · 3555 阅读 · 10 评论 -
【开发日常】【windows】教你在Windows下的cmd窗口中使用ssh命令
目录下载OpenSSH安装OpenSSH配置OpenSSH下载OpenSSHhttps://download.csdn.net/download/Ivan804638781/16244149安装OpenSSH运行下载完成的setupssh安装文件。单击下一步。选择接受,单击下一步。选择组件,单击下一步。选择安装目录,单击下一步。选择开始菜单,单击下一步。设置sshd密码,单击下一步。这里一定要记住这个密码,登录ssh要输入密码原创 2021-03-30 20:09:40 · 3384 阅读 · 3 评论 -
【开发日常】【Windows】如何通过Cygwin在Windows中使用Linux命令
目录前情提要下载Cygwin安装Cygwin配置Cygwin前情提要因为软件开发工作的原因,我们常常使用Linux下的命令,并且养成了一定的习惯,有时候打开windows界面的命令行工具,回不自觉的输入“ls”、“pwd”等命令。那是否有什么办法,能让windows下也支持这些命令呢?以下是如何使用Cygwin(Windows XP的“ nix风格”终端)获得两全其美的方法。在文本中,我们将说明如何使Cygwin运行Linux命令。下载Cygwin网址: ht原创 2021-03-30 19:35:26 · 1602 阅读 · 1 评论 -
【开发工具】【git】git commit后,还没push前,如何撤销?
问题:正常git代码提交流程是:git add ...git commit -scodereview在代码还没真正入库前,我们还可以对当前代码进行修改,并基于上一个commit进行同步git add ...git commit --amendcodereview但如果操作不当,可能会造成上一个commit已经入库了,我们基于上一个commit进行了同步,就会报错:! [remote rejected] HEAD -> refs/for/xxx (change..原创 2021-03-30 16:36:21 · 832 阅读 · 1 评论 -
【开发工具】【Ftrace】内核追踪器(ftrace)的使用
本文转载自:https://blog.csdn.net/longerzone/article/details/16884703因为对方已经写的非常详细了,暂时没有什么需要加的内容,就直接转载了.目录Ftrace简介Ftrace的应用场景Ftrace的配置Ftrace 的基本使用步骤Ftrace 的进阶使用Ftrace 提供的函数使用简单的 Ftrace 脚本案例Ftrace简介Ftrace 是一个内核中的追踪器,用于帮助系统开发者或设计者查看内核运行情况,它可.转载 2021-03-29 11:05:51 · 3826 阅读 · 2 评论 -
【C语言】【switch】在switch case中一段永远不会被执行的代码
今天有段出糗的事情,写了一段代码,本来打算看下switch中具体走的哪个流程的,结果运行了半天也没有打印出来。代码类型类似如下:#include <stdio.h>int main(){ /* 我的第一个 C 程序 */ printf("Hello, World! \n"); switch(1) { printf("statement will never be executed! \n"); default: printf("default \n原创 2021-02-25 16:56:59 · 3458 阅读 · 4 评论 -
【开发工具】【memtester】内存测试工具(memtester)的使用
获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中:【开发工具】嵌入式常用开发工具汇总帖Memtester简介Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, 可以对系统现有的内存进行上面项目的测试。Memtester安装下载memtester-4.3.0.tar.gz:http://pyropus.ca/software/memtester/解压缩ta.原创 2021-02-24 15:03:58 · 6083 阅读 · 5 评论 -
【开发工具】【stream】内存带宽测试工具(Stream)的使用
获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中:【开发工具】嵌入式常用开发工具汇总帖Stream简介STREAM是一套综合性能测试程序集,通过fortran和C两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率, 使得 STREAM 测试例程可以充分发挥出内存的能力。 STREAM 测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值。Stream测试原理:1.主要有四种数组的运算,测试到内存带宽的性能,分别是:数组的复制(Copy).原创 2021-02-24 13:16:54 · 8457 阅读 · 9 评论 -
【开发工具】【ifconfig】显示或设置网络设备(ifconfig)的使用
获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中:【开发工具】嵌入式常用开发工具汇总帖添加这篇文章的目的就是为了补充自己的工具库,方便后续排查问题。因为已经有比较好的文档介绍了ifconfig,因此直接参考:https://www.runoob.com/linux/linux-comm-ifconfig.htmlifconfig简介ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。.转载 2021-02-21 20:35:11 · 770 阅读 · 1 评论 -
【开发工具】【iperf】网络性能测试工具(iperf)的安装和使用
简介:Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。Iperf在Linux和windows平台均有二进制版本供自由使用安装:#安装好软件仓库包 1 . 用yum软件仓库安装 yum-yinstallepel-release yum install iperf 2. 下...原创 2018-06-23 14:16:20 · 3186 阅读 · 2 评论 -
【Makefile】Makefile 中 LINUXINCLUDE 的作用
背景知识在驱动开发的时候,我们经常会创建很多新的头文件,这些头文件大多以#include"xxx.h"的形式放在源码中。而内核头文件则是以#include <xxx.h>的形式存在。#include"xxx.h"、#include <xxx.h>这两者的区别:前者(使用""),来引用xxx.h文件,是首先检索文件的当前路径;如果没有,再检索标准路径,看看这些文件夹下是否有该头文件。 后者(使用<>),来引用xxx.h文件,是首先检索标准路径,看看这些文原创 2021-01-27 15:47:28 · 1004 阅读 · 1 评论 -
【问题排查】implicit declaration of function ‘interruptible_sleep_on‘处理
当前内核版本:3.18.y源代码对应的内核版本:2.6.37问题移植代码的时候报错:341:3: error: implicit declaration of function 'interruptible_sleep_on' [-Werror=implicit-function-declaration] interruptible_sleep_on (&tty->read_wait); ^一样是比较两个版本的内核源码,发现interruptible_.原创 2021-01-27 15:11:36 · 1160 阅读 · 3 评论 -
【开发工具】【git】通过关键字搜索对应的git提交日志
因为想查看某一个函数对应在源码中的修改记录,就想到了git log.试试看能不能搜索到相关信息。想找到一个内核函数相关的git log修改记录,第一想法是"git log + grep"操作:zhugeyifan@83-28:~/source/linux-stable/linux-stable$ git log | grep interruptible_sleep_on swim3: fix interruptible_sleep_on race interruptible_s原创 2021-01-27 14:39:07 · 1936 阅读 · 2 评论
分享