从裸板到系统
一般是CPU内部有启动代码,如nuvoton的nuc900系列的芯片内部就有ibr程序,来控制启动过程,在usb启动时负责加载usb驱动,这样在pc端就可以识别到usb设备了,然后通过turbowriter工具(运行时会传输xusb.bin到cpu),可以下载u-boot程序到flash中去了;然后再根据u-boot引导linux内核,烧写文件系统。这是大概的方法。后面会在下面添加以某个平台为主的详细搭建过程。
二、编译u-boot遇到的问题
1、version 'GLIBCXX_3.4.9' not found
原因:使用的宿主机版本和交叉编译器版本太老;
解决方法:
(1)下载RPM包:
http://kojipkgs.fedoraproject.org/packages/gcc/4.3.2/7/i386/libstdc++-4.3.2-7.i386.rpm
拷贝到虚拟机下
(2)提取包并将生成的libstdc++库文件考到到/usr/lib
#rpm2cpio libstdc++-4.3.2-7.i386.rpm | cpio -idv
则在当前目录下生成./usr/lib目录,包含:libstdc++.so.6.0.10、软连接和 libstdc++.so.6
将生成的libstdc++.so.6.0.10 、软连接和 libstdc++.so.6拷贝到/usr/lib下:
#cp libstdc++* /usr/lib -a
查看:
ls -l libstdc++.so.6
显示:
/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.10
(3)执行strings /usr/lib/libstdc++.so.6 | grep GLIBC
返回结果包含:GLIBCXX_3.4.9
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH