第十三章 EMMC编程(有误) 参考资料 https://linux.codingbelief.com/zh/storage/flash_memory/emmc/ 资料光盘: 00_UserManual...\参考资料\EMMC编程\JESD84-B50-1eMMCStandard.pdf 1.1 EMMC介绍 1.1.1 EMMC简介 eMMC (Embedded Multi Media Card)是....png)] 1.3 EMMC编程 1.3.1 eMMC引脚配置 前两节介绍了eMMC的协议和IMX6ULL USDHC相关寄存器,接下来开始讲解EMMC驱动设计。...)(第十三章 EMMC编程.assets/13_EMMC_Program_image057.png)] 相关引脚的输入输出参数配置如上图红圈所示,所有引脚配置值为0x17059。...编程.assets/13_EMMC_Program_image085.png)] 代码如下: 114 if (!
EMMC器件寿命 1)先确认EMMC器件NAND FLASH类型,是MLC还是TLC,一般是TLC,器件手册标称1000-3000次,取平均值2000次作为评估; 2)在OS下查看EMMC器件当前使用寿命状态...;(安卓) 3)EMMC寿命对照表; 4)EMMC扫盲贴: https://blog.csdn.net/toradexsh/article/details/100977083 6)EMMC单cell...寿命主要由以下几个因素决定: P/E周期(擦除/编程次数):这是eMMC芯片的一个重要参数,指的是每个存储单元可以被擦除并重新编程的次数。...一般来说,P/E周期越高,eMMC的寿命就越长。...使用环境:工作环境温度、湿度以及操作电压等因素都会对eMMC的寿命产生影响。 写入数据的量和频率:这是影响eMMC寿命的一个重要因素。
关键词:eMMC boot、PARTITION_CONFIG、force_ro等。...1. eMMC的分区 大部分eMMC都有类似如下的分区,其中BOOT、RPMB和UDA一般是默认存在的,gpp分区需要手动创建。...Linux下读写boot分区 因为boot分区中一般存放的是bootloader或者相关配置参数,这些参数一般是不允许修改的,所以默认情况下是能读boot分区,不能写。...在Linux下/dev/mmcblk0boot1就表示切换到boot分区了,在uboot下需要先切换到boot分区。...free(addr); return ret; } 至此可以在Linux和Uboot下对boot分区进行操作,进行bootloader烧写或者进行重要数据更新
本文描述是基于高通平台,在emmc上增加一块分区,并挂载自己制作的ext4格式的镜像。作者是第一次弄这个,很多都不是很懂,有不对的地方请指教,经过一番某度和某歌之后,我慢慢知道怎么动手。
eMMC 简介 Host Interface Flash Controller Flash Memory eMMC 分区管理 Boot Area Partitions eMMC 分区应用实例 eMMC...总线协议 eMMC 总线接口 eMMC 总线模型 eMMC 简介 eMMC 是 embedded MultiMediaCard 的简称。...Host 向 eMMC 发起读 RPMB 的请求,同时生成一个 16 bytes 的随机数,发送给 eMMC。...eMMC 总线模型 eMMC 总线中一个 Host可以有多个 eMMC Devices。...速率模式 随着 eMMC 协议的版本迭代,eMMC 总线的速率越来越高。
一、需求描述在某些情况下,需要对EMMC快速分区,可以通过只写分区头的方式来实现。对MBR格式的分区,通常分区头都在第一个Sector扇区。...我们只需要将已经分好区的镜像或者linux下分区对应的的块设备的前512个字节读取出来保存,下次分区直接导入即可完成分区。...1642495 524288 256M 83 Linux/dev/mmcblk0p6 1644544 1677311 32768 16M 83 Linux2.4 常用命令...2.4.1 删除所有分区nodp:/home/petalinux# fdisk /dev/mmcblk0Welcome to fdisk (util-linux 2.37.2).Changes will...1642495 524288 256M 83 Linux/dev/mmcblk0p6 1644544 1677311 32768 16M 83 LinuxCommand
萤火工场 CEK8902 S905D3,通过USB将固件烧录进eMMC。 目前板子还处于测试阶段,文中提供的方法、固件或软件,只在测试板中进行过测试。
eMMC 和 Nand 是嵌入式系统中比较常见的两种存储介质。 区别 它们有什么异同呢?通过下面这张图可以做一个简单的概括: ?...如果找一块 Nand 或者 eMMC 的电路板,还是比较容易区分它们的: ? ?...支持 eMMC 5.x 协议的 eMMC 顺序读速度可以达到 400MB 以上。 ? 而单纯的 Nand,读写速度就慢了很多,只有几十 MB 甚至几 MB。 如何选型 ? ?...另外一个选型依据就是软件复杂度,eMMC 由于不需要 FTL,软件会简单很多,开源的 U-Boot、Linux Kernel ,只要有对应的 MMC 控制器驱动,拿来就能直接用,而 Nand 除了控制器驱动外...如果你的产品比较在意启动速度,数据读写速度,那一般你都需要选择性能更好的 eMMC。 如果是买开发板的话,我肯定选 eMMC —— 性能好,软件通用啊!
4.14,编译工具链用gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu。...page=Build+From+Source+-+Bootloader先编译好EMMC-bootloader image , 生成flash-image-emmc.bin文件。...,启动系统后,直接把编译好的emmc的uboot-bin文件烧写到emmc,启动后emmc在dev目录下是mmcblk0,还有两个Boot ROM,mmcblk0boot0和mmcblk0boot1,另外有一个...下(emmc目录自己创建),然后将系统文件解压到mnt/emmc目录下,在/mnt/emmc下的boot目录中放入你的内核文件和dtb文件。.../ $ tar -jxvf /boot/rootfs-HT80.tar.bz2 -C /mnt/emmc 6.现在断电重启后系统就可以从EMMC起来了。
学习下 eMMC 接上。...Overview eMMC Device 在 Power On、HW Reset 或者 SW Reset 时,Host 可以触发 eMMC Boot,让 eMMC 进入Boot Mode。...在此模式下,eMMC Device 将进行初始化,Host 会为 eMMC Device 设定工作电压、协商寻址模式以及分配 RCA 设备地址。...它包含了 eMMC Device 的制造商、OEM、设备名称、设备序列号、生产年份等信息,每一个 eMMC Device 的 CID 都是唯一的,不会与其他的 eMMC Device 完全相同。...包括但不限于:C/C++,Arm, Linux,Android,人工智能,单片机,树莓派,等等。在上面的【人人都是极客】公众号内回复「peter」,即可免费获取!!
嵌入式开发环境 主控芯片: Amlogic A113X Linux Kernel : 4.9 eMMc : 金士顿 4GB ?...A113X主控芯片 金士顿的4GB eMMC 海力士256M DDR 博通WIFI模组 AP6212 支持eMMC 现有项目存储需要由Nand Flash换成eMMC eMMC介绍 eMMC (Embedded...mask = ; }; cache:cache -- 1.9.1 内存大小配置 memory@00000000 { device_type = "memory"; linux...:183 emmc key lba_start:0x12020,lba_end:0x12220 [ 2.573731@1] emmc key: emmc_key_init:205 ok. [...比较区别 ↩︎ Linux init failures now easier to debug ↩︎ Failed to execute /init ↩︎
EMMC协议速览 EMMCV4.5 亦或V5.1,协议可以说洋洋洒洒一大堆,刚接触的人容易抓不住重点,或者分析不到位,这里主要总结一些重要并且常用的EMMC协议。 1....EMMC基本了解 1.1 物理线路: Card Concept(eMMC) image-20220215110840519 物理接口 接口含义 CLK 时钟线,此信号的每一周期控制命令线上的 1...3.1.2 验证工作电压及访问模式 EMMC控制器通过发送CMD1,参数为OCR寄存器,该寄存器种包含了2bit的存储器访问模式。...同时,bit31用来判忙,如果为1,说明EMMC设备仍然处于复位过程中,主机也同时重复发送CMD1来确保该忙位清除。...进而,EMMC控制器发送CMD3,赋予设备一个相对设备地址RCA,从设备一旦接收到RCA,设备就变为Stand-by状态,即数据传输状态。
在前面的文件中,我们介绍了linux网络编程中与IP相关的知识和常用的函数总结,本文针对具体的UDP通信,来详细的介绍UDP通信的使用,包括UDP通信中的点对点通信,多播,广播等。...一、UDP通信中服务端和客户端的基本编程框架 与TCP相比较,UDP是面向无连接的通信方式,不需要connect、listen、accept等函数操作,不用维护TCP的连接、断开等状态。...3.2、组播的使用 组播在基本UDP编程框架的基础上,使用setsockopt()函数和getsockopt()函数来实现,需要设置IP层的相关参数(第二个参数为 IPPROTO_IP),其原型如下:...设置组播的默认默认网络接口,会从给定的网络接口发送,另一个网络接口会忽略此数据 选项IP_ADD_MEMBERSHIP和IP_DROP_MEMBERSHIP:加入或者退出一个组播组其参数为一个结构体 使用组播的一个基本编程流程如下
前言 之前在《深入浅出MMC子系统》介绍了MMC子系统,从中可以窥探出eMMC读写的全流程,对于其中的数据流,了解它也非常重要。...存储基本知识 先了解一些存储的基本概念,以我的开发板为例,存储介质为容量8G的eMMC。系统里输入fdisk -l可查看磁盘信息,红框的为8G eMMC的信息。...一般eMMC每个块大小为512或1024字节,这里我的是512字节。所以p1分区大小为262144 * 512 = 134217728字节。...bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9); 这里将block乘以512转换成字节大小赋值给扇区描述,不过在前面看到我板子上的eMMC
文章目录 前言 一、UDP是什么 二、UDP 数据报服务特点 二、UDP 编程流程 1.服务器 2.客户端 3.输出结果 总结 前言 浅谈UDP。...二、UDP 编程流程 1.服务器 代码如下(示例): int main() { int sockfd = socket(AF_INET,SOCK_DGRAM,0); assert( sockfd
Linux Socket编程 ---- 目录 前言 Socket的功能 Socket基础 Socket类型 基本结构 基本转换函数 基本Socket使用 TCP Socket实例 UDP Socket实例...疑难问题记录 总结 ---- 前言 socket(套接字)是网络编程编程的一种技巧。...主要参考《Linux网络编程》。本篇源码获取方式见文底小字。 Socket的功能 socket是通过标准的UNIX文件描述符和其他的程序通讯的一个方法。...基本Socket使用 Linux同时支持面向连接和不连接类型的套接字。在面向连接的通讯中服务器和客户机在交换数据之前先要建立一个连接;在不连接通讯中数据被作为信息的一部分被交换。 ...网络编程非常有趣,能够实现天南海北之间的通讯,让远距离的人与人、人与物或者物与物之间产生联系,很有意思! 最后 用心感悟,认真记录,写好每一篇文章,分享每一框干货。
在非spinor介质(spinand、emmc、sdnand),通过u-boot-sun8iw21p1.bin进行烧录和启动,使用sys_partition.fex作为分区表。...下文将介绍spinor切换spinand、spinand切换spinor、spinor切换emmc、spinor切换sdnand四种切换方式。...[target] storage_type = xxx 其中storage_type | 0:nand | 1:sd | 2:emmc | 3:spinor | 4:emmc3 | 5:spinand...更具体的,nand分为并口nand和spinand,mmc分emmc和sd卡 主要需要区分的是nor和其他介质,因为需要打包的部分有所不同。...support Caching block device access to MTD devices SPI-NOR device support (对于linux4.9
Linux进程编程 3.1 fork系统调用 3.1.1 fork工作原理 3.1.2 fork函数 3.1.3 fork编程示例 3.1.4 小结 3.2 exec系统调用 3.2.1 exec函数族作用...执行过程如下: Linux内核在进程表中为子进程分配一个表项,然后分配PID。...子进程表项的内容来自父进程,fork会将父进程的表项复制为副本,并分配给子进程; Linux内核使父进程的文件表和索引表的节点自增1,创建用户及上下文; 将父进程上下文复制到子进程上下文空间中; fork...文件; 按下i键进入编辑模式,输入fork编程示例,该示例创建一个子进程,通过fork()函数返回值判断进程是子进程还是父进程,并打印信息。...这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。
注意: 在 i386 平台上 Red Hat Linux 的 页面大小 为 4096 字节。但是,您可以使用 bigpages ,它支持配置更大的内存页面尺寸。...SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX 5.套接字:socket,上面介绍的通讯手段限制了作用域,套接字编程应用则更为广泛...《unix网络编程卷一》对socket编程有详细的介绍。...也属于进程动态分配的内存. 32位就是4G的寻址空间,linux将其分为两部分,虚拟地址从0xC0000000到0xffffffff用于内核,为系统空间。较低的3G字节为用户空间。...而线程的栈空间大小在linux下可以使用ulimit -s查询,我的环境下默认是8192字节。windows下一说默认1M,一说2M。
Socket 编程 6.1 socket 常见API Socket API 是一层网络编程接口,抽象了底层的网络协议,定义在 netinet/in.h 中。...实际上在网络上通信的时候套接字种类是比较多的,下面是常见的三种: unix 域间套接字编程--同一个机器内 原始套接字编程--网络工具 网络套接字编程--用户间的网络通信 设计者想将网络接口统一抽象化...--参数的类型必须是统一的,底层是一种多态的设计 运用场景: 网络套接字:运用于网络跨主机之间通信+本地通信 unix域间套接字: 本地通信 我们现在在使用网络编程通信时是应用层调传输层的接口,而原始套接字...这种设计类似于面向对象编程中的“多态”:sockaddr 可以看作一个“父类”,而 sockaddr_in 和 sockaddr_un 是它的“子类”。...共勉 【*★,°*:.☆( ̄▽ ̄)/$:*.°★* 】那么本篇到此就结束啦,如果有不懂 和 发现问题的小伙伴可以在评论区说出来哦,后面我就要进行【Socket 套接字编程】的内容实战啦,请持续关注我
领取专属 10元无门槛券
手把手带您无忧上云