历史上的今天
返回首页

历史上的今天

今天是:2024年12月24日(星期二)

正在发生

2021年12月24日 | 如何在Ubuntu下使用TF/SD 卡制作Exynos 4412 u-boot启动盘

2021-12-24 来源:eefocus

/**

******************************************************************************

* @author    Maoxiao Hu

* @version   V1.0.1

* @date       Feb-2015

******************************************************************************

* < COPYRIGHT 2015 ISE of SHANDONG UNIVERSITY >

******************************************************************************

**/

如果你的系统是Mac OS X,请移步这里《如何在Mac下使用TF/SD 卡制作Exynos 4412 u-boot启动盘》。

硬件:迅为iTop 4412精英版 & TF卡

软件:系统自带终端即可


首先,我们应该清楚TF/SD卡可以看作一张完全空白的“白纸”,之所以有分区、分区格式的区别不过是在在这张“白纸”的某些特定位置写入了一些数据来指示分区、分区格式。

 

其次,我们还应该清楚,在TF/SD启动模式下,exynos 4412一上电,内部iROM会从TF/SD的第1个Block(第512个字节开始)读取8KB的数据到内部iRAM,然后从内部iRAM的0地址开始运行。

 

原理搞清楚了,那么首先需要把TF/SD低级格式化-所有Block全部写0x00。

 

1、连接TF/SD卡,打开终端

使用ls /dev/sd* 命令查看所有连接到电脑上磁盘。

问题:在这里为什么不用df命令?

原因是假设你的TF/SD卡只有一个分区但这个分区已损坏,或者有多个分区但是没有一个可以识别的分区,那么此时df命令无法查看到tf/sd卡,所以说直接列出dev下所有sd开头的设备,是终极方案。


(1)假设你的tf/sd卡只有一个分区,无论这个分区是否损坏,现象应该是类似这样的:


插上tf/sd卡之前:


NewImage

 

插上tf/sd卡之后:

 

NewImage

 

很明显多出的/dev/sdb就是本文后续操作的对象。

 

(2)假设你的tf/sd卡已有多个分区,无论这些分区是否损坏,现象应该是类似这样的:


插上tf/sd卡之前:


NewImage

 

插上tf/sd卡之后:

NewImage

 

这里多出5个设备,但是我们仍然将/dev/sdb作为本文后续操作的对象。

注意:我这里是/dev/sdb,但是还有可能是/dev/sdc等等其它符号,必须根据你实际出现的设备名称进行以下操作,否则有可能损坏系统分区,非常重要,切记!!!


2、使用16进制模式打开TF卡查看数据(可跳过)

我们使用linux自带命令hexdump查看tf/sd卡中的数据:

命令为:

sudo hexdump -n 1048576 /dev/sdb

其中-n 1048576代表打印出前1M=1024*1024=1048576字节的数据。

 

执行结果(部分)如下:

 

NewImage

 

*代表内容为0x00,为了节省空间故作省略。


3、清空TF卡上前1MB的数据

由于4412的uboot大小基本在几百kB的量级,所以清空前1MB空间足够用,注意这里的清空不是格式化,而是填充0x00。

我们利用系统/dev下的zero设备,清零tf/sd卡前1MB。

执行结果如下:

NewImage

这里的count=2000代表清空2000个block,一个block=512B,2000个正好为1MB。

 

再次hexdump查看tf/sd卡数据,发现:

NewImage

前1MB空间成功清0x00。


4、烧写uboot启动文件

在这里,我们待烧写的文件为 u-boot-iTOP-4412.bin 这个文件。

终端执行命令:

NewImage

if代表输入文件地址,以你u-boot-iTOP-4412.bin 这个文件的实际地址为准,of代表输出地址,以你tf/sd卡的实际设备号为准。

到这里,就可以将tf/sd卡插入开发板上电启动了,为了证明我们烧写无误,我们执行后续操作。


5、确认烧写正确(可跳过)

我们需要确定从tf/sd卡的第一个block开始处,确实正确烧写了u-boot-iTOP-4412.bin这个文件,下面我们对比一下,用到的命令同样还是hexdump。

在这里,我们为了显示方便,只打印前5KB数据,发现bin文件被正确的复制到了sd卡的512字节处:

NewImage

6、将TF卡接到开发板上,拨码开关选择TF启动,上电:

NewImage

Done。


推荐阅读

史海拾趣

EOZ Secme公司的发展小趣事

EOZ Secme公司自创立之初,就致力于电子安全技术的研发。在2010年代初,随着物联网技术的兴起,EOZ Secme敏锐地捕捉到这一机遇,投入大量资源进行物联网安全技术的研发。经过数年的努力,公司成功开发出了一系列具有自主知识产权的物联网安全解决方案,并在市场上获得了广泛应用。这些技术的创新不仅提高了EOZ Secme的市场竞争力,也奠定了其在电子安全领域的领先地位。

FLEX LTD公司的发展小趣事

