文章目录

  • 1. 串口调试
    • 1.1 简介
    • 1.2 secureCRT使用步骤
  • 2. 文件传输
    • 2.1 文件传输: tftp
    • 2.2 文件传输: NFS (相当于将主机作为一个u盘插入开发板)
  • 3. 交叉编译
    • 3.1 下载
    • 3.2 配置

1. 串口调试

1.1 简介

一般而言,嵌入式开发板使用串口来监控后台。可以使用串口线连接开发板和电脑,对于没有串口的笔记本电脑来说,一般还需要一根USB转串口线。

串口软件多种多样,比如secureCRT、Xshell、超级终端、miniCom、putty等,它们的功能大同小异,因此只需安装用的顺手的一款即可。下面以secureCRT为例,详细介绍其使用步骤。

1.2 secureCRT使用步骤

  1. 接好串口线,在设备管理器中找到正确的串口编号,比如下图中的COM19:


设备管理器查看串口编号

注意,如果使用USB转串口线,那么一般是需要安装对应的驱动程序才可以让windows系统识别出来,而USB转串口线内置的芯片并不唯一,因此建议可以安装驱动精灵或驱动人生,自动识别并安装对应的驱动即可。如果不想安装这两个软件,也可以试试CH/YH340驱动。

  1. 启动secureCRT,正确配置串口信息(注意,流控的勾要去掉)


设置secureCRT串口信息

  1. 使用串口传输,在secureCRT输入rx hello,hello是想要传输的文件名。然后将文件拖入secureCRT,再单击发送xModem即可。


使用rx命令进行串口协议传输

  1. 修改字体颜色、中文编码


修改中文编码、字体

  1. 增加语法高亮:


增加语法高亮

  1. 一切准备就绪,启动开发板,即可通过调试串口在secureCRT中看到启动的后台信息,并可以在窗口下调试程序。


secureCRT界面

2. 文件传输

将编译好的程序放到开发板中去运行,需要借助于一些软件,下面介绍最常用的通过tftp的方式与开发板之间互通文件。

2.1 文件传输: tftp

在有网络的情况下,采用tftp的方式来传输文件是最高效的一种方式,tftp的全称是 tiny FTP,可见此工具专用于文件传输,其所为tiny意指匿名传输,是一种轻量级的FTP工具。

  1. 在windows中安装tftp服务器,可根据系统实际情况下载对应版本:
  • tftpd32.zip
  • tftpd64.zip
  1. 启动tftpd,选择准备传送到开发板的文件的所在目录和与开发板联通的网卡:


tftpd配置界面

  1. 假设在上述 C:\EFI 文件夹下有文件example.txt,在开发板中可执行如下命令下载该文件:
[root@root:~]# tftp 192.168.9.65 -gr example.txt
  1. 如果想要将开发板的文件发送到tftpd服务端,命令如下:
[root@root:~]# tftp 192.168.9.65 -pr example.txt

2.2 文件传输: NFS (相当于将主机作为一个u盘插入开发板)

  • ubuntu安装nfs
sevan@unbuntu-dev:~$ sudo apt install nfs-kernel-server
  • ubuntu配置nfs
sevan@unbuntu-dev:~$ sudo vi /etc/exports
添加
/home/sevan/ *(rw,async,no_subtree_check,no_root_squash) //将虚拟机家目录下的所有文件开放给其他任何ip主机设备(rw:可读写 async:异步 no_subtree_check:不检查子树)sevan@unbuntu-dev:~$sudo service nfs-kernel-server restart
  • 测试挂载
sevan@unbuntu-dev:~/work$ showmount -e
Export list for unbuntu-dev:
/home/sevan *
  • 开发板配置
    将Ubuntu的家目录按照一个分区插入到开发板/root目录下
[root@GEC6818 /]#mount 192.168.1.104:/home/sun /root -o nolock

参考配置:mount -t nfs -o nolock 192.168.1.104:/home/sun/nfs_rootfs /mnt
注意:开发板的ip地址必须和Ubuntu主机的ip在同一网络段落
修改开发板ip的方法如下:

  • 临时设置ip地址(重启开发板失效)
ifconfig eth0 192.168.1.xxx netmask 255.255.255.0
route add default gw 192.168.1.254
  • 永久设置ip地址
    vi /etc/profile,然后把前面临时配置ip地址的两行命令写到里面
