S5P6818裸机开发(3)- S5P6818从SD卡启动程序
在上一篇文章中,我们已经制作好了led_m.bin文件,这篇文章我们就把bin文件烧写到SD卡中,然后观察效果。
1、SD卡制作
需要一张Micro SD卡,Ubuntu。系统我用的是VM+Ubuntu 16.04 LTS
1)、Ubuntu安装以下工具
sudo apt-get install gparted
2)、因为我这里用的是虚拟机,读卡器用的是Type C口的扩展坞,所以要把读卡器连接到虚拟机

3)、查看SD卡是否挂载到虚拟机上
cat /proc/partitions
通过 cat /proc/partitions 命令观察挂载前后有无新的节点

sudo fdisk -l
通过 sudo fdisk -l 命令观察挂载的分区大小

注意:如果你的虚拟机挂载失败,那么尝试更改USB兼容性为USB3.0

4)、删除SD卡原有分区
sudo fdisk /dev/sdc

输入d 按下回车,删除所有分区

输入w按下回车,保存所有修改

正如你看到的那样,报错了。。。。
5)、在Ubuntu下格式化SD卡
在上一步的操作中,最后保存时报错了,所以我们要在ubuntu下重新格式化SD卡。在Ubuntu下格式SD卡之前,还要执行一步,首先要把SD卡挂载到Windows下重新进行格式化,这个时候由于你已经修改了分区信息,所以在windows下是不能识别的,不过不要慌,打开磁盘管理,如果不知道磁盘管理怎么打开的,百度一下,你就知道。
打开磁盘管理后,找到你的U盘,一般位于最下面,呈现未分配状态,右击新建简单卷,一路默认即可,在文件系统时一定要选择FAT32


这个时候,在你的Windows下应该可以识别SD卡了,那么再次挂载到Ubuntu下
ubuntu下搜索disk

选中你的SD卡,格式化分区

格式化完成后,再次执行第4步,删除SD卡原有分区,可以看到成功了

6)、给SD卡分区
sudo gparted /dev/sdc

至此,SD启动卡制作完成
2、烧写程序到SD卡
烧写脚本:6818-sdmmc.sh
#!/bin/bash
# s5p6818 irom sd/mmc boot fusing tool.# display usage message
USAGE()
{echo Usage: $(basename "$0") ' 'echo ' device = disk device name for SD card.'echo ' bootloader = /path/to/uboot.bin'echo 'e.g. '$(basename "$0")' /dev/sdc uboot.bin'
}#[ `id -u` == 0 ] || { echo "you must be root user"; exit 1; }
[ -z "$1" -o -z "$2" ] && { USAGE; exit 1; }dev="$1"
xboot="$2"# validate parameters
[ -b "${dev}" ] || { echo "${dev} is not a valid block device"; exit 1; }
[ X"${dev}" = X"${dev%%[0-9]}" ] || { echo "${dev} is a partition, please use device, perhaps ${dev%%[0-9]}"; exit 1; }
[ -f ${xboot} ] || { echo "${xboot} is not a bootloader binary file."; exit 1; }# copy the full bootloader image to block device
dd if="${xboot}" of="${dev}" bs=512 seek=1 conv=syncsync;echo "OK"
执行下面命令,烧写led_m.bin到SD卡
sudo ./6818-sdmmc.sh /dev/sdc led_m.bin

3、运行烧写的程序
根据第一篇文章分析的启动过程,把Micro SD卡插到SD0插槽中,重启即可。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
