S5PV210开发 -- Linux dd命令

如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78475434

昨天群里有人询问,为什么破坏 BootLoader 破坏不掉。

出现错误:dd: writing '/dev/mtdblock0': Operation not permitted

我说需要插着 SD卡才可以。(这个也不对,不插SD卡也可以,那这个错误还是没有搞清楚)

然后我们来看一下它操作指令:

    busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync

    为了确保执行数据有效,再执行 sync 同步一下,即可破坏掉前一个块的数据。

进而引出了我们今天要讲的 dd命令。

参看:Linux dd命令

参看:Learning Linux commands: dd

一、dd 命令

Linux dd命令用于读取、转换并输出数据。
dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

二、参数说明

if=文件名:输入文件名,缺省为标准输入。即指定源文件。
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。

ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=<关键字>,关键字可以有以下11种:
    conversion:用指定的参数转换文件。
    ascii:转换ebcdic为ascii
    ebcdic:转换ascii为ebcdic
    ibm:转换ascii为alternate ebcdic
    block:把每一行转换为长度为cbs,不足部分用空格填充
    unblock:使每一行的长度都为cbs,不足部分用空格填充
    lcase:把大写字符转换为小写字符
    ucase:把小写字符转换为大写字符
    swab:交换输入的每对字节
    noerror:出错时不停止
    notrunc:不截短输出文件
    sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
--help:显示帮助信息
--version:显示版本信息

三、实例

 

[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1 
1+0 records in 
1+0 records out 
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s 

[root@localhost text]# du -sh sun.txt 
1.1M sun.txt


该命令创建了一个1M大小的文件sun.txt,其中参数解释: 

 

if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。 

of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。 

bs 代表字节为单位的块大小。 

count 代表被复制的块数。

 /dev/zero 是一个字符设备,会不断返回0值字节(\0)。

 

块大小可以使用的计量单位表:

以上命令可以看出dd命令来测试内存操作速度:

 

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

 

四、解释破坏指令

接下来我们根据 dd 指令参数说明来看一下破坏指令: 

busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync

if 代表输入文件。 /dev/zero 是一个字符设备,会不断返回0值字节(\0)。

of 代表输出文件。/dev/mmcblk0 是一个块设备。

 

bs 代表512字节为单位的块大小。 

seek 代表从输出文件开头跳过 1个块后再开始复制。

count 代表被复制1个块。

conv:若读取的输入块不足512字节,不足部分用空(NUL)字符补齐。

 

注释:输入以上命令的意思为,把板载中iNand的第一个扇区用0来填充,即擦除了iNand的第一个扇区,当再次启动时,IROM还是会先去读取iNand中的前16kb的数据,计算校验和,校验和不通过,启动失败,此时就会执行第二种启动方式即从SD卡启动。
若此时未检测到SD卡,SecureCRT中将会显示:SD checksum Error

分析:

 

然后参看:How to make an image (.img) from what's on the SD card?

使用指令 fdisk -l /dev/mmcblk0 查看:

翻译一下:

    磁盘/ dev / mmcblk0:3959 MB,3959422976字节
    229头,33个部门/轨道,1023个汽缸,总计7733248个部门
    单位= 1 * 512 = 512字节的扇区
    扇区大小(逻辑/物理):512字节/ 512字节
    I / O大小(最小/最佳):512字节/ 512字节
    磁盘标识符:0x00000000

可知磁盘大小为 4G,我们的 eMMC 内存大小正好就是 4G 的。可以得出 mmblk0 是 eMMC 的块设备

然后它的单位是 512 字节的扇区。这就是为什么 bs=512 的原因。我们使用 dd 擦除了它的第一个扇区。

 

再思考,删除一个扇区造成了什么影响?

是的,执行完破坏指令,现在将SD卡拔出的情况下,SecureCRT中将会显示:SD checksum Error。

但是我重新将SD卡插入开发板还是可以正常启动进入系统的。就算我将 SD 卡格式化之后,照样可以。

这是为什么??

如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78475434

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 基于s5pv210和arm-linux及qt的嵌入式应用系统设计是一种嵌入式系统设计方案,它采用了s5pv210芯片作为主控制器,使用arm-linux作为操作系统,同时使用qt作为图形界面开发框架。这种方案可以用于开发各种嵌入式应用系统,如智能家居、智能机器人、智能医疗等。它具有低功耗、高性能、可靠性高等优点,可以满足各种嵌入式应用的需求。 ### 回答2: S5PV210是一款嵌入式系统芯片,具有高性能、低功耗的特点,广泛应用于智能手机、平板电脑、车载电子等领域。而ARM Linux是一种基于Linux内核的操作系统,具有开放性、安全性和可移植性等优点。QT是一个跨平台的GUI应用程序框架,能够实现丰富的用户界面和多种输入设备的支持。 基于S5PV210和ARM Linux,我们可以设计出高性能、低功耗的嵌入式系统。在系统中引入QT,可以使嵌入式设备的用户界面更加友好、美观,进而提升用户体验。具体的设计方案可以按照以下步骤: 1. 系统的硬件设计:选择合适的板卡,布置芯片和电路。其中S5PV210作为主要芯片,连接各种设备,如显示屏、触摸屏、WiFi、蓝牙等,为系统提供各种功能和服务。 2. 系统的软件设计:选择ARM Linux作为操作系统,搭建相应的开发环境,利用QT进行界面设计和编程。QT的嵌入式版本可以支持ARM架构的设备,方便我们开发嵌入式应用。 3. 编写应用程序:根据实际需求,编写各种应用程序,如图形界面、网络应用、文件管理、多媒体播放等。 4. 调试和优化:在实际制作和测试中,发现问题、调试程序,持续优化系统性能和用户体验。 通过以上设计和实现,可以得到高性能、低功耗、美观、易用的嵌入式应用系统。这样的系统可以应用于车载电子、智能家居、工业自动化等领域,具有广泛的市场前景。 ### 回答3: 基于s5pv210和arm-linux及qt的嵌入式应用系统设计是一种新型的嵌入式系统设计方案。该方案可以提高嵌入式系统的运行效率,降低开发成本,同时还能提高软件的稳定性和可维护性。 在该系统中,s5pv210是主控芯片,它采用了先进的ARM架构,拥有高度集成的内置组件和周边设备,比如LCD显示控制器、USB控制器等。这些内置组件可以让嵌入式应用系统具备更好的内存管理、外围设备管理和数据处理能力。 而arm-linux则是该系统的操作系统,与传统的嵌入式操作系统相比,它具有更强的兼容性、更好的软硬件结合性和更高的性能。其可以支持更多的应用程序和驱动程序,并且灵活性也更高。 作为嵌入式应用系统的UI框架,Qt简化了开发流程,提高了开发效率,可以让开发者更加专注于用户界面的设计。同时,Qt也是跨平台的,这意味着开发者可以更轻松地将应用程序迁移到其他平台上。 该嵌入式系统设计方案的应用非常广泛,在智能家居、医疗设备、智能手表等领域都有重要的应用。通过该系统的设计,这些设备可以更好地实现人机交互,提高用户体验和工作效率。它还可以提供更高的安全性和数据保护能力,保护用户的隐私和数据安全。 总之,基于s5pv210和arm-linux及qt的嵌入式应用系统设计是一种具有高度可靠性、高效性和可维护性的新型系统设计方案,可以为很多应用场景提供更好的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚优致成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值