宅学部落-王利涛
码龄9年
关注
提问 私信
  • 博客:169,753
    社区:94,001
    学院:247,368
    511,122
    总访问量
  • 116
    原创
  • 1,832,577
    排名
  • 1,137
    粉丝
  • 6
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2016-03-09
博客简介:

宅学部落-王利涛

查看详细资料
个人成就
  • 获得196次点赞
  • 内容获得76次评论
  • 获得1,548次收藏
  • 代码片获得560次分享
  • 博客总排名1,832,577名
创作历程
  • 13篇
    2022年
  • 2篇
    2021年
  • 17篇
    2020年
  • 34篇
    2019年
  • 31篇
    2018年
  • 13篇
    2017年
  • 6篇
    2016年
成就勋章
TA的专栏
  • 嵌入式C语言自我修养
    16篇
  • Linux内核编程
    13篇
  • 设备树
    2篇
  • QEMU
    6篇
  • 跟涛哥一起学嵌入式
    30篇
  • 视频教程
    23篇
兴趣领域 设置
  • 嵌入式
    单片机嵌入式硬件
  • 硬件开发
    驱动开发arm开发硬件架构
TA的社区
  • 宅学部落
    4 成员 4 内容
    创建者
  • 王利涛的课程社区_NO_1
    1 成员 268 内容
    创建者
  • 王利涛的课程社区_NO_2
    1 成员 191 内容
    创建者
  • 王利涛的课程社区_NO_3
    2 成员 185 内容
    创建者
  • 王利涛的课程社区_NO_4
    2 成员 51 内容
    创建者
创作活动更多

『技术文档』写作方法征文挑战赛

在技术的浩瀚海洋中,一份优秀的技术文档宛如精准的航海图。它是知识传承的载体,是团队协作的桥梁,更是产品成功的幕后英雄。然而,打造这样一份出色的技术文档并非易事。你是否在为如何清晰阐释复杂技术而苦恼?是否纠结于文档结构与内容的完美融合?无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

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

linux内核编程13期:内存管理

从零开始,一步一步掌握Linux内存管理子系统框架
原创
发布博客 2022.11.17 ·
929 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

Linux内核编程12期:设备树overlay与ConfigFS文件系统

在嵌入式Linux下,设备树(device tree)用来描述硬件平台的各种资源,Linux内核在启动过程中,会解析设备树,获取各种硬件资源来初始化硬件。设备树的overlay功能是指可以在系统运行期间动态修改设备树。一般情况下,如上图所示,设备树经过DTC编译器编译为二进制的hello.dtb文件,加载到内存,随Linux内核一起启动后,一般就无法更改了。如果我们想修改设备树,需要修改hello.dts文件文件,重新编译成二进制文件:hello.dtb,然后重新启动内核,重新解析.
原创
发布博客 2022.05.17 ·
2537 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

Linux内核编程11期:设备树(device tree)

设备树(device tree)机制是Linux内核从linux-3.x版本开始引进的一种机制,目的是解决内核源码的arch/arm目录下代码混乱的问题:随着ARM生态的快速发展,在内核源码的arch/arm目录下,存放着几十种arm芯片和几百个开发板相关的源文件,很多开发板和处理器的中断、寄存器等相关硬件资源都在这个目录下以.c或.h的文件格式定义。而对于内核来说,与这些硬件耦合,会导致内核代码混乱不堪,每个开发板上运行的内核镜像都必须单独编译配置,无法通用。什么时候Linux内核能像Windows镜像那
原创
发布博客 2022.04.28 ·
2032 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

Linux内核编程10期:platform设备驱动

platform是Linux内核中的一种虚拟总线,在嵌入式ARM平台下用来管理设备资源和驱动。对于从事嵌入式Linux驱动开发者来说,platform是一个必须具备的基本技能,因为内核中大部分驱动都是使用platform模型封装的,设备驱动一般都会挂到platform总线上,统一进行资源管理。本期课程是一个编程实战课,主要分享platform总线型驱动的编程方法,包括总线驱动的match方法、设备资源resource的管理、驱动复用id_table、设备资源的自动释放等常用的机制。除此之外,更重要的
原创
发布博客 2022.02.16 ·
387 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Linux内核编程09期:设备模型和sysfs文件系统

设备模型是Linux内核中一个非常重要的概念,很多复杂的驱动(比如platform、USB、I2C),都是以设备模型为基础进行构建的。如果你在阅读驱动源码时感觉很吃力,感觉太复杂,错综复杂,无法真正理解其全景框架和底层的运行逻辑,这里真诚地建议你可以尝试从设备模型学起:设备模型以最核心的kobject和kset数据结构构建了设备树的基本骨架,又通过device、bus、driver、class进一步封装,构建了设备模型的基本能力:总线匹配、电源管理、热插拔机制...本期课程从设备模型最核心的kobjec
原创
发布博客 2022.02.16 ·
645 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux内核编程08期:debugfs文件系统