EOZ Secme公司自创立之初,就致力于电子安全技术的研发。在2010年代初,随着物联网技术的兴起,EOZ Secme敏锐地捕捉到这一机遇,投入大量资源进行物联网安全技术的研发。经过数年的努力,公司成功开发出了一系列具有自主知识产权的物联网安全解决方案,并在市场上获得了广泛应用。这些技术的创新不仅提高了EOZ Secme的市场竞争力,也奠定了其在电子安全领域的领先地位。

Epistar Corp公司的发展小趣事

面对不断变化的市场需求和行业竞争格局Epistar始终保持创新精神不断探索新的技术方向和应用领域。公司加强与高校和研究机构的合作共同研发新技术、新产品;同时,Epistar还积极参与制定行业标准推动LED行业的健康发展。这些创新举措使Epistar在行业中始终保持领先地位引领着未来LED技术的发展方向。

Compact公司的发展小趣事

随着全球环保意识的提高,电子行业对环保和可持续发展的要求也越来越高。Compact公司积极响应这一趋势,加大环保投入,采用环保材料和工艺,降低生产过程中的能耗和排放。同时,公司还致力于推动循环经济的发展,通过回收和再利用废旧电子产品,减少资源浪费和环境污染。这一举措不仅提升了公司的社会形象,还为公司的可持续发展奠定了坚实基础。

请注意,以上故事仅为示例,并不代表任何真实存在的企业情况。如果需要关于特定企业(如Compact公司)的准确信息,建议查阅相关公司的官方资料、行业报告或新闻报道。

Dionics Inc公司的发展小趣事

在经历了一段艰难的市场竞争后,Dionics Inc决定加大研发投入,寻求技术突破。经过数年的努力,公司成功研发出一款具有自主知识产权的高性能微处理器芯片,该芯片在性能上大幅超越同类产品,并在市场上取得了良好的口碑。随着这款芯片的成功上市,Dionics Inc的市场份额也逐渐扩大。

Adaptive Interconnect Electronics, Inc. [AIE]公司的发展小趣事

AIE公司自2005年成立以来,一直致力于推动电子测试配件的安全规范标准化。公司积极与各大电子厂商、行业协会以及标准化组织展开合作,共同制定了一系列关于测试配件的性能规格和安全标准。这一举措不仅提升了AIE产品的竞争力,也促进了整个电子行业的健康发展。通过与业界的紧密合作,AIE逐渐在电子测试配件领域树立了良好的口碑。

问答坊 | AI 解惑

遇到了一个诡异的问题。

VC代码移植到EVC4.0.编译没问题,但画面不能正常显示。图形在ONDRAW函数里画的,2万行左右。 于是我一点点的添加,开始是正常的,后来就不正常了,有行数限制? 有时候多初始化一个矩形就不行,有时候把矩形初始化赋值的代码注释起来,就能继续添 ...…

查看全部问答>

做基于ARM的嵌入式LINUX开发应届生工资应该给多少?

做基于ARM的嵌入式LINUX开发应届生在江浙一带工资应该给多少? 能力还可以吧,说不上好也说不上坏!~ …

查看全部问答>

不能正确读取开关量

连接如图,用128的pe口读取八个开关,如果全部不连通没有问题,如果全部接通也没有问题,问题是:如果只接通SW8,则PE02和PE03均为零,如果接通SW6,则PE04和PE05均为零,这是为什么呀??245有问题?还是?…

查看全部问答>

【LaunchPad学习】 MSP430G2452电容测量问题

想通过P1.1测量电容量,可是代码跑起来后,在不同时刻meas_cnt的值却始终为0。 使用官方的msp430g2xx2_pinosc_01.c代码测量到的meas_cnt也始终为0.p1.0,p1.6的LED不断闪烁。 上面是修改后的代码,在meas_cnt处设置了断点。 //**************** ...…

查看全部问答>

哈哈~突然发现自己太有才了有木有啊,3个IO口控制一个12864+4个LED~上图

如题如题。。。 一片小小的244芯片帮了我的大忙啊,说多无用,有图有真相。…

查看全部问答>

电路在空载时出现的问题

请教大家,电路在空载时为什么会产生间隙震荡呢?…

查看全部问答>

信号放大中遇到的问题

谁能告诉我做信号放大在什么条件下需要多个电路?谢谢了,嘿嘿…

查看全部问答>

请教各位OrCAD Capture CIS的一个小问题

不是很熟啊,小问题请教一下 制作元器件 用SpreadSheet放置管脚 Top和Right方向管脚序号 左到右,上到下顺序,如何改成右到左和下到上啊。没查到。 谢谢。…

查看全部问答>

为什么我的CCS 5.2不能退出DEBUG ?

调试目标C2000,可以进入DEBUG模式,可以进行正常调试,但是,退出就不行了,一点退出(就是那个红方块)就死着不动。只有关闭了。 每次这样很麻烦。且,原来编译时的状态不保存。…

查看全部问答>

5438跑到24MHz+uart9600+uart115200

找了各种资料,总觉得5438这么多资源,只用8M的外部晶振太慢,内部刚好有dco,调试了一下最后跑到24MHz。外加了ssd1289液晶+ads7843触摸+uartA0。115200+uartA1.9600 下附代码 #include #include\"tft.h\" #include\"cc1101.h\" #include\"gps ...…

查看全部问答>