博客文章导航(嵌入式宝藏站)(2022.12.1更新)

博主简介

Mculover666,一个喜欢玩板子的小码农,目前HFUT在读,热爱嵌入式/物联 这个领域,并专注于嵌入式软件开发!

坚持做自己热爱的事情、坚持做自己觉得有意义的事情,但问耕耘,莫问收获!

目前主要发布的 站如下:

  • CSDN用于日常开发中的文章记录与分享
  • 个人 站用于系列教程连载:http://www.mculover666.cn
  • Github目前也收获了100多个Start:https://github.com/Mculover666

知识树思考

整理了博客文章导航后,我经常翻阅这篇文章,思考一个问题:我为什么要花费这么多时间学习这么多知识/strong>

我从小就有学习时记笔记的习惯,从18年以来,我基本是拿CSDN当学习笔记记录本用,正值入门阶段,需要不断做加法,所以写的文章大多是比较浅显的学习笔记,这篇文章只是将我4年的学习笔记汇总到了一起,所以看着很多,以后当然会更多!

人每天总会忙忙碌碌的忙很多事,最怕到头碌碌无为,这些学习笔记也可以反映出来,我的目标是成为一名嵌入式软件工程师,但因为人在不同的阶段想做的事情也不同,所以我接触了很多的其它领域,但并没有深入学习。

为了避免碌碌无为,我将这些博客文章再次整理了一张思维导图,作为我自己的知识树,宏观视角看着不迷茫了,也进一步确定了自己的方向,红色的小旗标注是我成为嵌入式软件工程师的路上已经重点学习掌握的内容,橙色的小旗标注表示我将要深入研究的领域,没任何标注的就是接触过而已

【腾讯文档】知识树-思维导图:https://docs.qq.com/mind/DR2JtZ2hyTU1GR3h3

程序人生

  • 为什么开通博客/li>
  • 寄语单片机初学者——来自一个嵌入式老学长

一、编程语言

1. 编程基础

  • 常用进制及其转化
  • 整数在计算机中的存储 —— 补码
  • 浮点数在计算机中的存储 —— IEEE 754标准
  • 字符在计算机中的存储

2. C

  • C语言 | 冒泡排序算法
  • 好玩!C语言打印彩色字符,还能闪烁!
  • C语言中getopt()函数的用法
  • C语言集锦 | 01 – C基础语法(数据类型、输入输出、运算符、流程控制、函数、数组、static关键字)
  • C语言集锦 | 02 – C语言的灵魂(指针)
  • C语言集锦 | 03 – C语言的复合数据类型(typedef关键字、结构体、枚举体、共用体)
  • 分享一个日常使用的hexdump函数
  • C程序是如何跑起来的01 —— 普通可执行文件的构成

3. Rust

  • Rust学习笔记 | 01 – Rust快速入门(为什么是Rust、开发环境搭建、Cargo的使用、HelloWorld、Rust依赖包crates)

4. Python

  • Python3使用过程中的问题记录(2021.05.05更新)
  • Python | 使用Flask搭建一个API服务器
  • python生成随机长度字符串并写入文件

5. Java

  • JavaSE基础教程汇总 + 高清无水印思维导图分享

6. C#

  • C#基础-01 | Helloword

7. 8086汇编

8. C51汇编

二、嵌入式MCU开发

1. 开发环境

2. STM32

  • STM32全链路开发实战教程专栏总目录(付费教程)

3. i.MX RT1062

  • i.MX RT开发笔记-01 | 初识 i.MX RT1062 跨界MCU
  • i.MX RT开发笔记-02 | i.MX RT1062开发环境搭建(MDK芯片包、NXP SDK详解)
  • i.MX RT开发笔记-03 | i.MX RT1062地址空间映射及启动方式
  • i.MX RT开发笔记-04 | i.MX RT1062 使用 IOMUXC 和 GPIO 点亮LED
  • i.MX RT开发笔记-05 | i.MX RT1062嵌套中断向量控制器NVIC(按键中断检测)

