eMMC协议详解
eMMC 协议详解
面向对象:嵌入式固件工程师(eMMC 设备端/主机端固件开发)适用规范:JEDEC JESD84-B51(eMMC 5.1)及此前各版本文档性质:工程参考文档,命令号、寄存器偏移等关键信息以 JEDEC 规范及 Linux 内核实现(include/linux/mmc/mmc.h、drivers/mmc/core/mmc.c)为准版本:v1.0 | 日期:2026-08-15
1. eMMC 概述1.1 什么是 eMMCeMMC(embedded MultiMediaCard,嵌入式多媒体卡)是一种将 NAND Flash 存储介质 与 存储控制器(Controller) 封装在同一芯片(BGA 封装)内的嵌入式存储标准,由 JEDEC(JESD84 系列规范)定义。控制器内部运行固件(Firmware),对主机(Host)屏蔽了 NAND 的物理特性(擦除、磨损、坏块、ECC 等),向上提供与”块设备”类似的标准接口。
eMMC 的定位:
面向嵌入式系统:手机、平板、机顶盒、车载、工控、IoT 等,作为不可拆卸的板载存储。
替代方案:UFS(面向高性能移动设备 ...
腾讯云部署hexo博客
本文基于已经搭建好的 hexo 博客,不再讲解 hexo 博客的搭建。
2026-08 更新:原 Serverless Framework(scf deploy / tencent-website 组件)方案已废弃下线,以下为最新的 COS 静态网站托管方案。
🚀 方案概述
托管:腾讯云 COS 对象存储静态网站托管(无服务器,按量付费)
上传:coscmd 命令行工具,一条命令同步整个站点
域名:自定义域名 + 免费 DV 证书
备案:域名未备案时,存储桶必须使用海外地域(如新加坡 ap-singapore);已备案域名可用国内地域(如广州)并配 CDN 加速
🚀 部署步骤✈ 1. 存储桶准备对象存储控制台 → 创建存储桶(或使用已有桶):
配置项
值
名称
全小写,如 cokode-blog-1304070044(全局唯一,自动追加 APPID)
地域
未备案:新加坡 ap-singapore;已备案:广州 ap-guangzhou
访问权限
公有读私有写
✈ 2. 开启静态网站托管存储桶 → 基础配置 → 静态网站 → 开启,索引文档填 ...
python入门学习
Python编程入门学习文档
适用于零基础学习者的Python完全指南
1. Python简介1.1 什么是Python?Python是一种高级编程语言,由Guido van Rossum在1991年创建。它的设计目标是让代码易于阅读和编写。
Python的特点:
简单易学:语法简洁,接近英语
功能强大:可用于网页开发、数据分析、人工智能等
跨平台:可以在Windows、Mac、Linux上运行
免费开源:完全免费使用
1.2 Python能做什么?12345678910111213141516171819# Python的应用领域示例:# 1. 网页开发# 例如:使用Django、Flask框架开发网站# 2. 数据分析和科学计算import numpy as np # 数值计算库import pandas as pd # 数据处理库# 3. 人工智能和机器学习# 例如:使用TensorFlow、PyTorch开发AI模型# 4. 自动化脚本# 例如:自动处理文件、批量操作# 5. 游戏开发# 例如:使用Pygame库开发游戏print("Python是一种用途 ...
基于立创泰山派的Linux驱动开发笔记
资料汇总硬件设计立创-泰山派开发板
文档资料【立创·泰山派RK3566】开发板
视频资料BiliBili-立创泰山派训练营
BiliBili-泰山派驱动开发
BiliBili-北京迅为-嵌入式学习之Linux驱动篇
开发环境搭建在虚拟机上安装 Ubuntu18虚拟机介绍虚拟机(Virtual Machine,简称VM)是一种计算机软件模拟的计算机系统。它模拟了足够多的硬件,以实现一个完整的、独立的计算环境,可以在一个物理机器(宿主机)上同时运行多个独立的操作系统(客户机操作系统)。虚拟机的关键特性包括:
隔离性:每个虚拟机都运行在自己的环境中,与其他虚拟机和宿主机操作系统隔离,这意味着一个虚拟机的崩溃或故障不会影响到其他虚拟机或宿主机。
封装性:虚拟机通常以文件形式存在,可以很容易地备份、复制、迁移或恢复。
硬件无关性:虚拟机可以在不同的物理硬件上运行,只要该硬件上安装了相应的虚拟化软件。
资源分配:虚拟机可以指定分配给它的CPU、内存、存储和网络资源,允许用户根据需要调整资源分配。虚拟机通常由以下几部分组成:
虚拟化层(Hypervisor):这是运行在物理硬件上的软件层,负责 ...
bit1个数计算算法
BK算法(Brian Kernighan’s算法)123456789101112unsigned char countBit1InByte(unsigned char byte){ unsigned char count = 0; while (byte) { byte &= (byte - 1); count++; } return count;}
此算法的思想是利用 n & (n-1) 可以将 n 的最右边的 1 置零的特性,通过迭代直到 n 变为 0,统计迭代次数即可。
它的运行时间与字节中bit1的位数成正比,而不是与字节的总位数成正比。因此计算效率不稳定,适用于bit1较少的场景。
位移法123456789101112131415161718192021222324252627282930313233#include <stdio.h> typedef unsigned char BYTE;typedef unsigned short WOR ...
bat脚本
🚲 🚗 ✈️ 🚀
🚀 桌面快捷方式箭头和盾牌去除123456789101112131415@REM 此脚本需要以管理员身份运行@REM 快捷方式小箭头和需要提权运行的提示图标均为透明图标reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /d "%systemroot%\system32\imageres.dll,197" /t reg_sz /freg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 77 /d "%systemroot%\system32\imageres.dll,197" /t reg_sz /f@REM 关闭文件资源管理器taskkill /f /im explorer.exe@REM 清除原先的图标缓 ...
RaspberryPi-PICO新建工程
🚲 🚗 ✈️ 🚀
🚀 工程文件目录组成以创建一个 blink 工程为例
首先新建一个 blink 目录,该目录结构如下所示:
1234567.└── blink ├── build ├── CMakeLists.txt ├── main │ └── blink.c └── pico_sdk_import.cmake
build 和 main 是目录,build 用于存放编译后的文件,main 目录则用于存放工程相关的 .c 和 .h 文件。
pico_sdk_import.cmake 这个文件是从 pico-sdk 中拷贝过来的,拷贝命令如下:
1cp $PICO_SDK_PATH/external/pico_sdk_import.cmake .
CMakeLists.txt 是 CMake 的配置文件,内容如下:
123456789101112131415161718192021222324# 指定最低的cmake版本cmake_minimum_required(VERSION 3.12)# 指定依赖文件include(pico_sdk_im ...
LeetCode面试必刷75题
🚲 🚗 ✈️ 🚀
🚀 交替合并字符串 - 简单题目:
给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。
如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
返回 合并后的字符串 。
示例 1:
输入:word1 = “abc”, word2 = “pqr” 输出:”apbqcr” 合并后: apbqcr
示例 2:
输入:word1 = “ab”, word2 = “pqrs” 输出:”apbqrs” 解释:注意,word2 比 word1 长,”rs” 需要追加到合并后字符串的末尾。 合并后:apbqrs
示例 3:
输入:word1 = “abcd”, word2 = “pq” 输出:”apbqcd” 解释:注意,word1 比 word2 长,”cd” 需要追加到合并后字符串的末尾。 合并后:apbqcd
题解 - 暴力求解定义一个数组或列表,依次读取word1和word2的字符并存储在该数组上,最后返回该数组。
12345678910111213141 ...
python离线安装库
🚲 🚗 ✈️ 🚀
以DrissionPage库为例
首先在一个可以联网的电脑可以离线安装包以及依赖库
12# 使用中科大镜像源下载离线安装包以及依赖库,下载到当前目录pip download -d ./ -i https://pypi.mirrors.ustc.edu.cn/simple/ DrissionPage
新建 requirement.txt 文件。
然后将命令行上的包文件名按照倒序的方式复制到 requirement.txt 中。
可以将所有Saved开头的文字一起负责到 requirement.txt ,然后用 vscode 打开,将前面的文字一起删除,最后进行倒序即可。
将文件夹拷贝到需要离线安装的电脑,并进入文件夹内,使用下面的命令进行安装。
1pip install -r requirement.txt ##按照脚本内安装包的顺序安装库
python脚本
🚲 🚗 ✈️ 🚀
🚀 修改文件名功能,打印当前目录下所有文件的文件名,并将文件名中的 ‘.’ 和 ‘-‘ 之间的字符替换成 ‘__’ (包括’.’ 和 ‘-‘ )。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546import osimport re# 获取指定目录下的所有文件名def get_file_names(directory): # 遍历目录下的所有文件,并将文件名添加到列表中 file_names = [] for filename in os.listdir(directory): if os.path.isfile(os.path.join(directory, filename)): file_names.append(filename) return file_names# 打印所有文件名def print_file_names(file_names): for filenam ...









