,由 Extended CSD register 的 BOOT_SIZE_MULT Field 决定,大小的计算公式如下: Size = 128Kbytes x BOOT_SIZE_MULT 一般情况下, 在 Boot State 下,如果有配置 BOOT_ACK,eMMC 会先发送 “010” 的 ACK 包,接着 eMMC 会将最大为 128Kbytes x BOOT_SIZE_MULT 的 Boot Data Strobe 信号只能在HS400 模式下配置启用,启用后可以提高数据传输的稳定性,省去总线 tuning 过程。 2.4 Command 如上图所示,eMMC Command 由 48 Bits 组成,各个 Bits 的解析如下所示: Start Bit 固定为 "0",在没有数据传输的情况下,CMD 信号保持高电平 Start Bit 与 Command 一样,固定为 "0",在没有数据传输的情况下,CMD 信号保持高电平,当 eMMC Device 将 Start Bit 发送到总线上时,Host 可以很方便检测到该信号
关键词: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烧写或者进行重要数据更新
热卖云产品新年特惠,2核2G轻量应用服务器9元/月起,更多上云必备产品助力您轻松上云
学习下 eMMC 接上。 在此模式下,eMMC Device 将进行初始化,Host 会为 eMMC Device 设定工作电压、协商寻址模式以及分配 RCA 设备地址。 在此模式下,eMMC Device 会等待内部的中断事件,例如,写数据完成等。 在该 State 下,eMMC Device 会持续将 DAT0 拉低,作为 Busy 信号。 包括但不限于:C/C++,Arm, Linux,Android,人工智能,单片机,树莓派,等等。在上面的【人人都是极客】公众号内回复「peter」,即可免费获取!!
本文描述是基于高通平台,在emmc上增加一块分区,并挂载自己制作的ext4格式的镜像。作者是第一次弄这个,很多都不是很懂,有不对的地方请指教,经过一番某度和某歌之后,我慢慢知道怎么动手。 不妨我们可以看一下,通过工具:simg2img,转换一下。 ./simg2img temp.img temp_ext4.img 对比一下两个镜像的大小:清晰看出temp.img小很多。
一般情况下,一个 Flash Controller 可以和多个 Nand flash 颗粒封装到一起,而且 MCU 上面带有缓存,Host Processer 写过来一笔数据,Flash controller 支持 eMMC 5.x 协议的 eMMC 顺序读速度可以达到 400MB 以上。 ? 而单纯的 Nand,读写速度就慢了很多,只有几十 MB 甚至几 MB。 如何选型 ? ? 温度和具体型号有关,有的最低温度可以到零下 40 度,有的只能工作在零度以上。 所以,如果你的产品需要考虑温度、容量,这就是两个很重要的选型依据,当然,价格上eMMC 一般会比 Nand 贵。 另外一个选型依据就是软件复杂度,eMMC 由于不需要 FTL,软件会简单很多,开源的 U-Boot、Linux Kernel ,只要有对应的 MMC 控制器驱动,拿来就能直接用,而 Nand 除了控制器驱动外 如果你的产品比较在意启动速度,数据读写速度,那一般你都需要选择性能更好的 eMMC。 如果是买开发板的话,我肯定选 eMMC —— 性能好,软件通用啊!
萤火工场 CEK8902 S905D3,通过USB将固件烧录进eMMC。 目前板子还处于测试阶段,文中提供的方法、固件或软件,只在测试板中进行过测试。
第十三章 EMMC编程(有误) 参考资料 https://linux.codingbelief.com/zh/storage/flash_memory/emmc/ 资料光盘: 00_UserManual 在SDR模式下,时钟的上升沿为数据的采样时间。在DDR模式下,时钟的上下沿均进行数据的采样。不同的总线模式时钟的速率是不一样的。 CMD:双向传输的命令线,用于主机和设备的数据通信。 配置完成后eMMC设备进入standby state。此时初始化过程结束。 1.1.10 数据传输模式 在数据传输模式下可实现对EMMC设备进行读写,擦除,总线测试等操作。 在Ready状态下需要发送CMD2命令,使eMMC进入Identification状态。如下表所示CMD2是有应答广播命令,参数可以是任意值,应答类型为R2。 在Standby状态下还不能传输数据,需要要跳转到transfer状态下。此时根据《13-1.2 数据传输模式》的状态图可以得知,需要CMD7切换到transfer状态。CMD7的描述如下表所示。
嵌入式开发环境 主控芯片: Amlogic A113X Linux Kernel : 4.9 eMMc : 金士顿 4GB ? A113X主控芯片 金士顿的4GB eMMC 海力士256M DDR 博通WIFI模组 AP6212 支持eMMC 现有项目存储需要由Nand Flash换成eMMC eMMC介绍 eMMC (Embedded mask = <1>; }; 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 ↩︎
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协议速览 EMMCV4.5 亦或V5.1,协议可以说洋洋洒洒一大堆,刚接触的人容易抓不住重点,或者分析不到位,这里主要总结一些重要并且常用的EMMC协议。 1. EMMC工作模式也定义了5种: 引导模式:使设备处于引导状态 设备识别模式:引导模式结束,设备再次模式下,接受SET_RCA命令,进行识别设备。 image-20220222105852603 每一种模式,都有其各自的特点,我们主要来了解一下设备识别过程和数据传输过程。 总体来说,设备识别模式下,主机要想识别到卡,主要步骤有如下几步: 复位设备 验证工作电压及访问模式 识别设备并分配相对设备地址RCA 使设备进入数据传输模式 3.1.1 复位 EMMC控制器通过发送CMD0 image-20220224135045096 02:设置该字节的值为02,即8位数据总线 image-20220224135119903 00:写字节访问模式下,该位无效。
前言 之前在《深入浅出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
二、emmc、sd卡区别: emmc与sd card说的是两种不同的分装, emmc是bga封装,一般焊接在板子上;而sd card为tf card/sd card的形式;注意这仅是物理的表现形式不一样 七、eMMC 1、简介 eMMC (Embedded Multi Media Card) 为MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。 eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。 在SDIO的1BIT模式下DAT0用来传输数据,DAT1用作中断线。在SDIO的4BIT模式下DAT0-DAT3用来传输数据,其中DAT1复用作中断线。 SDIO的每个脚位在不同信号模式下的定义如下图: Micro SD Card,原名Trans-flash Card(TF卡)。
,进入到Linux版的RabbitMQ下载页面中 7、找到Download下的 rabbitmq-server-generic-unix-3.7.16.tar.xz下载链接并点击,开始进行下载RabbitMQ 三、把下载好的RabbitMQ 和 Erlang上传到Linux服务器上 1、打开WinSCP,把我们下载好的RabbitMQ 和 Erlang安装包,上传到Linux的 /mnt/ 文件目录下 2、使用putty连接到我们的Linux服务器,进入到/mnt/ 文件目录中,并解压上传的RabbitMQ 和 Erlang安装包 [root@localhost ~]# cd /mnt/ // PID file not written; -detached was passed. 5、在浏览器的地址栏中输入你 服务器的ip地址:15672,即可访问RabbitMQ的管理登录界面,例如我的Linux (3)策略制定者(policymaker):可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。
一、安装At 取决于不同的发行版,at在你的 Linux 系统中可能有,也可能没有。 如果at没有被安装,你可以很容易地使用你发行版的软件包来安装它。 例如,想要创建一个任务,运行脚本: /home/linuxize/script.sh: at 09:00 -f /home/linuxize/script.sh 默认情况下,这个命令会产生输出,一旦任务完成 at 09:00 -m 三、batch命令 batch或者它的关联at -b预定任务并且在系统负载允许的情况下,批量执行任务。默认情况下,当系统平均负载在1.5以下的时候,任务将会被执行。 下面是一个例子: at -t 202005111321.32 五、指定队列 默认情况下,由at创建的任务被计划在命名为a的队列,并且由batch创建的任务被计划在b队列。 默认情况下,仅仅/etc/at.deny文件存在,并且是空的,这意味着所有用户可以使用at命令。如果你想禁止某一个用户的权限,将他的用户名添加到这个文件中。
Begining 因为在做系统升级,AOSP的recovery下有一个flash_image工具,这个工具可以在开机状态下刷写系统分区。 几乎每个设备都有它自己的分区设计,这个和生产商有关,但常见的有MTD,EMMC和MMC设备。 MTD Memory Technology Device,内存技术设备,是用于访问memory设备(ROM、flash)的Linux子系统。 MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口,并进行了一个层次划分,层次从上到下大致为:设备文件、MTD设备层、MTD原始设备层、硬件驱动层。 Embedded MultiMedia Card 分区信息可以从/proc/emmc cat /proc/emmc dev: size erasesize name mmcblk0p17
boot/extlinux, we can directly control which device and partition are set to be the root directory for Linux boot options LABEL satassd MENU LABEL primary SATA SSD LINUX /boot/Image INITRD /boot/initrd FDT / MENU LABEL Internal eMMC LINUX /boot/Image INITRD /boot/initrd FDT /boot/tegra210-jetson-tx1-p2597-2180 通过修改/boot/extlinux中的extlinux.conf文件,我们可以直接控制将哪个设备和分区设置为Linux的根目录。 最后一个设置步骤是修改 eMMC 上的文件 extlinux.conf 文件。系统会从内部的 eMMC 启动,然后内核会设置根目录指向 SATA 驱动器。
,又多了那个.使用命令taskkill可将这些进程一下子所有杀光: C:\Users\NR>taskkill /F /im fron … Linux下强制杀死进程的方法 常规篇: 首先,用ps查看进程, 批量杀死包含关键字“php-fpm”的进程. kill … linux下查看当前进程以及杀死进程 ###linux下查看当前进程以及杀死进程 查看进程 ps命令查找与进程相关的PID号: ps a :显示现行终端机下的所有程序 ,包括其他用户的程序. ps -A :显示所有程序. ps c :列出程 … Linux下批量管理工具pssh安装和使用 Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y 下解决Tomcat进程 windows下启动Tomcat报错,8080端口号被占用,报错信息如下 两种解决方法,一种是关闭了这个端口号,另外一种是修改Tomcat下的serv … Linux下查看某个进程打开的文件数 -losf工具常用参数介绍 Linux下查看某个进程打开的文件数-losf工具常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!
本篇就来研究,将这几个文件打包烧写到板子的eMMC中,实现嵌入式Linux系统的烧写,这样,在没有网络的情况下,板子也可以正常运行。 第二阶段:等Linux 系统启动以后(这时可以方便的完成对EMMC的格式化、分区等操作),再向EMMC中烧写完整的系统,包括files目录中的uboot、linux kernel、.dtb和rootfs ,连接USB 板子上电,连接串口(用于查看具体的下载信息) 按下开发板复位按键。 然后切换板子为EMMC启动,复位重启开发板,正常情况下应该就可以看到烧录的系统正常启动了。 但是,我这里出现了一点小差错。 5 总结 本篇主要介绍了Linux移植的系统打包烧录的EMMC的方法,使用MfgTool工具,将uboot、linux kernel、.dtb和rootfs这4个文件烧写到板子的EMMC中。
无特殊说明情况下, 默认使用 UART1(USB TO UART)作为调试串口,使用 Linux 系统启动卡启动系统,通过路由器与 PC 机进行网络 连接。 图 8如需从 SPI FLASH + eMMC 启动评估板,请执行如下脚本命令一键固化 Linux 系统至 SPI FLASH + eMMC。 Target# /opt/tools/mkemmcboot.sh图 9图 10用时约 3min ,SPI FLASH + eMMC 成功固化 Linux 系统,同时串口调试终端打印提示 信息。 Target# od -x /dev/input/event0按下 KEY1 按键,可看到如下打印信息。按"Ctrl + C"可终止测试命令。 设备 rootfs 分区下的 test 文件,可看到本 次测试的 eMMC 设备写速度约为: 200/16.528=12.10MB/s。
云联网(CCN)提供全网互联服务 ,助力您实现各地域的云上、云下多点互联。云联网的智能调度、路由学习等特性 ,可帮助您构建极速、稳定、经济的全网互联 ,轻松满足在线教育、游戏加速、混合云等全网互联场景下的极速体验。
扫码关注腾讯云开发者
领取腾讯云代金券