4. ESP32系列

  • ESP32上手笔记 | 01 – ESP-IDF开发环境搭建
  • ESP32上手笔记 | 02 – ESP32-Arduino开发环境搭建
  • ESP32上手笔记 | 03 -通过HTTP获取天气信息(WiFi+HTTPClient+ArduinoJson)
  • ESP32上手笔记 | 04 -通过MQTT对接腾讯云IoT Explorer物联 平台(PubSubClient)
  • ESP32上手笔记 | 05 – 获取MPU6050数据进行姿态解算和展示(I2Cdev+MPU6050+Processing)
  • ESP32上手笔记 | 06 -驱动1.3‘ ST7789 SPI屏幕(TFT_eSPI)

三、RTOS开发

四、Linux开发

1. Linux基础知识

思维导图:【腾讯文档】Linux基础

  • Linux基础入门命令汇总
  • Linux发行版包管理器的使用 + 更换软件源
  • Ubuntu远程访问和文件传输 | 配置SSH和VNC服务
  • 追求效率, 上古神器 | Vim的基本使用方法与配置
  • 一文讲清楚 Linux Shell 编程

2. Linux应用开发

  • 【Linux(应用开发篇)】Linux C语言编程(上篇) | gcc的使用
  • 【Linux(应用开发篇)】Linux C语言编程(中篇) | make的使用
  • 【Linux(应用开发篇)】Linux C语言编程(下篇) | gdb的使用
  • Linux应用开发 | 01-Linux中的文件读写操作详解及示例代码
  • Linux应用开发 | 02-Linux中使用fork创建子进程和使用exit退出子进程详解及示例代码
  • Linux应用开发| 03-Linux中使用exec函数族详解及示例代码
  • Linux UDP服务端和客户端程序

3. Linux日常使用积累

  • 查看Linux内核版本的三种方法
  • TencentOS安装man手册
  • ubuntu使用 fdisk 工具对SD卡进行MBR分区
  • linux使用sz和rz命令传输文件
  • linux使用du命令查看文件夹大小(磁盘使用情况)
  • linux使用dd命令拷贝/生成文件
  • VMware安装Arch Linux+Gnome桌面
  • Arch Linux gnome 终端模拟器优化
  • Arch Linux gnome 打造日常使用操作系统
  • Arch LInux 使用USB转串口(CH340)
  • Arch LInux | 络管理工具iproute2( 络接口、ip地址、路由表)
  • VMware安装Fedora 35 Workstation及使用体验
  • Linux下使用cfdisk工具格式化U盘/SD卡的方法
  • VMware中Linux虚拟机永久设置静态ip(基于NetworkManager 络管理器)
  • Ubuntu衍生发行版使用体验(lubuntu、xubuntu、kubuntu)
  • 分享一个自用的zsh主题
  • TencentOS Server编译安装nginx(1.22.0)

五、嵌入式Linux开发

1. 嵌入式Linux日常积累

  • 从标准Linux到嵌入式Linux + 嵌入式Linux知识架构
  • 嵌入式Linux底层系统开发流程和应用开发流程
  • Linux下的串口助手 —— minicom或putty
  • 开发板、windows、Vmware虚拟机之间 络环境构建(通过路由器使用动态ip方式)
  • 开发板、windows、Vmware虚拟机之间 络环境构建(开发板与电脑 线直连使用静态ip方式)
  • Ubuntu上搭建NFS( 络文件系统)
  • Ubuntu16.04 安装 qemu 运行 Linux 3.16
  • Qemu连接外 的配置方法
  • 嵌入式Linux | 搭建TFTP服务器
  • 嵌入式Linux | 设置LCD屏幕为终端控制台
  • 以太 PHY芯片LAN8720A芯片研究
  • Linux i2ctool 工具的使用方法
  • Linux NetworkManager 的使用方法(nmcli和nmtui)
  • Linux系统中使用linux-wifi-hotspot工具开启 络热点
  • Linux命令行操作串口收发数据(stty命令)
  • Linux使用gdisk工具对硬盘进行GPT分区
  • Linux系统中使用linux-wifi-hotspot工具开启 络热点
  • Linux系统中修改hostname

