找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1958|回复: 0
打印 上一主题 下一主题
收起左侧

mt7688编写应用程序

[复制链接]
跳转到指定楼层
楼主
ID:463035 发表于 2019-1-6 14:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一章 交叉编译
需要交叉编译的原因:
①:由于两者的运行环境不同,又需要在第一种机器上生成第二种机器运行的代码。
②:目的平台不允许我们或不能够安装我们所需要的编译器,而我们又需要这个编译器的特征
③:目的平台上的资源贫乏,无法运行我们所需要编译器
④:目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。
所以对于这种情况我们需要额外的安装编译工具。
1.1 直接进行编译
1.1.1 准备
Ubuntu系统,已经编译过的固件源码(里面有编译工具),C语言源代码。
1.1.2 编译步骤
测试程序使用已经写好的C语言程序hello.c
步骤1:在固件源码主目录中找到交叉编译工具链(sudo find -name “*-gcc”),发现工具链在
/home/wooya/work/openwrt-hiwooya/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin目录下。(当然有可能目录不相同)
步骤2:使用编译器直接进行编译
/home/wooya/work/openwrt-hiwooya/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-linux-gcc -o hello hello.c
当然在编译的时候可能会出现如下的警告信息
这是因为没有定义STAGING_DIR这个环境变量。
Key1:使用export临时增加环境变量,在终端运行下面代码。(每次开机都需要重新输入这个命令,所以笔者不建议)
export STAGING_DIR=”/home/wooya/work/openwrt-hiwooya/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin”
Key2:编译环境变量文件永久性增加环境变量(sudo vim /etc/environment),然后在里面添加环境变量,如下图所示。
然后重启或者使用命令刷新这个文件(. /etc/environment或者source /etc/environment)
步骤3:从新进行编译。
如上图所示,hello为新编译出来的程序,当然这个程序不能在这个系统里面执行,因为这程序只能在MT7688里面运行。
1.2 增加环境变量进行编译
1.2.1 准备
Ubuntu系统,已经编译过的固件源码(里面有编译工具),C语言源代码。
1.2.2 编译步骤
步骤1:把命令增加到PATH变量中,有以下几种方式(选取一种即可)。
Key1:创建一个软连接到具有PATH路径的目录下。
①获取PATH路径:echo $PATH(我的环境变量如下)
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
②打印出来的路径选择一个然后创建软链接:
ln -s
/home/wooya/work/openwrt-hiwooya/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-linux-gcc /usr/local/sbin/mipsel-linux-gcc(创建gcc编译器软连接,-s为创建软连接。笔者这里选择的路径为:/usr/local/sbin,随便选取一个即可)
ln -s
/home/wooya/work/openwrt-hiwooya/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-linux-g++ /usr/local/sbin/mipsel-linux-g++(创建g++编译器的软连接)
Key2:把编译器的路径添加到PATH里面(通过编辑环境变量文件)
①终端输入命令(sudo vim /etc/environment),打开环境变量文件
②在PATH里面添加编译器的路径,如下图
③刷新这个文件(. /etc/environment或者souce /etc/environment)
Key3:通过修改启动项增加环境变量(笔者不建议使用此方法,如果设置错误会导致很多问题出现)
①打开/etc/profile文件(sudo vim /etc/profile)
②文件末尾添加下面的命令
export PATH="$PATH:/home/wooya/work/openwrt-hiwooya/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin"
③刷新这个文件(souce /etc/profile或者. /etc/profile)
步骤2:输入命令(mipsel-openwrt-linux-gcc hello.c -o hello)直接进行编译,可以看到编译是成功的。
1.3 使用Makefile进行编译
1.2.1 准备
Ubuntu系统,已经编译过的固件源码(里面有编译工具),C语言源代码,Makefile文件。
1.2.2 编译步骤
步骤1:写一个Makefile文件,如下图所示。
步骤2:输入命令(make)进行编译
如上图所示,已经编译成功。
第二章 上传到板子运行
2.1 使用功能定制
2.1.1 准备
MT7688板子,串口线,电源线。
openwrt源码,FileZilla软件,SecureCRT软件。
2.1.2 执行步骤
步骤1:把编译好的文件放在固件主目录下的files文件下,或者在里面创建一个文件夹用于存放应用程序。笔者创建了一个soft文件夹,如下图。
步骤2:重新编译固件,然后把固件烧写到MT7688板子上。
步骤3:在终端运行这个应用进行测试。
如图所示,在终端能够成功执行这个程序。
2.2 使用FileZilla上传
2.2.1 准备
FileZilla软件,SecureCRT软件。
MT7688板子(支持ssh协议),串口线,电源线。
注:如果固件不支持ssh,详见2.3章节安装ssh。
2.2.2 进行上传
步骤1:使用SecureCRT软件登录板子。
步骤2:执行命令(ssh),查看是否支持ssh协议,若不支持,详见2.3章节安装ssh。
如上图所示,表示支持ssh。如果出现not found表示不支持ssh,需要对源码重新配置,详见2.3章节安装ssh。
步骤3:对板子上的用户设置密码。(如果已经设置请忽略)
执行命令(passwd)修改密码,然后输入两次设置的密码,确定即可。
注:输入密码时,密码在终端不会显示。
步骤4:重启板子,并查看主机ip地址。(需要与电脑的ip地址在同一网段,并且能够ping通,不然无法连接,如图所示,笔者的网络是通的)
主机ip地址
板子ip地址
步骤5:打开FileZilla软件,输入主机(192.168.31.111),用户名(root),密码(123456)端口号(22),然后点击快速连接。(以上为笔者的设置的ip和密码,具体设置可能有所不同)
步骤6:把程序上传到板子上。
如上图所示,笔者的程序能在板子上执行。
2.3 固件安装ssh协议
2.2.1 准备
FileZilla软件,SecureCRT软件,固件源代码。
MT7688板子,串口线,电源线。
2.2.2 安装
步骤1:进入源码主目录,执行源码配置(sudo make menuconfig),增加如下的配置信息,
如果没有ssh这个选项则需要更新固件源码,详见步骤2--5,如果存在则跳过步骤2--5。
Network --->
SSH --->
<*>openssh-server
<*>openssh-sftp-server
步骤2:在源代码主目录下执行命令(make distclean),会对已经编译好的代码清除。
步骤3:执行命令(./scripts/feeds update -a),跟新源代码程序
步骤4:执行命令(./scripts/feeds install -a),对源代码进行重新加载
步骤5:重新配置源代码(sudo make menuconfig),由于重新获取了代码,所以所有的配置都需要重新配置。
步骤6:编译固件,写进板子里面。
步骤7:输入命令(ssh)查看是否成功配置ssh。
如上图所示,笔者的固件已经成功安装了ssh
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表