随笔分类 -  os

上一页 1 2 3 4 5 6 7 ··· 23 下一页

arm 时间系统 1
摘要:kernel:3.6硬件:一般soc会有多个sp804外部timer,假设现在timer0作全部时钟设备,timer1作为clocksource。arm smp local timer。核心数据结构对象:1. struct clock_event_device 时钟设备抽象类型,其中set_next 阅读全文

posted @ 2021-12-09 15:08 tycoon3 阅读(516) 评论(0) 推荐(0)

网卡 dma 屏障指令
摘要:我们看一个wmb()和rmb()的使用例子。我们需要到设备驱动中寻找,就顺便选一个我也不清楚的网卡驱动吧(drivers/net/8139too.c)。 static netdev_tx_t rtl8139_start_xmit (struct sk_buff *skb, struct net_de 阅读全文

posted @ 2021-12-09 10:08 tycoon3 阅读(458) 评论(0) 推荐(0)

高效搜索神器 Everything 搜索技巧汇总
摘要:打开everything。 找到你要查找的文件夹路径,方法如下:,在我的电脑里找,如何在地址栏里点击鼠标左键,转换成路径,复制该路径到everything。 切换到everything界面,勾选“搜索”-“匹配路径”。 更换文件夹路径即可搜索其他指定的文件夹内容。 高级搜索 不需要设置everyth 阅读全文

posted @ 2021-12-08 15:43 tycoon3 阅读(1270) 评论(0) 推荐(0)

DMA CACHE一致性问题解决方案
摘要:DMA与Cache 的一致性 一致性问题 mem中有一块报文,cpu会将这块报文读到cache,cpu再读这块,cache hit。则会从cache中取值。 如果外设是一张网卡,通过DMA 数据传到内存,将红色这块涂成了绿色。内存已经绿了,但是cpu读这块数据却还是红色。造成内存 cache 不一致 阅读全文

posted @ 2021-12-08 09:53 tycoon3 阅读(4448) 评论(0) 推荐(0)

sched_clock: 32 bits at 48MHz, resolution 20ns, wraps every 44739242997ns
摘要:void __init sched_clock_register(u64 (*read)(void), int bits, unsigned long rate) { u64 res, wrap, new_mask, new_epoch, cyc, ns; u32 new_mult, new_shi 阅读全文

posted @ 2021-12-07 20:53 tycoon3 阅读(173) 评论(0) 推荐(0)

协议栈构造skb发送udp
摘要:/** * @file lkm.c * @author Dmytro Shytyi * @date 14 Octobre 2018 * @version 0.1 * @brief A "Hello World!" loadable kernel module (LKM) that sends Hel 阅读全文

posted @ 2021-12-07 11:45 tycoon3 阅读(403) 评论(0) 推荐(0)

内核snprintf
摘要:snprintf(bp->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x", bp->pdev->name, bp->pdev->id); 阅读全文

posted @ 2021-12-06 14:36 tycoon3 阅读(138) 评论(0) 推荐(0)

recv send skb
摘要:这部分线性buffer 由以上四个指针控制,分割成三个部分,这四个指针都指向线性buffer 中的位置: head 到data 之间,称为headroom. data 到tail 之间,存放包的数据。 tail 到end 之间,称为tailroom. 由于 TCP/IP 协议族是一种分层的协议,传输 阅读全文

posted @ 2021-12-04 11:08 tycoon3 阅读(455) 评论(0) 推荐(0)

you need to specify explicit textual name for "root=" boot option
摘要:#-kernel ~/riscv_debug/linux-5.14/arch/riscv/boot/Image -append "root=/dev/vda ro console=ttyS0,115200n8 earlycon=sbi" \ qemu-system-riscv64 -nographi 阅读全文

posted @ 2021-12-03 21:03 tycoon3 阅读(62) 评论(0) 推荐(0)

制作initrams
摘要:make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- -j64 menuconfig CROSS_COMPILE=riscv64-linux-gnu- -j64 CROSS_COMPILE=riscv64-linux-gnu- -j64 install r 阅读全文

posted @ 2021-12-03 15:27 tycoon3 阅读(468) 评论(0) 推荐(0)

/lib64/libc.so.6: version `GLIBC_2.33'
摘要:[root@centos7 rams2]# riscv64-unknown-linux-gnu-objdump -x usr/sbin/tcpdump | grep NEEDED NEEDED libcrypto.so.1.1 NEEDED libpcap.so.0.8 NEEDED libc.so 阅读全文

posted @ 2021-12-03 10:27 tycoon3 阅读(6199) 评论(0) 推荐(0)

linker script 连接脚本
摘要:[root@centos7 aarch64-bare-metal-qemu]# gcc -c test64.c -o test64.o [root@centos7 aarch64-bare-metal-qemu]# as -c startup64.s -o startup64.o [root@cen 阅读全文

posted @ 2021-12-02 10:34 tycoon3 阅读(278) 评论(0) 推荐(0)

vmlinux虚拟地址和物理地址的确定
摘要:(1) 下面是确定内核的虚拟地址、物理地址的关键信息, 感兴趣的同学可以自己看:vmlinux虚拟地址的确定:内核源码: .config : CONFIG_PAGE_OFFSET=0xC0000000 arch/arm/include/asm/memory.h #define PAGE_OFFSET 阅读全文

posted @ 2021-12-01 16:47 tycoon3 阅读(1447) 评论(0) 推荐(0)

设备树中时钟
摘要:时钟框图 先来看看S3C2440时钟的硬件框图: 将该图简化如下: 我们只想作为消费者怎么去使用这些时钟,并不关心“提供者”内部的层级结构,只要知道“直接提供者”,也不关系“直接提供者”的实现,我们只需要发出请求就可以了。 晶振设备树描述 我们看看在2440的设备树里怎么描述这提供者和消费者。先来看 阅读全文

posted @ 2021-12-01 16:27 tycoon3 阅读(2007) 评论(0) 推荐(0)

sys 文件 sysfs_create_file negative width in bit-field
摘要:出错代码行如下:struct my_attribute val_attribute = __ATTR(val, 0666, val_show, val_store); 解决方法 是__ATTR宏的权限问题,将上述的0666改为0664,问题迎刃而解。 In file included from ./ 阅读全文

posted @ 2021-11-29 10:32 tycoon3 阅读(479) 评论(0) 推荐(0)

Linux设备驱动workqueue(工作队列)案例实现
摘要:一、Linux工作队列与Linux小任务机制的区别 工作队列(work queue)是另外一种将工作推后执行的形式,tasklet(小任务机制)有所不同。工作队列可以把工作推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行。这样,通过工作队列执行的代码能占尽进程上下文的所有优 阅读全文

posted @ 2021-11-26 10:07 tycoon3 阅读(556) 评论(0) 推荐(0)

内核arp请求
摘要:Linux 内核 网络地址转换函数 in_aton、 in4_pton 和 in6_pton #ifndef _LINUX_INET_H #define _LINUX_INET_H #include <linux/types.h> /* * These mimic similar macros de 阅读全文

posted @ 2021-11-24 16:45 tycoon3 阅读(268) 评论(0) 推荐(0)

clk_enable
摘要:When implementing support for a new type of clock it is only necessary to include the following header:: #include <linux/clk-provider.h> To construct 阅读全文

posted @ 2021-11-24 11:53 tycoon3 阅读(91) 评论(0) 推荐(0)

Linux设备树
摘要:linux kernel的设备驱动模型在linux kernel引入统一设备模型之后,bus、driver和device形成了设备模型中的铁三角。在驱动初始化的时候会将代表该driver的一个数据结构挂入bus上的driver链表,device的数据结构挂入bus上的devie链表,那么如何让dev 阅读全文

posted @ 2021-11-24 09:42 tycoon3 阅读(207) 评论(0) 推荐(0)

编译设备树
摘要:通常将设备树源码(dts/dtsi)编译成设备树二进制文件(dtb)可以使用DTC(Device Tree Compiler)工具编译。 单文件编译 对于单文件的dts,可以采用下面的命令: # dtc命令使用方法见文末 dtc -O dtb -b 0 -o [dest_dtb_file] [src 阅读全文

posted @ 2021-11-18 16:22 tycoon3 阅读(1046) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 23 下一页

导航