2. Linux内核

  • 使用VScode阅读Linux内核源码时的路径屏蔽设置

  • Linux内核版本 关闭自动添加后缀

  • Linux内核编译输出到指定目录

  • Linux内核编译安装模块并打包

  • Linux内核开启DebugFS以及查看debug信息(/sys/kernel/debug及debugfs)

  • Linux内核开发 | Linux内核目录结构分析(5.4.32)

  • Linux驱动子系统剖析 | Linux设备与驱动分离思想的代表作——platform总线模型

  • Linux gpio驱动子系统剖析 | 01 – gpio子系统整体实现架构

3. uboot研读笔记 / 使用记录

  • uboot使用命令整理(2016.03)
  • uboot研读笔记 | 00 – 嵌入式Linux系统中Bootloader的作用和基本运行原理
  • uboot研读笔记 | 01 – 下载uboot源码并使用VSCode远程查看源码、编译uboot(2012.04.01版本)
  • uboot研读笔记 | 02 – 详细探索uboot启动过程(2012.04版本,基于S3C2410处理器)
  • uboot研读笔记 | 03 – 初步移植uboot 2012.04到JZ2440(修改时钟,配置串口)
  • uboot研读笔记 | 04 – 移植uboot 2012.04到JZ2440(支持Nor Flash读写)
  • uboot研读笔记 | 05 – 移植uboot 2012.04到JZ2440(支持Nand Flash读写)
  • uboot研读笔记 | 06 – 移植uboot 2012.04到JZ2440(支持DM9000C 卡)
  • uboot研读笔记 | 07 – 移植uboot 2012.04到JZ2440(裁剪uboot大小)
  • uboot研读笔记 | 08 – 移植uboot 2012.04到JZ2440(设置mtd分区表)
  • uboot研读笔记 | 09 – 移植uboot 2012.04到JZ2440(设置默认环境变量参数)
  • uboot研读笔记 | 10 – 移植uboot 2012.04到JZ2440(烧写Linux内核、烧写yaffs2文件系统)
  • uboot研读笔记 | 11 – 移植uboot 2012.04到JZ2440(移植完成,制作uboot补丁)
  • uboot研读笔记 | 12 – uboot目录结构分析(2016.03版本)
  • uboot研读笔记 | 13 – uboot编译构建Makefile分析研读(2016.03版本)
  • uboot研读笔记 | 14 – uboot启动流程分析(2016.03版本)

4. 嵌入式Linux应用开发

  • Linux串口应用编程详解(Serial)

5. MP开发笔记系列

5.1. S3C2440系列

  • S3C2440-裸机篇-01 | JZ2440开发板快速上手
  • S3C2440-裸机篇-02 | 安装和使用arm-linux-gcc交叉编译工具链
  • S3C2440-裸机篇-03 | GPIO的使用(点亮LED、按键检测)
  • S3C2440-裸机篇-04 | ARM-THUMB子程序调用规则ATPCS(使用S3C2440实验)
  • S3C2440-裸机篇-05 | S3C2440时钟体系详解(FCLK、PCLK、HCLK)
  • S3C2440-裸机篇-06 | UART数据发送接收实验(扫描模式)
  • S3C2440-裸机篇-07 | S3C2440内存控制器(Memory Controller)
  • S3C2440-裸机篇-08 | 使用S3C2440操作SDRAM(配置内存控制器)
  • S3C2440-裸机篇-09 | 使用S3C2440操作Nor Flash
  • S3C2440-裸机篇-10 | 使用S3C2440操作Nand Flash
  • JZ2440-Linux内核移植 | 01 – 移植Linux 3.4.2 内核到JZ2440(配置编译内核,设置machid启动内核)
  • JZ2440-Linux内核移植 | 02 – 移植Linux 3.4.2 内核到JZ2440(修改内核中的mtd分区)
  • JZ2440-Linux内核移植 | 03 – 移植Linux 3.4.2 内核到JZ2440(使用busybox制作根文件系统)
  • JZ2440-Linux内核移植 | 04 – 移植Linux 3.4.2 内核到JZ2440(移植支持yaffs2文件系统)
  • JZ2440-Linux内核移植 | 05 – 移植Linux 3.4.2 内核到JZ2440(内核裁剪)
  • JZ2440-Linux内核移植 | 06 – 移植Linux 3.4.2 内核到JZ2440(移植DM9000 卡驱动,支持 络,支持NFS挂载,支持域名解析)