export PATH=/bin:/sbin:/usr/bin:/usr/sbinif [ "$PS1" ]; thenif [ "`id -u`" -eq 0 ]; thenexport PS1='[\u@\h:\w]# 'elseexport PS1='[\u@\h:\w]$ 'fi
fiexport PAGER='/bin/more '
export EDITOR='/bin/vi'# Source configuration files from /etc/profile.d
for i in /etc/profile.d/*.sh ; doif [ -r "$i" ]; then. $ifiunset i
doneifconfig eth0 172.31.8.xx netmask 255.255.255.0
#route add default gw 192.168.1.254
  • 最终挂载Ubuntu主机家目录分区测试如下

3. 交叉编译

3.1 下载

由于嵌入式板卡的软硬件是定制的,因此针对其平台开发的程序所需要的编译器也必须与之相匹配:

  • GEC6818开发板交叉工具链:arm-linux-gnueabi
  • GEC1808开发板交叉工具链:rk1808-sdk
  • GEC3399开发板交叉工具链:rk3399-sdk

3.2 配置

下载完了之后需要进行配置,然后才能使用,由于配置过程是一样的,因此以GEC6818的交叉工具链为例,其配置步骤如下:

  • 解压:
gec@ubuntu:~$ ls
arm-linux-gnueabi-5.4.0.tar.xz
gec@ubuntu:~$
gec@ubuntu:~$ xz --decompress arm-linux-gnueabi-5.4.0.tar.xz
gec@ubuntu:~$ ls
arm-linux-gnueabi-5.4.0.tar
gec@ubuntu:~$
  • 查看归档文件中的文件路径:
gec@ubuntu:~$ tar -tf arm-linux-gnueabi-5.4.0.tar
usr/local/arm/5.4.0/usr/include/ext2fs/qcow2.h
usr/local/arm/5.4.0/usr/include/ext2fs/ext3_extents.h
usr/local/arm/5.4.0/usr/include/ext2fs/bitops.h
usr/local/arm/5.4.0/usr/include/ext2fs/tdb.h
usr/local/arm/5.4.0/usr/include/e2p/
usr/local/arm/5.4.0/usr/include/e2p/e2p.h
usr/local/arm/5.4.0/usr/include/com_err.h
... ...
... ...

可以看到,归档文件中的资料都是以usr/local/arm开头的,因此可以直接将归档内容释放到根目录下,到时候具体文件就会出现在/usr/local中。

  • 释放:
gec@ubuntu:~/Downloads$ sudo tar xvf arm-linux-gnueabi-5.4.0.tar -C /
gec@ubuntu:~$ cd /usr/local
gec@ubuntu:/usr/local$ ls
arm  bin  etc  games  include  lib  man  sbin  share  src

可见,第一个目录 arm 就是解压之后得到的交叉工具链所在的目录。

  • 配置环境变量PATH:
gec@ubuntu:~$ cd /usr/local/arm/5.4.0/usr/bin
gec@ubuntu:~$ echo "export PATH=/usr/local/arm/5.4.0/usr/bin:$PATH" >> ~/.bashrc
gec@ubuntu:~$ source ~/.bashrc
  • 测试交叉工具链的版本信息:
sevan@unbuntu-dev:~$ arm-linux-gcc -v
使用内建 specs。
COLLECT_GCC=/home/sevan/work/usr/local/arm/5.4.0/usr/bin/arm-linux-gcc.br_real
COLLECT_LTO_WRAPPER=/home/sevan/work/usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/lto-wrapper
目标:arm-none-linux-gnueabi
配置为:./configure --prefix=/home/geclab/buildroot-2016.11/output/host/usr --sysconfdir=/home/geclab/buildroot-2016.11/output/host/etc --enable-static --target=arm-none-linux-gnueabi --with-sysroot=/home/geclab/buildroot-2016.11/output/host/usr/arm-none-linux-gnueabi/sysroot --disable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib --with-gmp=/home/geclab/buildroot-2016.11/output/host/usr --with-mpc=/home/geclab/buildroot-2016.11/output/host/usr --with-mpfr=/home/geclab/buildroot-2016.11/output/host/usr --with-pkgversion='Buildroot 2016.11' --with-bugurl=http://bugs.buildroot.net/ --disable-libquadmath --enable-tls --disable-libmudflap --enable-threads --without-isl --without-cloog --with-float=soft --disable-decimal-float --with-abi=aapcs-linux --with-cpu=cortex-a15 --with-float=soft --with-mode=arm --enable-languages=c,c++,fortran --with-build-time-tools=/home/geclab/buildroot-2016.11/output/host/usr/arm-none-linux-gnueabi/bin --enable-shared --disable-libgomp
线程模型:posix
gcc 版本 5.4.0 (Buildroot 2016.11)
sevan@unbuntu-dev:~/work$

有出来版本信息的话,就代表配置成功了。

  • 编译测试
报错:
sevan@unbuntu-dev:~/work$ arm-linux-gcc hello.c
/home/sevan/work/usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory
  • 添加链接库环境变量
 sevan@unbuntu-dev:~$ echo "export LD_LIBRARY_PATH=/usr/local/arm/5.4.0/usr/lib:$LD_LIBRARY_PATH" >> ~/.bashrcsevan@unbuntu-dev:~$ source ~/.bashrc

arm-linux开发板相关软件的使用相关推荐

  1. 移植中文TTS(ekho)到ARM linux开发板

    移植ekho到arm linux,实现将中文转换为.wav格式的语音文件. 移植开源库libsndfile到arm linux开发板 1. 下载压缩源码包libsndfile-1.0.28.tar.g ...

  2. 正点原子stm32f407开发板pcb图_#试用名单公布#正点原子ARM Linux开发板I.MX6ULL

    活动报名链接: http://www.cirmall.com/bbs/thread-161572-1-1.html 恭喜以下五位获得试用资格,管理员会将确认邮件发送至各位获奖者邮箱,请在3个工作日内回 ...

  3. linux下s3c2440开发板,SAMSUNG S3C2440 ARM LINUX 开发板 上手初体验 --开发环境搭建

    1,linux开发环境搭建 2,程序测试 easyOpentag驱动安装,打开连接,选择ARM-linux 1,环境搭建 我的系统版本 root@ubuntu:~# lsb_release -a No ...

  4. linux 开发板相关命令

    sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000 ifconfig eth0 192.168.1.14 netmask 25 ...

  5. 嵌入式ARM Linux开发板自启动,跳过输入root用户名和密码

    1. 编译autologin.c程序. autologin.c文件内容 #include <unistd.h> int main() { execlp("login", ...

  6. 正点原子Alpha Linux开发板相关资料分享

    来自正点原子微信公众号 一.正式版资料下载链接如下(2019.11.04) 1.正点原子资料链接 原文网址:http://openedv.com/thread-300792-1-1.html/ 2.自 ...

  7. ARM嵌入式开发板推荐

    arm嵌入式主板具有低成本.高性能.低功耗的特点,是一个嵌入在设备里面做控制.数据处理使用的CPU板,承担着"大脑"的角色,主要是作为工控主板使用.短短几年,ARM嵌入式的异军突起 ...

  8. 基于正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)的个人自学记录

    基于正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)的个人自学记录 硬件环境 正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2) 底板+核 ...

  9. Linux开发板 - 02 - eop/uboot下载

    Linux开发板 - 02 - eop/uboot下载 前言:韦东山开发板学习笔记,第二篇.上一篇讲了:如何与ubuntu系统通讯,属于开发手册 "第三章-开发环境搭建" 的内容. ...

最新文章

  1. python dict常用操作
  2. 房东收电费1.5犯法吗_深圳房东租客少了,感到很困难压力很大,几栋楼房间空着!...
  3. JSONP 跨域共享信息
  4. 大家都关注的Serverless,阿里怎么做的?
  5. java 静态块初始化_简单了解java中静态初始化块的执行顺序
  6. CTO 技术管理的“三板斧”
  7. 一分钟看懂mysql_冬天发财树“最怕”它,遇上就烂根,一分钟看懂就能养好
  8. AngularJS 讲解五, Factory ,Service , Provider
  9. java matcher方法_Java正则表达式入坑指南:正则表达式使用的类有哪些吗?
  10. 雷军,打不倒的王者!
  11. java九宫格代码_Java实现九宫格的简单实例
  12. ThinkPhP关联查询setEagerlyType遇到的问题
  13. 财务管理标准离差率在计算机中输入,2017年中级会计师《财务管理》每日一练:标准离差率...
  14. java对接 布防 海康威视_java调用海康威视sdk获取车牌号demo
  15. 计算机字体安装按钮灰色,解决方案:在win10系统上将字体的安装按钮显示为灰色的详细步骤...
  16. power query 向下填充_Power Query 系列 (12) - Power Query 结构化列应用案例
  17. redis源码解析(二)——SDS(简单动态字符串)
  18. 比“5G有多快”更重要的,是5G将带来哪些改变
  19. thinkphp 点击分类显示分类下的文章(完整)
  20. Windows快捷键 - 最大化 最小化 还原

热门文章

  1. Win7版IE10浏览器正式版官方下载地址
  2. 汇编c语言混合编程pdf,C语言及汇编语言混合编程的方法.pdf
  3. 跳槽怎么选择一家靠谱的公司​
  4. Symbian SDK release 下载地址
  5. 程序中的英文English
  6. 前端页面div设计的css模板
  7. 【leetcode刷题(2),Java教程张孝祥百度云
  8. IF_SUMIF_COUNTIF三大条件函数
  9. 跨VLAN远程开机功能实现
  10. JAVA编程中标识符的命名规则