嵌入式爱好者

嵌入式爱好者 门户 知识库 查看内容

SD卡烧录卡起uboot更换

2024-4-30 09:56| 发布者: bpf1| 查看: 115| 评论: 0

类目:  >  知识库     文档编号: 1383

6u系列,SD卡烧写换镜像的时候,为了避免影响后续制卡,一般都是制卡完成后换卡里面对应文件夹的镜像,如想换烧写启动就换sdrun里的,烧到板子里面就换target里的。但烧写启动里的uboot直接换卡里面的sdrun文件夹下的uboot镜像并不生效。这是因为卡起的需要,ubootSD卡里有专属分区位置,这是通过制卡脚本直接写过去的,sdrun里的只是写进去的过程中留下来的。具体可以参考制卡脚本。
脚本的前半部分是选择卡,格式化,做分区。

做分区的部分新一点的做卡脚本增加了判断的内容,下面脚本代码中第一行获取sdfisk的版本信息,下面跟两个if判断对应版本使用对应的方法进行分区操作。

VERSFDISK=`sfdisk --version | awk {'print $4'}`

REFVER=2.26.0

function version_ge() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"; }

function version_lt() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" != "$1"; }

 

if version_ge $VERSFDISK $REFVER; then #>=

echo "Warning: sfdisk version $VERSFDISK."

echo "Warning: Flashcard."

sfdisk --force $DRIVE << EOF

10M,1000M,0x0C

EOF

#echo "Warning: Start card."

#sfdisk --force $DRIVE << EOF

#10M,500M,0x0C

#520M,,0x83

#EOF

fi

 

if version_lt $VERSFDISK $REFVER; then #<

echo "Warning: sfdisk version $VERSFDISK."

echo "Warning: Flashcard."

sfdisk --force -uM $DRIVE << EOF

10,1000,0x0C

EOF

#echo "Warning: Start card."

#sfdisk --force -uM $DRIVE << EOF

#10,500,0x0C

#520,,0x83

#EOF

fi

 

sleep 5

 

cat << EOM

 

脚本后半部分就是在将对应内容考进对应分区。其中uboot部分比较特殊,它是先开头写零,然后再将前面已经写到boot分区的uboot通过dd命令写入。

dd if=/dev/zero of=${DRIVE} bs=1k seek=384 conv=fsync count=129

dd if=boot/sdrun/u-boot.imx of=${DRIVE} bs=1k seek=1 conv=fsync

所以如果想更换卡起uboot,需要现在工具里换好再制卡。

 


已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-7-8 19:27

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部