5.2. i.MX6ULL开发板

  • i.MX6ULL快速上手 | 01 – i.MX6ULL Alpha开发板快速上手
  • i.MX6ULL快速上手 | 02 – i.MX6ULL启动方式与镜像格式
  • i.MX6ULL系统移植 | 移植NXP官方uboot 2016.03版本
  • i.MX6ULL系统移植 | 移植NXP官方linux 4.1.15内核
  • i.MX6ULL系统移植 | 移植NXP官方linux 5.4内核
  • i.MX6ULL系统移植 | 移植 linux 原生5.4.32内核
  • i.MX6ULL系统移植 | 使用busybox制作根文件系统(1.29.0)
  • i.MX6ULL系统移植 | 移植 ubuntu core 16.04(ubuntu-base)
  • i.MX6ULL系统移植 | 基于 ubuntu base 20.04 构建根文件系统
  • i.MX6ULL系统移植 | 命令行更新emmc的内核和设备树固件
  • i.MX6ULL系统移植 | 使用 NXP MfgTool 烧写系统到eMMC
  • i.MX6ULL应用移植 | 移植OpenSSH 8.9到Linux开发板(zlib、openssl、openssh)
  • i.MX6ULL应用移植 | 移植ALSA到Linux开发板(alsa-lib、alsa-utils 1.2.7版本)
  • i.MX6ULL应用移植 | 移植tslib到Linux开发板(1.22)
  • i.MX6ULL应用移植 | 移植wireless tools到Linux开发板(29 version)
  • i.MX6ULL应用移植 | 移植wpa_supplicant到Linux开发板(2.7版本)
  • i.MX6ULL应用移植 | 基于ubuntu base 16.04搭建python3.9+pip3环境
  • i.MX6ULL应用移植 | 移植Qt 5.12.9到imx6ull并搭建qt creator开发环境
  • i.MX6ULL应用移植 | 基于ubuntu base 16.04搭建python3.9+pip3环境
  • i.MX6ULL应用移植 | 移植libdrm到imx6ull开发板(2.4.113)
  • i.MX6ULL应用移植 | 移植libevdev和evtest工具到imx6ull开发板
  • i.MX6ULL驱动开发 | 01 – Linux内核模块的编写与使用
  • i.MX6ULL驱动开发 | 02 – 字符设备驱动框架
  • i.MX6ULL驱动开发 | 03 – 基于字符设备驱动框架点亮LED
  • i.MX6ULL驱动开发 | 04 – Linux设备树基本语法与实例解析
  • i.MX6ULL驱动开发 | 05 – 基于设备树点亮LED(这篇没有学习的必要,所以没有学习笔记)

这里接下来应该学习platform框架的知识,了解platform框架之后,才好理解i2c、spi总线设备驱动,之前因为赶进度没有学习,现在补上:

  • i.MX6ULL驱动开发 | 23 – Linux下的设备与驱动分离——platform总线

