自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Windows下更改pip源

Windows下更改python的pip源一般Python的模块使用pip安装,但是使用pip安装时,一般从pip官网下载包,这样就很慢,我们一般把他的下载源修改为国内的源。(1)查看本机的的用户名方法1:在登录windows时都会有用户名方法2:在这里插入图片描述我的是ASUS,其实,很多Windows是用户名是Administrator(2)在C:\Users\ASUS目录下创建pip文件夹,在pip文件夹下创建pip.ini文件(3)在pip.ini文件写入如下源,[globa

2022-01-15 21:15:20 1134

原创 ESP32教程之三:搭建Linux开发环境(使用docker彻底解决所有问题)

一、摘要其实不论在Linux还是Windows上搭建ESP32开发环境,都有依赖问题,导致最终无法成功搭建开发,这是个痛点,我们一直致力于ESP32开发的研究,本篇文章先彻底解决Linux开发环境搭建的所有问题(使用docker技术),之后会彻底解决Windows开发环境问题。二、什么是docker?三、为什么能解决所有Linux开发环境的问题?四、安装docker。五、获取esp-idf环境镜像。六、创建容器,使用docker进行开发。注:代码包加速拉取参考文章:怎么加速拉取github代码

2021-03-19 02:27:20 4649 11

原创 ESP32教程之二:eclipse插件开发环境搭建

一、安装所有依赖包(1)所有的安装包都已经下载,可以使用百度网盘下载,下载地址:(2)开发环境已经在win10虚拟机中搭建好,不想搭建环境的小伙伴,可以直接下载虚拟机,然后安装vmware虚拟机直接打开搭建好的虚拟机即可直接使用下载地址:1.1 安装java开发环境jdk11或者以上的版本注:java11以上的版本只支持64位系统,所以,大家必须使用Windows64位系统。官网下载地址:https://www.oracle.com/technetwork/java/javase/download

2020-12-22 23:38:00 3046 3

原创 ESP32教程一:arduino环境搭建

安装arduino软件git下载例程下载编译环境编译下载测试

2020-12-06 22:27:28 8794

原创 windows安装和使用git工具

git工具简介git是一款代码版本管理的工具,它的主要作用有:(1)保存备份代码。任意时刻你想把当前代码的状态保存,你只要进行一次代码提交,就可以把当前的代码进行一次备份。(2)代码恢复。被提交过的代码都会被保存记录,你可以随时恢复到你之前提交的任意一次状态。(3)协同开发。一份代码多人可以同时编辑,然后大家一提交合并。(4)获取和推送远程服务器上面的代码。可以使用git工具clone一份远程服务器上面的代码,比如github上面的代码。下载windows版的git工具git工具有各种操作系统

2020-12-06 18:45:29 1806

原创 canFestival移植(3)-----SDO快速收发函数应用分析

前序通过前2篇文章后,我相信大家对系统有了比较深入的理解,并且能够理解移植后,系统是怎么工作的,SDO报文是使用比较经常的一种报文,本篇文章分析一下怎么使用SDO收发报文,进一步理解canFestival。发送SDO报文请求(1)成功发送并且成功收到响应。(2)发送之后响应超时。...

2020-06-20 21:34:00 5692

原创 canFestival移植(2)

前序前面一篇文章后,其实基本上就可以让canFestival运行起来了,但是移植过程中,你可能还有以下萌币:(1)“核心层”中的timer.c到底有什么作用?跟drivers下面的硬件定时器到底是怎么交互的?(2)“核心层”怎么使用到drivers下面的can硬件接口?(3)怎么生成对象字典啊?应用层应该怎么使用呀?(4)用户业务逻辑咋设计啊?通过这篇文章,大家会进一步加强移植的信心。“核心层”time.c分析(1)TimeDispatch()函数分析。分析的大部分注释放在源码里面。voi

2020-06-13 20:54:22 3878 6

原创 canFestival移植(1)

前序canFestival是实现了canopen协议,本文分析canFestival架构和移植原理。canFestival各个文件夹功能下载canFestival源码包。canFestival的官网下载地址:https://canfestival.org/apps.html.en这些老外的官网地址在国内去访问总是很慢,甚至不能打开,此时此刻我们最后另想其他办法,因为这些源码肯定有别人下载过,他们就会传到网上其他的地方,我在github上找了一个下载地址(https://github.com/l

2020-06-13 19:43:38 6629 1

原创 fatfs文件系统移植详解

前序把FAT文件系统搞明白、把fatfs源代码分析清楚,是为了什么?只是爱好?只是想知道别人设计思想?这样的目的当然也是可以的,通过这些学习,学习能力和分析问题的能力肯定是有提升的。但是,如果能把学习的东西转化成成果,岂不让自己更加兴奋?因此,移植就是成果转化的过程,动手的过程中,会发现更多有意义的故事。什么是移植?需要移植什么?对于一个特定的平台来说,移植就是把能用的保留,差异的部分修改。...

2020-05-31 19:19:28 1363

原创 fatfs文件系统的宏定义使用

前序前面分析了fatfs文件系统的ff.c文件的函数,本篇文章简单介绍一下ff.h中的宏的使用和含义。几个问题fatfs配置宏的作用是什么?应该怎么来使用?(1)到底是什么作用?如果开始就说xxx宏是用来做什么的,就不大好让人理解,此时此刻,通过在上述函数分析的过程中,我们就会看到各种各样的宏,所以,就很容易知道这些宏的作用。(2)对于不认识的宏,应该怎么来使用?(i)根据头文件注释来识别判定。(ii)如果注释也不能很好的判定和了解,那就搜索这个宏在源代码的位置,然后分析源码,彻底的了解它的

2020-05-31 19:04:47 1257

原创 fatfs文件系统详解之f_write函数分析

前序本篇分析f_write()函数,fatfs文件系统对应的不知道文件的读写,也对应了文件的其他的操作,也有文件夹的操作,函数分析确实是一个非常耗时耗精力的事情,此函数分析完之后,就结束函数分析。分析假设(1)假设一个磁盘就一个分区。(2)只分析FAT32文件系统相关的代码。(3)函数的大部分分析,都写入代码注释中。(4)重要的注释都回加入很多星号以及数学标号。例如,/****************** 1.把字符存入lfn的buffer中 *******************/(5)在

2020-05-31 18:36:43 15410 3

原创 fatfs文件系统详解之f_read函数分析

前序文件系统的最终目的是为了进行文件的管理,文件的管理就是读写、删除等操作,文件打开后,本篇继续分析读操作。分析假设(1)假设一个磁盘就一个分区。(2)只分析FAT32文件系统相关的代码。(3)函数的大部分分析,都写入代码注释中。(4)重要的注释都回加入很多星号以及数学标号。例如,/****************** 1.把字符存入lfn的buffer中 *******************/(5)在f_open()分析时,发现太多的代码,占用了不少的位置,从此篇文章开始,删除错误判定和

2020-05-31 17:39:01 17169

原创 fatfs文件系统详解之f_open函数分析

前序前面分析了f_mkfs、f_mount函数,在格式化和挂载完成之后,当然是要创建文件的操作,本节分析f_open函数,分析一下创建和打开一个文件时,发生了什么。分析假设(1)假设一个磁盘就一个分区。(2)只分析FAT32文件系统相关的代码。(3)函数的大部分分析,都写入代码注释中。关键结构体(1)FAT文件系统描述一个文件夹的结构体。typedef struct { _FDID obj; /* Object identifier */ DWORD dptr; /* Curre

2020-05-31 16:47:21 13652 6

原创 彻底弄懂 Unicode 编码(UTF-8/UTF-16)

今天,在学习 Node.js 中的 Buffer 对象时,注意到它的 alloc 和 from 方法会默认用 UTF-8 编码,在数组中每位对应 1 字节的十六进制数。想到了之间学习 ES6 时关于字符串的 Unicode 表示法,突然就很想知道 UTF-16 是如何进行编码的,我尝试将一些汉字转换成二进制数,然后简单的按 2 个字节一组转换成十六进制,发现对于那些码点较大的汉字,结果并不仅仅是简单的二进制转十六进制。于是,我开始在网上找资料,决心彻底弄明白 Unicode 编码。ASCII码在学...

2020-05-30 16:47:44 1820

原创 fatfs文件系统详解之f_mount函数分析

前序上一篇分析了格式化一个磁盘的时候发生了什么,在格式化一个磁盘之后,就要将磁盘进行挂载,“挂载”这个词听起来很抽象,但是在软件代码上,到底发生了什么?分析假设(1)假设一个磁盘就一个分区。(2)只分析FAT32文件系统相关的代码。(3)函数的大部分分析,都写入代码注释中。f_mount()函数全部代码为了方便分析,排除视觉障碍,已经删除了不在假设范围内代码。/*----------------------------------------------..

2020-05-23 19:33:37 16133

原创 fatfs文件系统详解之f_mkfs函数分析

前序 前面两篇文章分析了FAT文件系统,没有代码总感觉很空虚寂寞冷,fatfs正好是一个开源专门应对fat文件系统的代码,从这篇文章开始分析fatfs代码,“理论+实践”才是悟道的根本途径。从本篇文章开始分析fatfs文件系统,基本从两方面分析:(1)主要函数分析。(2)宏定义使用分析。...

2020-05-22 20:59:59 19033 7

转载 mmc/eMMC/SD-card接口异同

MMC(multiMedia card)是一种通信协议,支持两种模式SPI和MMCeMMC是一种支持MMC协议的芯片MMC/e •MMC communication is based on  an advanced 10-signal bus. The communication protocol isdefined as a part of this standard and &...

2020-04-26 21:42:28 4148

转载 SD卡、TF卡、MMC卡以及eMMC芯片的介绍

一、SD卡    1、简介        SD卡为Secure Digital Memory Card, 即安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备。它在MMC的...

2020-04-26 21:18:49 2703

原创 DMA工作原理-STM32 DMA和ARM9 DMA,彻底理解DMA

前序

2020-04-20 01:16:12 45819 4

原创 FAT文件系统详解(二)

前序上一篇文章主要讨论了硬盘的构造、分区表的含义、每个分区中的划分,虽然是指的FAT16文件系统,其实,也同样适用于FAT32文件系统,因为FAT32是兼容FAT16的,FAT16和FAT32到底差别在哪里?第一,FAT表表示一个簇号的差异:FAT16用2个字节(16bits),FAT32用4个字节(32bits),因此FAT32能够表示更多的簇号。第二,FAT32分区中并不单独存在FDT目...

2020-04-02 21:43:46 44254 3

原创 FAT文件系统详解(一)

一、前序每篇文章前都要说些什么吧,不然觉得有点尴尬,你问为什么要写这篇文章?我说是为了“虚拟文件系统”管理讲解做铺垫,我一直的想法就是“一定要知道原理,才能做的更远更好”,因为你知道这其中的原理了,之后如果遇到问题了,就不好慌乱,一切让你心慌意乱的事儿都是一些你不能把握的事情,因为你不知道将会发生什么,掌握来原理,你就能掌握规律,你就能预判会发生什么,你也不会心慌了。二、硬盘的结构。(1)硬...

2020-03-30 21:22:20 51477 8

原创 系统调用poll机制分析(非常透彻)

**前序** rt-thread其实很多代码都是参考Linux的架构,或者运用的是Linux的设计思想,poll系统调用是经常使用到的系统调用,本次博客来分析poll在rtt(以下没有特殊说明,就把rt-thread简称为rtt)中的实现方法,如果了解了poll在rtt中具体的原理和实现过程,那么在分析Linux中的poll将有莫大的帮助。** 一、应用程序如何调用poll函数?**二...

2020-03-25 20:37:52 45928

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除