加油2019
码龄7年
关注
提问 私信
  • 博客:120,182
    120,182
    总访问量
  • 77
    原创
  • 98,896
    排名
  • 55
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:想学的太多,路上满是坎坷,越是如此,越要勇往直前

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2017-08-30
博客简介:

qq_40036519的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    324
    当月
    6
个人成就
  • 获得100次点赞
  • 内容获得26次评论
  • 获得326次收藏
  • 代码片获得338次分享
创作历程
  • 1篇
    2024年
  • 2篇
    2023年
  • 6篇
    2022年
  • 7篇
    2021年
  • 52篇
    2020年
  • 5篇
    2019年
  • 5篇
    2018年
成就勋章
TA的专栏
  • 随笔misc
    15篇
  • 数据结构
    4篇
  • 小张学inux内核
    23篇
  • golang学习笔记
    3篇
  • 笔记
    3篇
  • 算法
    12篇
  • fpga学习之路
    1篇
  • uboot
    1篇
  • linux内核之驱动篇
    4篇
  • inux内核之数据结构
    1篇
  • 嵌入式学习之旅
    8篇
  • 资源下载
    2篇
  • RSIC V学习之旅
  • 音视频算法
    1篇
  • linux学习笔记
    7篇
兴趣领域 设置
  • 硬件开发
    驱动开发
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

174人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

eventfd和timerfd学习笔记

timerfd可用于用户态的定时器,定时操作。
原创
发布博客 2024.05.19 ·
948 阅读 ·
11 点赞 ·
0 评论 ·
15 收藏

ubuntu22上使用qemu-system-arm调试linux

qemu是用软件模拟硬件解析指令运行的软件,可以模拟arm、arm64、x86等,对于调试linux 内核机制很方便,不用额外购买开发板。由于linux上有对qemu的加速引擎,支持程度更高,且网络上教程居多,所以这里使用virtualbox+ubuntu22虚拟机,在ubuntu上运行qemu进行模拟。
原创
发布博客 2023.12.24 ·
1206 阅读 ·
11 点赞 ·
0 评论 ·
10 收藏

btree学习笔记

btree:balance tree,平衡多叉树,类比avl:平衡二叉树,都是有平衡的属性 (多个子树高度一致),只不过是二叉和多叉的区别。
原创
发布博客 2023.09.10 ·
437 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux早期内存管理:memblock完全介绍

linux启动阶段,在伙伴系统初始化之前,也是需要动态内存分配的,比如dts、sparse_vmemmap、页表等,称早期内存管理,early mem manger。此阶段采用简单的内存管理器,有bootmem和memblock,bootmem是早期内核采用。4.x以后内核内核采用memblock,配置了NO_BOOTMEM宏。......
原创
发布博客 2022.07.31 ·
1801 阅读 ·
1 点赞 ·
1 评论 ·
8 收藏

FSM有限状态机golang实战