嵌入式Linux内核驱动的常规开发步骤,一般是这样的:看芯片手册,修改寄存器或驱动源码 重新编译内核镜像,或驱动模块 将编译好的镜像拷贝到SD卡 将SD卡镜像插到开发板 重启内核,或者重新加载驱动 测试驱动是否正常工作 如果驱动无法工作,返回第一步循环从编译、运行到调试,一圈走下来,通常需要10~15分钟,也就是说,哪怕你只修改了一行代码,也要把这个流程再走一遍,在宿主机的交叉开发效率,相比PC开发,效率会低很多。如果公司配套的有高端的调试器,比如TRACE32,可以通过仿真、单步
原创
发布博客 2022.02.16 ·
780 阅读 ·
0 点赞 ·
2 评论 ·
2 收藏

Linux内核编程07期:proc文件系统

打开一个Linux shell终端,进入/proc目录,你会发现该目录下有很多文件和子目录:root@ubuntu:/proc# ls1 1239 1944 218 231 260 293 7 920 locks10 124 1949 2181 2316 261 294 770 93 mdstat100 1241 1952 219 232 262 295 771 933 meminfo101 125
原创
发布博客 2022.02.16 ·
622 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux内核编程06期:文件系统

Linux内核的哲学是:一切皆文件。无论是普通的磁盘文件、还是鼠标、键盘、显示器、SD卡,网卡,都可以使用文件模型进行封装,通过标准的系统调用:open、close、read、write来访问。本期课程录制背景在嵌入式项目开发中,很多人可以很快解决工程上的问题:通过busybox制作根文件系统、格式化和挂载一个磁盘、设置root/init等启动参数去挂载不同的根文件系统,通过read/write去读写文件,但对于底层文件系统的细节可能就不是很清楚了,比如:busybox到底是个什么东西?
原创
发布博客 2022.02.16 ·
870 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Linux内核编程05期:字符设备驱动

字符驱动算是Linux驱动中比较简单的一种了,本期课程以上一期的课程为基础,在学员掌握了中断编程的基础上,以实时时钟RTC为例,在vexpress ARM开发板上,从零开始,一步一步学习编写第一个字符设备驱动。实现了RTC字符设备驱动的基本功能:字符设备的创建、注册、设备号申请 字符设备的中断处理 file_operation接口的填充 读取RTC实时时间 设置RTC时间 设置RTC闹钟为了更方便用户开发应用程序,在完成字符设备驱动功能的基础上,并对RTC驱动的ioctl接口进.
原创
发布博客 2022.02.16 ·
490 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Linux内核编程04期:驱动中断编程实战

在Linux内核驱动开发中,中断是不可缺少的重要一环。CPU在和外部设备通信,绝大部分是通过中断完成的。本期课程,为《Linux内核编程》第四期,将会带领大家从中断的基础概念开始,以RTC为例,一步一步编写裸机环境下的中断程序,学习中断处理流程,理解GIC中断控制器的内部逻辑和在中断处理过程中发挥的作用。熟悉的底层的基本硬件之后,接下来会带领大家在Linux环境下,使用Linux内核提供的编程接口,来完成RTC驱动的中断程序的编写、调试和运行。最后,在中断下半部中,分别使用软中断、t
原创
发布博客 2022.02.14 ·
776 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Linux内核编程03期:系统调用

高端的程序员往往采用最朴素的编程方式。能不能复用别人的代码,避免重复造轮子,是衡量程序员工作效率、是否能按时下班的关键。我们编写一个add()函数,只要封装得好,就可以给很多人使用,这样就可以减少他人重复劳动,避免重复造轮子。// add.c int add(int a, int b){ return a + b;}//add.hint add(int a, int b);其他的开发者,需要调用add()时,只要在自己的程序中使用#include包含对应的头文件add.h,就
原创
发布博客 2022.02.14 ·
1014 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Linux内核编程02:Kbuild子系统

Kbuild 即kernel build,是用来编译Linux内核的一套Makefile。Kbuild基于GNU make设计,但是又对Makefile进行了各种扩充: 基于图形界面的菜单式配置 各种预定义目标和变量:menuconfig、obj-y 提供各种跨平台工具和编译 递归式Makefile Linux内核可以灵活自由的高度裁剪和定制,其底层技术支撑除了模块机制之外,还有一项技术就是:可以使用Kbuild编译系统来方便地进行裁剪、配置、编译和安装。内核中的..
原创
发布博客 2022.01.29 ·
2015 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Linux内核编程01:模块机制

模块机制是Linux内核非常重要的一个功能,如果从C语言的模块化编程角度来看,Linux内核其实就是由大大小小、层次不同的模块构成的。有的模块比较小,一个C源文件就实现了;有的模块比较复杂,由多个源文件构成。Linux内核的发展史,其实也是内部各个模块的发展史,一个小小的模块,从单一的功能、单一的源文件,慢慢成长发育,成长为多个文件的模块,甚至逐渐迭代成框架、子系统...模块机制给Linux宏内核增加了更多的灵活性:一个内核模块,不需要重新编译内核,就可以在内核运行时动态加载运行,或者动态卸载结束运
原创
发布博客 2022.01.29 ·
1515 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

