![](https://img-blog.csdnimg.cn/2021072021072388.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
__Linux
文章平均质量分 56
Linux OS Application, Driver.
Javier-Huang
欢迎来到Javier-Huang的Linux技术分享站
展开
-
busybox | 添加第三方源码库
这里以添加 libhl 库为例:创建 libhl 目录,将 *.c 复制到 libhl,将 *.h 复制到 include 目录创建 libhl/Kbuild.src,内容为:# Makefile for busybox## Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>## Licensed under GPLv2, see file LICENSE in this source tree.l原创 2022-01-23 14:57:06 · 526 阅读 · 0 评论 -
busybox | 更改安装目录为/usr/local/bin
补丁diff --git a/libbb/appletlib.c b/libbb/appletlib.cindex 03389f5..7520d6d 100644--- a/libbb/appletlib.c+++ b/libbb/appletlib.c@@ -651,6 +651,7 @@ static void check_suid(int applet_no) # if ENABLE_FEATURE_INSTALLER static const char usr_bin [] ALIGN原创 2022-01-23 14:43:01 · 1015 阅读 · 0 评论 -
busybox | 添加自定义命令
基于busybox V1.35.0修改方法创建 my_utils/hello.c//usage:#define hello_trivial_usage//usage: "[-fF]"//usage:#define hello_full_usage "\n\n"//usage: "This is some description about your tools\n"//usage: "\n -h help"//config:config HEL原创 2022-01-23 14:29:51 · 1113 阅读 · 0 评论 -
Linux驱动 | 浅谈 Per-CPU 变量在统计网络收发报文的应用
为何要引入 Per-CPU 变量(1)spin_lock 空转 CPU在内核开发中,为了实现临界资源的互斥,我们常常直接使用 spin_lock,来实现临界区的保护,但是 spin_lock 实际上是一种忙等待锁。当锁不可用时,CPU会空转来等待资源可用。(2)当锁的数量达到上千个时,并发容易死锁当内核要维护的锁的数量急剧增加,由于锁争用的存在,并发情况下,spin_lock 进入死锁的概率会变高。Per-CPU 变量的原理Per-CPU变量,顾名思义,就是将某个变量,将其分 n 份存储在对应的原创 2022-01-15 00:45:33 · 495 阅读 · 0 评论 -
Linux驱动 | 调试宏和多平台兼容的Makefile
调试宏将头文件driver.h包含到驱动文件中。drvier.h#ifndef __SCULL_H__#define __SCULL_H__#ifdef EN_DRIVER_DEBUG #ifdef __KERNEL__ //处于内核空间 #define PDEBUG(fmt,args...) printk(KERN_DEBUG fmt,##args) #else //处于用户空间 #define PDEBUG(fmt,args..原创 2021-08-01 16:31:47 · 220 阅读 · 0 评论 -
工具 | Linux终端删除文件并移动到回收站
Ubuntu终端删除文件并移动到回收站原创 2021-07-18 12:05:03 · 826 阅读 · 0 评论 -
Linux驱动 | Linux高分辨率定时器hrtimer(实操代码编写)
本文主要说明hrtimer相关知识点,编写实实在在的驱动来验证。原创 2020-05-02 18:22:38 · 1091 阅读 · 0 评论 -
Linux驱动 | Linux低分辨率定时器timer(实操代码编写)
本文讲解Linux低分辨率定时器的用法,最后一个实例做验证。原创 2020-05-01 13:07:39 · 374 阅读 · 0 评论 -
Linux驱动 | Linux GPIO中断(代码实操,架构mips平台mt7688)
Linux中断原理Linux内核中每个中断irq对应一个struct irq_dest结构体(注意:这里的irq是内核内部irq,不是硬件irq),每个struct irq_desc包含一条struct irqaction链表。struct irq_desc { ...... struct irqaction *action; /* IRQ action list ...原创 2020-05-06 23:43:22 · 1233 阅读 · 0 评论 -
Linux驱动 | Linux中断下半部机制
1、Linux中断Linux中断分为两部分:上半部和下半部,上半部完成紧急且能很快完成的任务,下半部完成不紧急且比较耗时的任务。1.1、特征1,上半部和下半部都处于中断上下文中,不能调用任何可能调度的函数(意味着不能睡眠)。2,下部分的执行必须保证其原子性。硬件中断发生时,内核禁止了抢占,中断上半部被执行。上半部执行完成后,在执行下部分前,重新启用了中断,意味着在下部分执行时,可以被新的硬件中断抢占,意味着需要对中断上半部与下半部的涉及的共享资源加锁。3,实现下半部的机制:tasket和工作队列原创 2020-05-08 19:25:14 · 503 阅读 · 0 评论 -
工具 | modbus-utils(linux平台的modbus调试软件)
modbus-utils(linux平台的modbus调试软件)Modbus client and server command line tools based on libmodbus.代码仓库编译for ubuntu:sudo apt install libmodbus-devfor buildroot:BR2_PACKAGE_LIBMODBUS=ybuilding:$ cd modbus_client$ gcc -o modbus_client modbus_client.c原创 2020-12-31 18:03:51 · 10156 阅读 · 10 评论