FSM有限状态机FSM:finite state machion,有限状态机。两种实现方式:简单switch case适用于简单的状态机int stateMachion(int event){ switch(curSate) { case sleeping: switch(event) { case hungary: eatIt(); curState = eating; ..
原创
发布博客 2022.03.26 ·
1274 阅读 ·
0 点赞 ·
2 评论 ·
1 收藏

UBI文件系统镜像制作

UBI文件系统镜像制作ubifs文件系统镜像分为制作分两步,分别是:1)mkfs.ubifs工具制作UBIFS文件系统镜像2)ubinize添加UBI卷信息mkfs.ubifs只是制作了UBIFS文件系统镜像,但其要能通过烧录器烧片,必须使用ubinize工具把UBI卷信息加上。mkfs.ubifs工具mkfs.ubifs命令用于制作ubifs文件系统,命令示例如下:mkfs.ubifs -x lzo -m 2KiB -e 124KiB -c 360 -o ./tmp_ubifs.img -d
原创
发布博客 2022.03.12 ·
1953 阅读 ·
0 点赞 ·
0 评论 ·
9 收藏

进程proc文件介绍

进程proc文件介绍proc/${pid}/下是每个进程的proc信息,/proc/self比较特殊,哪个进程打开,对应链接到哪个进程。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4q6coJfs-1645932312850)(E:\csdn_demo\进程proc文件系统介绍\进程proc文件.PNG)]内存相关:status: 进程使用虚拟内存和物理内存(RSS)信息statm:maps: 段内核映射VMA以及加载动态库信息;(映射分为文件映射和
原创
发布博客 2022.03.12 ·
3180 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

内核tty框架_串口_tty_shell的关系

串口驱动已s3c24xx为例,串口驱动主要提供ops,数据结构如下:在driver/tty/serial/samsung.c以三星s3cttypty虚拟tty。shellcmdlineconsole=ttySAC0;tty和串口驱动的绑定。串口驱动会注册tty设备?tty设备名,是串口驱动uart_driver中定义,uart_driver的dev_name中定义。nr值为后续的索引。如:如console=ttySAC0,CONFIG_SERIAL_SAMSUNG_UART
原创
发布博客 2022.01.15 ·
1596 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

linux内核poll函数学习使用源码mark

记录linux poll机制源码记录,基于linux2.4内核,在内核poll函数中使用poll_wait等待完成变量完成,然后在中断中唤醒完成变量。#include <linux/errno.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/modulep
原创
发布博客 2022.01.03 ·
414 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

python制作epub文件代码

python制作epub文件代码,已封装成类,可以直接使用。# encoding:utf-8# !/usr/bin/python3import zipfileimport os.pathcontainer_template = '''<?xml version="1.0" encoding="utf-8" standalone="no"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:
原创
发布博客 2021.12.05 ·
1369 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

linux网桥实现代码走读

拓扑vlan_dev --> br-lan --> IP层 (br本身也会有一个fdb条目)网桥创建/添加节点模块初始化static int __init br_init(void){ int err; /*注册STP协议*/ err = stp_proto_register(&br_stp_proto); /*分配fdb的slab: "bridge_fdb_cache", 变量br_fdb_cache*/ err = br_fdb_init(); /*命名空间
原创
发布博客 2021.08.08 ·
1158 阅读 ·
1 点赞 ·
0 评论 ·
11 收藏

前缀树学习和IP路由查找

概要前缀树,又叫字典树,trie树。是一种多叉树。用途单词补全/预测拼写检查9建输入IP路由查找(最长前缀匹配)数组中两个树最大异或值特点根节点是空字符每个节点所有子节点都不同根到叶子,路径上所有字符连接即使该节点对应的字符串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-66WdAdSm-1627787560898)(E:\csdn_demo\算法\前缀树\前缀树图示.png)]存储数组形式用空间换时间,每个节点使用数组保存,
原创
发布博客 2021.08.01 ·
1260 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

linux系统调用_arm实现深入剖析(上下文保存、参数传递)

前言这里我们不再赘述系统调用的基本原理以及系统调用产生时的函数调用以及系统调用表,直接看arm中的软中断产生及返回时如何保存寄存器上下文、如何陷入内核再返回、如何传参,模式切换做了哪些处理。这里mark一下: EABI和OABI系统调用实现的方式有所不同。陷入内核不同于x86的int 80中断,arm中使用软中断指令swi实现系统调用,直接看swi的处理向量vector_swi:/*=========================================================
原创
发布博客 2021.07.24 ·
1049 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

golang微信小程序爬虫教程offer秀

背景周末帮女友手查的各大厂薪资情况,忙活了一个下午,真的是好无聊啊,所以决定写一个爬虫程序,自动爬取。图片offershow界面,以下采用秀代替offer秀因为本人本地开发环境是golang,所以还是采用golang,需求目标是爬取各大厂的薪资情况生成excel文档,用户可以输入筛选条件,如公司、学校、学历等信息,然后只输出筛选后的数据。抓包分析爬虫最重要的一步,抓包分析http请求包括头和相应报文内容,因为我们爬虫时就是需要构造http请求报文和解析响应报文。其次爬微信小程序和爬web网页没有
原创
发布博客 2021.07.18 ·
1931 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

socket源IP为INADDR_ANY,linux内核何时选择IP

1.通过bind看到原地址保存在inet_addr中2.tcp中connect操作,会设置通过ip_route_connect查路由操作选择srcip;3.udp没有绑定操作,一个socket可以给多个目的发包,不同目的使用的源ip也不一样
原创
发布博客 2021.05.01 ·
1590 阅读 ·
3 点赞 ·
1 评论 ·
7 收藏

01背包问题通俗讲解

问题知道每个物体重量和价值,给你一个背包,计算所能装走物体的最大价值。例如:背包容量:8kg;物体重量编号重量/kg价值023134245356为什么叫01背包问题答:因为每个物体都只有两种选择,装或者不装,称这种每个物体只有两种选择的问题称为01背包问题。解题思路每个物体只有两种选择,即装与不装背包的最大容量为,某个物体装和不装的这种情况中的所得容量最大值。装:总价值增加v,背包容量减少w;(假设该物体重w,价值v
原创
发布博客 2021.04.04 ·
386 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

linux软中断和系统调用深入研究

arm软中断模式arm7种模式有中断模式,但是并没有软中断模式。那么arm的软中断是什么呢?arm的软中断是arm从用户模式切换到特权模式,也就是linux中从用户态切换到内核态的过程。swi命令触发软中断linux系统中,swi异常向量代码:linux系统调用x86 架构是硬中断int 80,中断号为80来实现系统调用的;arm架构是使用swi命令,使arm切换为软中断模式,执行swi异常向量表中的异常向量。软中断的异常向量arm中异常象量表:异常类型偏移地址(低)偏移
原创
发布博客 2020.12.27 ·
2299 阅读 ·
1 点赞 ·
2 评论 ·
14 收藏

verilog 图像处理篇: 1.单通道提取

从camera出的像素格式为bayer格式,单通道提取,生成灰度图。GRBG4个通道都用某一通道的数据填充。算法实现,使用双端ram来实现该算法。由于bayer阵列,一个点的像素信息,在bayer阵列中占据两行。算法思路取一大小为2行阵列的dpram;每次写入2行数据,而读取时,只选则其中一行读取。且一行中的两个通道都读取同一地址的数据。代码实现//file name: gray.v//author: shugen.yin//date: 2017.10.18//func
原创
发布博客 2020.11.23 ·
1200 阅读 ·
2 点赞 ·
0 评论 ·
13 收藏

golang学习笔记

io.reader 提供了Reader方法的都是readerio.reader只是interface,如File类就是一个readertype定义类,具体类的方法不用在类中声明方法的指针传递,是修改内部属性用,如果是值传递则不会修改对象内部属性;其次指针传递减少copyduck typing,没有继承的概念golang 下载包命令go get github.com/chai2010/webp 与全局go path有关testbench设置文件名:XXX_test...
原创
发布博客 2020.11.23 ·
472 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

转载:linux 网络相关sysctl变量详解

Linux /proc/sys/net/ipv4/* 变量TCP变量:somaxconn - INTEGERlisten()的backlog参数的上限,在用户态为SOMAXCONN。默认是128。也可参考TCP socket调优的tcp_max_syn_backlog参数。tcp_abort_on_overflow - BOOLEAN如果监听服务太慢以致于不能接受新的连接了,就重置他们。默认值是FALSE。这意味着如果是因为一个burst而发生的溢出,连接可以恢复。只有在你非常确定的监听服务端接受
原创
发布博客 2020.11.20 ·
463 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏
加载更多