嵌入式嵌入式文件系统FATFS移植详解
本课程是我的《FATFS详解》系列课程的后续课程,介绍FATFS文件系统如何移植到PC、SD卡和SPI Flash。课程中会详细给出一步步的实践操作说明。 课程所有资料完全开放,欢迎感兴趣的同学关注。注意:本课程使用了嘉立创的梁山派开发板(本课程不提供),你可以自行购买该板。(推荐)也可以使用手头上已有的其它开发板,然后参考课程内容自行编写相应的代码。另外一门课程介绍如何使用FATFS,课程链接请见我的CSDN主页。
共23节 35人已学习免费 免费试学
嵌入式5小时快速入门嵌入式文件系统FATFS
FATFS是一个轻量级的文件系统模块,广泛用于嵌入式系统和嵌入式设备中。 本课程为《FATFS详解》系列课程的第一部分,主要讲解FATFS基本接口的使用,涉及文件系统的挂载、文件读写、目录访问、卷管理等基本接口。另一部分是讲移植,具体课程请见我的CSDN主页。在对FATFS的基本使用有了理解之后,就可以进入到移植部分、以及学习如何更深入的使用。能力要求更高的同学,可以挑战性进入到源码分析部分课程的学习,从而进不限于仅仅使用接口,而是对文件系统有更深入的理解。注意:学习无需开发板,只要一台PC机即可学习。所有开发工作使用Visual Studio完成,提供已经移植好的工程,方便直接上手学习FATFS的基本使用。对FAT32文件系统实现原理感兴趣的同学,欢迎关注我的《从0到1写FAT32文件系统》课程。
共25节 54人已学习免费 免费试学
嵌入式深入理解ARM体系结构-实战汇编语言编程
注意注意!本课程所用Keil自带的编译器版本为AC6。由于AC5与AC6在使用时有些地方差异较大,如果你使用AC5(老版本Keil自带的)来学习本课程,则可能会出现各种奇怪的编译、汇编错误。建议如果不是特别需要,请更新到最新版本的Keil 5.4.x以上版本。否则,学习过程中出现的一些问题我可能无法帮你解决。本课程为《深入理解ARM体系结构(基于Cortex-M架构)》系列课程的其中一个课程,全部课程请见我的CSDN主页。为什么学习本课程?“学ARM汇编,不是让你天天写汇编,而是让你在关键时刻——能调试、能优化、能看懂C背后的真相。”虽然绝大部分情况下,我们只需要使用C语言即可完成开发;但是,在某些情况下,掌握好汇编能够助你更进一步解决问题及实现功能。 * 当程序HardFault或行为异常时,C代码无法直接告诉你原因,但反汇编+寄存器分析可以精准定位问题。 * C编译器生成的代码不一定最优,在高速信号处理、实时控制等场景,手动嵌入汇编能提升2-5倍性能。 * 在启动代码、中断服务、RTOS核心等场景,必须结合C和汇编,从而编写性能更高的代码。这门课程的特点市面上大多数汇编课程存在两大问题:1️⃣ 脱离实际需求:大篇幅讲解x86/DOS汇编,而嵌入式工程师真正需要的ARM Cortex-M内容却一带而过。2️⃣ 理论脱离实践:只简单的介绍指令语法,却不教如何用汇编解决真实问题。本课程在制作过程中,重点强调以下几个方面: * 只教“能救命”的汇编知识:聚焦Cortex-M3/M4核心指令(Thumb-2),放弃“一辈子用不上”的内容(如冷门指令) * 从基本指令出发,回归到C:在学习基本指令及汇编编程后,深入底层研究C语句的实现,学习C和汇编的混合编程 * 用工程师的方式教学:通过实践代码+编程练习的方式来学习,进一步提升学习效果。
共57节 42人已学习¥399.0 免费试学
嵌入式深入理解ARM体系结构-RTOS任务切换机制详解
注意注意!本课程所用Keil自带的编译器版本为AC6。由于AC5与AC6在使用时有些地方差异较大,如果你使用AC5(老版本Keil自带的)来学习本课程,则可能会出现各种奇怪的编译、汇编错误。建议如果不是特别需要,请更新到最新版本的Keil 5.4.x以上版本。否则,学习过程中出现的一些问题我可能无法帮你解决。本课程为《深入理解ARM体系结构(基于Cortex-M架构)》系列课程的其中一个课程,全部课程请见我的CSDN主页。为什么学习本课程?“150行代码+12节课=掌握RTOS最硬核的任务切换,从此使用RTOS不再‘盲人摸象’。”市面上的RTOS教程大多只教API调用,而本课程通过150行精炼代码,从零构建一个超微型OS,亲手实现任务切换,让你真正洞察FreeRTOS/RT-Thread等RTOS的底层行为。本课程摒弃冗余代码,10节课聚焦任务切换本质,非常适合以下同学学习: * 想快速理解RTOS原理的在职工程师 * 准备嵌入式面试需掌握RTOS底层的求职者 * 渴望自制简易OS的硬件爱好者
共14节 26人已学习¥39.0 免费试学
嵌入式深入理解ARM体系结构-编译器使用指南
注意注意!本课程所用Keil自带的编译器版本为AC6。由于AC5与AC6在使用时有些地方差异较大,如果你使用AC5(老版本Keil自带的)来学习本课程,则可能会出现各种奇怪的编译、汇编错误。建议如果不是特别需要,请更新到最新版本的Keil 5.4.x以上版本。否则,学习过程中出现的一些问题我可能无法帮你解决。---------------为什么我会制作该课程?若干年前,有同学问我:是否会制作关于分散加载文件的相关课程?还有同学问我:能不能教我怎样看map文件?实际上,这些问题都是与ARM工具链相关的。因此,根据同学们的实际需求,我仔细研究了ARM编译工具链的相关手册,并结合实际的开发需求,制作出了这门课程。为什么学习本课程?一次学习,吃透 ARM 编译工具链平时我们使Keil等工具来完成工程构建时,往往只是“按部就班地使用”,对它们的底层机制几乎一无所知。而一旦出现构建错误、链接异常或内存溢出等问题,往往只能靠搜索、猜测、试错,既低效又不可靠。 此外,对于某些特殊的需求(如控制数据存放到指定位置)往往无能为力。这些问题的根源,在于我们只是“用工具”,而不是“理解工具”。所以我开发了这门课,希望带你真正吃透常用的 ARM 编译工具链,打下坚实的构建基础。 本课程从实际工程中常见的痛点出发,带你深入剖析编译工具链的内部机制,掌握从源码到可执行文件的完整流程。你将学到: ✅ 工程构建背后到底发生了什么,编译、汇编、链接如何协同完成✅ 可执行文件(ELF)的结构都有哪些内容,这些内容如何从源码转换而来✅ 常用编译器和链接器选项的使用技巧,以及如何写出更高效的代码✅ 如何精确控制内存布局,把函数和变量放到你想要的位置✅ 程序运行时的内存管理机制(如堆栈的组织与使用)✅ 如何将可执行文件转换成 bin、hex 等目标文件,适配不同下载工具 此外,无论是在开发过程中,还是面试过程时,你是否有遇到以下问题:✅ 资源不足,却无从下手? * Flash/RAM不够用,但不知道哪些代码可以优化? * 如何通过编译优化减少30%的代码体积,降低硬件成本?✅ 优化选项导致玄学Bug? * 开了-O2/-O3后,程序偶尔跑飞,但关掉优化又性能不足? * 优化选项(-O2/-O3)导致程序行为异常,但不懂如何调整? * volatile有什么用处?在什么时候需要使用? * 为什么加了volatile还是被编译器优化掉?✅ 需要特殊内存布局,但不会实现? * 如何把关键函数放到RAM里加速执行? * 怎么让中断向量表固定到指定地址? ✅ 面试时的致命问题 * .bss段和.data段有什么区别?为什么要有.bss? * RO、RW、ZI各是什么?与程序中的哪些东西相关? * 程序启动时,__main到底做了什么? * 为什么有些函数明明没调用,却被链接进最终固件? * 在RTOS中,多个任务能否调用printf()库函数时可能会引发什么问题?如何解决?通过该课程,你将解决以上问题。
共58节 16人已学习¥399.0 免费试学
嵌入式深入理解ARM体系结构(基于Cortex-M架构)
注意注意!本课程所用Keil自带的编译器版本为AC6。由于AC5与AC6在使用时有些地方差异较大,如果你使用AC5(老版本Keil自带的)来学习本课程,则可能会出现各种奇怪的编译、汇编错误。建议如果不是特别需要,请更新到最新版本的Keil 5.4.x以上版本。否则,学习过程中出现的一些问题我可能无法帮你解决。本课程以Cortex-M3为核心,深度解析ARM体系结构内核设计,涵盖Thumb-2指令集、中断机制、双栈模型等核心内容。通过编写代码进行实验,从而实现从理论到实践的闭环学习,帮助开发者理解RTOS底层原理、提升嵌入式系统调试能力,适合渴望突破技术瓶颈的ARM开发者。
共57节 55人已学习¥399.0 免费试学
计算机网络网络编程项目实战:从0手写多线程HTTP客户端
以项目为导向,全程手写代码同学,你好!欢迎来到《从0手写多线程HTTP服务器》课程。本课程从0开始,基于Linux环境(Ubutntu或者Windows+WSL)开发了一个基于BSD Socket接口的HTTP服务器。通过本课程的学习,你将实战BSD Socket网络编程,并深入学习HTTP实现原理。如果你是在校大学生,想获得一个可以写在简历上的项目,或者需要完成毕业设计、课程设计;那么本项目将非常值得你参考。如果你是工程师,想学习BSD Socket网络编程,并了解HTTP协议,那么本项目将是非常适合你的选择。订阅课程后,请查阅课时列表中的【资料下载】课程,获得课程配套资料以及相应的文档。
共39节 196人已学习¥199.0 免费试学
单片机/工控虚拟机设计:从0构造8051虚拟机
课程采用从0行代码编写的方法,通过一步步的开发,最终完成一个8051芯片的虚拟机。该虚拟机完整地支持所有标准8051内核指令集的解析和运行。同时支持中断、串口、定时器等部分外设的功能模拟。在课程中,将会参考8051内核的指令集手册,逐条分析CPU的各指令集。分析其指令编码,了解不同的寻址模式,分析其具体的执行过程,最后实现指令的加载、执行。通过这样的过程,提供了深入理解计算机指令运行的好机会。在课程的最后,该虚拟机将会被移植到ST公司的STM32芯片(ARM内核)上,从而实现类似JAVA程序的一次编译、多个平台运行的效果
共49节 393人已学习¥69.0 免费试学
操作系统用不到200行代码设计x86保护模式下的操作系统
本课程为学习Linux 0.11内核源码,以及《设计自己的x86 Linux操作系统》课程的前置课程。课程通过不到200行代码(其中汇编不到100行),演示了如何使用80386的硬件机制来创建一个32位简单的双任务切换的超小型操作系统。课程重点讲解80386保护模式下的编程,涉及的内容包括:1、计算机启动流程的介绍2、实模式和保护模式区别,进入保护模式下的方法3、GDT/IDT/LDT表介绍以及使用方法4、利用TSS来实现任务的切换5、利用8253定时器中断实现任务下下文切换6、利用调用门增加系统调用接口。学习本课程只需要你有8086汇编的基础(简单用过即可,不需要精通,我也不精通),熟悉C语言编程即可。在学习完本课程后,将为分析Linux 0.11源码、设计自己的操作系统打下坚实的硬件知识储备。可以点击我的课程主页,了解更多相关课程。
共29节 450人已学习免费 免费试学
操作系统从0到1写自己的Linux x86操作系统
本课程采用从0行代码编写的方式,带你写一个x86操作系统,从而深入掌握操作系统的工作原理。
共170节 1693人已学习¥798.0 免费试学
嵌入式从0到1动手写FAT32文件系统
本课程从0行代码开始,逐步迭代一步步地演示了怎样构造一个FAT32文件系统。 通过这种简单易行的方式,你将逐步深入了解FAT32文件系统的工程原理。 课程主要分以下几个章节: * 建立驱动框架 * 分区解析 * FAT解析 * 文件操作 * 分区挂载 * 分区格式化 * 缓冲区管理 这几个章节环环相扣,每一步都是在前一步基础之上完成,让你没有多少难度便可了解FAT32的工作机制。 除提供课程视频外,课程还配套相应的学习指南文档、工程源码。具体下载方法,请观看第二课时的视频。
共57节 1260人已学习¥199.0 免费试学
驱动/内核开发自己动手从0到1写嵌入式操作系统
这不是rtos源码分析的课程,而是为初级的同学设计,从基础原理讲师,一步步不断迭代设计rtos的课程! 用不到【2000行代码,汇编代码仅18行】(不含注释)实现一个精巧的可以运行在ARM Cortex-M内核芯片上的RTOS! 该RTOS功能与ucos类似,具体实现不同。学习之后,再去学习ucos之类的系统将没有什么问题。
共49节 12817人已学习¥272.0 免费试学
- 1
李述铜
硬件工程师
十余年软硬件开发经验,熟练掌握C、汇编,喜欢研究底层原理
课程数 12 学生数 17037