2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 我的阅读书单 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记
2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记

嵌入式ARM下常用环境的配置及常见问题汇总

2015年12月01日

通过tftp下载文件到开发板


上位机上编译好可执行文件后需要下载到Arm开发版进行运行,可以通过U盘直接拷贝(太繁琐),可以使用串口通过rz等下载(串口传输速度太慢,不适用于大文件),还可以使用网络进行传输。下面介绍如何搭建tftp环境进行开发板和上位机(Ubuntu)之间的文件传输。

一、Ubuntu上搭建tftp服务器

1 安装tftp服务

sudo apt-get install tftpd tftp openbsd-inetd

2 配置工作目录

sudo gedit /etc/inetd.conf

找到文件里以下部分

#:BOOT: TFTP service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp

将tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp这一行解除注释(如果没有此行则进行添加)。

创建tftp服务器的文件目录

cd /srv
sudo mkdir tftp
sudo chmod 777 /srv/tftp

3 重启xinetd服务

sudo /etc/init.d/openbsd-inetd restart

4 本机测试

首先在tftp中新建一个文件

cd /srv/tftp
echo helloworld > helloworld.txt
cat helloworld.txt #查看helloworld.txt内容,看是否成功创建

然后进入到其他目录,例如home

cd ~
sudo tftp 你的PC机ip #进入tftp
tftp> get helloworld.txt #取helloworld.txt文件
tftp> quit
cat helloworld.txt #查看是否传输成功

二、Arm开发板上使用tftp下载

将远程主机上的/srv/tftp/helloworld.txt下载到开发板/opt/下:

tftp -l /opt/helloworld.txt -r /srv/tftp/helloworld.txt -g 你的PC机ip

注:tftp命令,-l后跟local file, -r后跟remote file,-g表示下载,-p表示上传。

如果下载不下来,用ping先检查网络的连通性,如果ping不通,将开发板的ip网段设到Ubuntu同一网段中去。

可使用命令:

ifconfig eth0 192.168.1.120 netmask 255.255.255.0 broadcast 192.168.1.255 up

上述命令中ip,netmask,broadcast根据自己Ubuntu上的进行相应更改。

也可编辑interfaces文件,vi /etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static

#以下按自己的实际情况改
address 192.168.1.120
netmask 255.255.255.0
gateway 192.168.1.255

编辑完毕重启网络服务即可。

service networking restart

网络编程中recvfrom阻塞接受问题


使用recvfrom阻塞接收时,网不通时会一直等待,若改成非阻塞的,亦不可靠。

可通过设置一个超时时间来实现

struct timeval tv_out;
tv_out.tv_sec = 3; //等待3秒
tv_out.tv_usec = 0;
setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,&tv_out, sizeof(tv_out))

小注


将持续更新。


版权声明:本文为博主原创文章,转载请注明出处 本文总阅读量    次