uboot又从2010到2013版本
Windows下:将提供资料中的sdfuse_q拷贝到虚拟机的共享目录下
进入虚拟机:将共享目录下的sdfuse_q文件夹拷贝到~
目录下
cp /mnt/hgfs/share/sdfuse_q/ ~ -a
进入文件夹编译:
cd ~/sdfuse_q
make
chmod 777 *.sh
df -Th
可以看到节点是sdb1
,它挂载在/media/522C-B6E6
将uboot烧写到SD卡中。
cd ~/sdfuse_q
sudo ./mkuboot.sh /dev/sdb1
在电脑上重新插入SD卡,如果提示需要格式化,格式化即可。
虚拟机上在SD卡目录下创建目录sdupdate
,
sudo mkdir /media/522C-B6E6 sdupdate
并将实验移植后的镜像
的u-boot-fs4412.bin
拷贝到该目录下。
cp /mnt/hgfs/share/u-boot-fs4412.bin /media/522C-B6E6/sdupdate
将SD卡拔出插入开发板卡槽内,拨码拨至1000
(SD卡启动)
连接开发板
启动串口调试工具
当前的eMMc的u-boot是2010版本,显示SDMMC,即SD卡启动成功。
uboot下:将SD卡中2013版本的uboot烧写到flash,这样eMMC中的uboot就变成了2013版本。
sdfuse flashall
关机,将拨码拨至0110
(eMMC启动),重启开发板
sudo gedit /etc/bash.bashrc
export PATH=$PATH:/usr/local/toolchain/toolchain-4.6.4/bin/
重启配置文件
source /etc/bash.bashrc
工具链的测试
arm-none-linux-gnueabi-gcc -v
#include
int main(){
printf("hello\n");
return 0;
}
使用交叉开发编译版本的gccarm-none-linux-gnueabi-gcc
来生成可执行文件,这个文件就拷到开发板上运行。
将实验二中的U-Boot之外的镜像
文件夹下的文件拷贝到共享文件夹下。
虚拟机下:
cp /mnt/hgfs/share/exynos4412-fs4412.dtb /mnt/hgfs/share/ramdisk.img /mnt/hgfs/share/uImage /tftpboot/
还是将拨码拨至0110
(eMMC启动)
ping Ubuntu主机ip
ping 192.169.100.192
可以ping通虚拟机才可以tftp传文件到开发板上
uboot命令行下:
tftp 41000000 uImage
movi write kernel 41000000
tftp 41000000 exynos4412-fs4412.dtb
movi write dtb 41000000
tftp 41000000 ramdisk.img
movi write rootfs 41000000 300000
这个300000
是烧写大小
uboot命令行下:
setenv bootcmd movi read kernel 41000000\;movi read dtb 42000000\;movi read rootfs 43000000 300000\;bootm 41000000 43000000 42000000
setenv bootargs
saveenv