实验内容:
在PC上(本人用的操作系统是Ubuntu12.10 64 bits)上搭建交叉编译环境,选择自己喜欢的方式将编译结果放到树莓派上运行,运行hello world和浮点测试程序。
实验步骤:
- 下载交叉编译工具链
wget https://s3.amazonaws.com/RTI/Community/ports/toolchains/raspbian-toolchain-gcc-4.7.2-linux32.tar.gz
64位:
wget https://s3.amazonaws.com/RTI/Community/ports/toolchains/raspbian-toolchain-gcc-4.7.2-linux64.tar.gz
2. 在Linux上解码
tar xvzfraspbian-toolchain-gcc-4.7.2-linux32.tar.gz
64位:
tar xvzfraspbian-toolchain-gcc-4.7.2-linux64.tar.gz
3. 设置环境变量
export ATH=$PATH:/usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/bin
这种是临时做法,每次编译前必须运行一次,但是这样对于arm编译次数少的人比较合适。如果想系统启动后自动的话可以将此行加入到.bashrc文件底部即可。
注意:的相应改一下。
4 编写测试程序hello.c and float.c
5 编译:
arm-linux-gnueabihf-gcc –o hello_RPi hello.c
可能需要下载并安装软件包gcc-arm-linux-gnueabihf,命令为:
sudo apr-get install gcc-arm-linux-gnueabihf
6. 以FTP方式放到rpi后运行:
好吧,鉴于本人是没有无线网卡的台式机,ftp这种事干只干了一次,还是老实mount/umount吧~
关于Windows下的交叉编译:
参考:
http://www.360doc.com/content/13/0317/16/3810344_272056629.shtml
鉴于github下载速度着实惊人,待日后需要时再做配置
关于选择不同的与RPi连接的方式:
尝试以samba,但最终在Windows上无法找到RPi samba服务器放弃,为倒腾了好长时间的samba来着遗照:
比较了一下tftp、sftp、NFS,据说tftp只支持单向传输,sftp基本与ftp相同,但因为要加密所以效率低点,[此处感谢FM的指正]NFS可以很好的完成Linux与Linux之间的数据共享,但在Linux与Windows之间可能不那么稳定(http://bbs.chinaunix.net/thread-2075064-1-1.html),
最终选择了vsftpd。参考:
http://jianfeihit.iteye.com/blog/1820413
另外,由于自己平时使用台式机,无法很好地与树莓派共用网线,所以用U盘mount/umount也是常有的。
参考:
http://blog.sina.com.cn/s/blog_aab347d2010168f4.html
http://www.cnblogs.com/zxRPI/archive/2013/03/18/2965377.html
PS: 本文为浙大嵌入式系统设计实验二2013春@FM