如何快速构建嵌入式全栈知识体系

嵌入式是一门交叉学科。一个嵌入式电子产品(比如手机)从底层到上层,一般会涉及半导体芯片、电子电路、计算机、操作系统、多媒体等不同专业领域的知识。很多从事嵌入式开发的朋友,通常来自不同的专业(电子、电气、计算机、机械、自动化、物理,甚至一些文科专业),在实际学习和开发中,由于专业背景的限制,经常会遇到各种技术壁垒:搞硬件的不懂软件,搞软件的不懂硬件,搞底层芯片的不懂上层软件,搞上层软件的不懂底层芯片。嵌入式技术栈太深,除了极少数人,一般人很难实现“技术破圈”,将整个技术栈从上到下捋一遍,彻底打通。相对于桌
原创
发布博客 2021.04.27 ·
4360 阅读 ·
30 点赞 ·
12 评论 ·
114 收藏

【新书出版】《嵌入式C语言自我修养》预售正在进行中...

几年前,专门为嵌入式工程师打造的C语言进阶视频教程:C语言嵌入式Linux高级编程,收到了几千名学员的中肯建议和好评。如今,纸质书籍也要出版啦!书籍名为:《嵌入式C语言自我修养:从芯片、编译器到操作系统》,在原版视频教程的基础上,又增加了新的干货:新增了芯片设计流程、芯片制造、封装等技术、CPU内部架构与工作原理、异构计算、GPU、NPU等新知识。从底层芯片到编译器,从编译器到操作系统,从操作系统到进程、线程、协程,意在帮大家构建一个更加完整的嵌入式全栈知识体系。独家GNU C 扩展语法精讲
原创
发布博客 2021.04.23 ·
2758 阅读 ·
21 点赞 ·
13 评论 ·
31 收藏

Ubuntu-20.04+qemu-5.1.0,Linux内核学习平台:小宅实验室发布了

大约4年前,宅学部落录制了互联网上第一家qemu教程使用qemu搭建嵌入式U-boot+Linux+NFS学习环境4年过去了,积累了众多学员也积累了不少反馈和问题比如网络配置桥接脚本、网络服务、IP配置对于新手来说总要折腾一段时间才能配置正确、正常使用为了减少学习困扰一款更傻瓜、更好用的qemu平台重新发布了不需要配置,下载后即可使用无论是联网,还是断网还是拷贝到不同的电脑上开机即可使用,方便快捷按照说明文档编译U-boot、kernel源码.
原创
发布博客 2020.10.25 ·
1554 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

VMware重新安装VMware tools一直显示灰色怎么办?

解决方法:关闭VMware虚拟机,点击“编辑虚拟机设置”,将光驱和软盘都设置为:使用物理驱动器:自动检测重启虚拟机,此时就会看到重装VMware tools不再是灰色,重新安装即可。
原创
发布博客 2020.10.16 ·
4632 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

编译qemu-5.1.0,出现编译错误:ERROR: glib-2.48 gthread-2.0 is required to compile QEMU

ERROR: glib-2.48 gthread-2.0 is required to compile QEMU解决方法:apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virt
原创
发布博客 2020.10.12 ·
12024 阅读 ·
8 点赞 ·
9 评论 ·
9 收藏

编译Linux内核出现错误:make vexpress_defconfig & menuconfig

在编译Linux内核时出现错误:wit@ubuntu:/home/linux-5.4.14# make vexpress_defconfig LEX scripts/kconfig/lexer.lex.c/bin/sh: 1: flex: not foundmake[1]: *** [scripts/Makefile.host:9: scripts/kconfig/lexer.lex.c] Error 127make: *** [Makefile:568: vexpress_defco...
原创
发布博客 2020.07.15 ·
1978 阅读 ·
4 点赞 ·
1 评论 ·
0 收藏

跟涛哥一起学习嵌入式 33:《嵌入式C语言自我修养》书稿V1.0版

经常有网友要我推荐一些关于嵌入式方面的书,尤其是一些转行学嵌入式的朋友,该看那些书能快速构建嵌入式学习所需要的知识体系呢?嵌入式是一门交叉学科,没有足够的知识储备,上来就学习的话,往往也就成了走过场,跟着操作走一遍,深入不下去,学不到精髓。有没有一本书,专门针对嵌入式学员设计,嵌入式开发所需要的所有理论知识和常用的技能点都涉及到,都刚刚好,不会讲太深,讲太偏,也不会泛泛而谈,都是工程结合理论,在实际嵌入式开发中都用得到的知识。学员读了这本书,能快速构建嵌入式开发所需要的全套知识体系,学员遇到问题,能快速
原创
发布博客 2020.07.07 ·
3828 阅读 ·
3 点赞 ·
1 评论 ·
11 收藏
加载更多