学完之后按顺序学习:

  • i.MX6ULL驱动开发 | 06 – pinctrl子系统
  • i.MX6ULL驱动开发 | 07 – gpio子系统
  • i.MX6ULL驱动开发 | 08 – 基于pinctrl子系统和gpio子系统点亮LED
  • i.MX6ULL驱动开发 | 09 – 基于Linux自带的LED驱动点亮LED
  • i.MX6ULL驱动开发 | 10 – 修改LCD驱动点亮LCD显示小企鹅logo
  • i.MX6ULL驱动开发 | 11 – Linux I2C 驱动框架
  • i.MX6ULL驱动开发 | 12 – 基于 Linux I2C 驱动读取AP3216C传感器
  • i.MX6ULL驱动开发 | 13 – Linux SPI 驱动框架
  • i.MX6ULL驱动开发 | 14 – 基于 Linux SPI 驱动框架读取ICM-20608传感器
  • i.MX6ULL驱动开发 | 15 – Linux UART 驱动框架
  • i.MX6ULL驱动开发 | 16 – 基于 UART 驱动框架发送/接收串口数据
  • i.MX6ULL驱动开发 | 17 – Linux中断机制及使用方法(tasklet、workqueue、软中断)
  • i.MX6ULL驱动开发 | 18 – 使用中断方式检测按键
  • i.MX6ULL驱动开发 | 19 – Linux内核定时器的编程方法与使用示例
  • i.MX6ULL驱动开发 | 20 – Linux input 子系统
  • i.MX6ULL驱动开发 | 21 – 按键驱动使用 input 子系统上 事件
  • i.MX6ULL驱动开发 | 22 – 使用PCF8574扩展gpio
  • i.MX6ULL驱动开发 | 24 – 基于platform平台驱动模型点亮LED
  • i.MX6ULL驱动开发 | 25 – 基于Linux自带的KEY驱动检测按键
  • i.MX6ULL驱动开发 | 26 – Linux内核的RTC驱动
  • i.MX6ULL驱动开发 | 27 – 使用WM8960 CODEC播放音频
  • i.MX6ULL驱动开发 | 28 – 使用FT5426多点电容触摸
  • i.MX6ULL驱动开发 | 29 – 使用USB WIFI 卡(RTL8188EU)
  • i.MX6ULL驱动开发 | 30 – 使用EC20 4G 卡(移植移远GobiNet驱动)
  • i.MX6ULL驱动开发 | 31 – Linux内核 络设备驱动框架
  • i.MX6ULL驱动开发 | 32 – 手动编写一个虚拟 卡设备
  • i.MX6ULL驱动开发 | 33 – NXP原厂 络设备驱动浅读(LAN8720 PHY)
  • i.MX6ULL驱动开发 | 34 – 基于SPI框架驱动spi lcd(st7789)
  • i.MX6ULL驱动开发 | 35 – NXP LCD控制器Framebuffer驱动浅读
  • i.MX6ULL驱动开发 | 36 – 注册spilcd为framebuffer设备并使用lvgl测试
  • i.MX6ULL驱动开发 | 37 – FT5426电容触摸屏幕调试并修复驱动问题(基于linux 5.4.32内核)

5.3. i.MX8M Quad开发板

  • i.MX 8MQuad开发笔记 -01 | i.MX 8MQuad EVK 开发板上手

5.4. STM32MP157A开发板

  • STM32MP157A快速上手 | 01 – STM32MP157C-DK2公板快速上手
  • STM32MP157A快速上手 | 02 – 开发环境搭建(A7核、M4核)
  • STM32MP157A快速上手 | 03 – STM32MP157启动程序ROM Code详解
  • STM32MP157A快速上手 | 04 – TF-A、uboot、linux内核源码获取、编译、烧写
  • STM32MP157A系统移植 | 移植ST官方5.10内核到小熊派开发板
  • STM32MP157A驱动开发 | 01- 板载LED作为系统心跳指示灯
  • STM32MP157A驱动开发 | 02-使用sdmmc接口读写sd卡(热插拔)
  • STM32MP157A驱动开发 | 03-usb host接口的使用(U盘 )
  • STM32MP157A驱动开发 | 04 – Linux DRM显示驱动框架
  • STM32MP157A驱动开发 | 05 – 基于LTDC接口驱动RGB LCD
  • STM32MP157A驱动开发 | 06 – 使用Linux内核自带的eeprom atmel驱动(AT24C02)
  • STM32MP157A驱动开发 | 07 – 使用Linux内核自带的触摸屏驱动(GT911)

5.5. RK3399开发板

  • RK3399快速上手 | 01- 开发环境搭建(固件烧写、编译工具链安装、kernel编译)
  • RK3399快速上手 | 02-rockchip rk3399 linux sdk的使用
  • RK3399快速上手 | 03-RK3399启动流程分析
  • RK3399系统移植 | 基于ubuntu base 16.04制作根文件系统
  • RK3399系统移植 | 基于rk-linux-sdk移植kernel(4.4.194)
  • RK3399系统移植 | 基于 ubuntu core 20.04 构建根文件系统
  • RK3399系统移植 | 移植 linux 主线5.4.32内核
  • RK3399驱动开发 | 01 -RK3399 gpio的使用(用户态和设备树两种方式)
  • RK3399驱动开发 | 02 – 使用Linux自带的硬件看门狗驱动(SGM706B)
  • RK3399驱动开发 | 03 – WK2124串口芯片驱动调试
  • 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年11月1日
下一篇 2022年11月1日

相关推荐