联发科Linkit 7688 (一) 上手及在Mac下搭建OpenWrt交叉编译环境,C语言编译Hello,World

Linkit 系列博文:

联发科Linkit 7688 (一) 上手及在Mac下搭建OpenWrt交叉编译环境,C语言编译Hello,World

联发科Linkit 7688 (二)GPIO基本操作与C语言编程

联发科Linkit 7688 DUO(三): 通过 Arduino 控制外设和传感器

Linkit 7688 DUO(四): 接上各种Arduino传感器和模块——基础篇

Linkit 7688 DUO(五) 接上各种Arduino传感器和模块—扩展篇

Linkit 7688 DUO(六) 加入MQTT物联网协议



淘了一块联发科 Linkit 7688 DUO 开发板(99元)。 这是一块物联网开发板,基于联发科 Linkit 7688芯片、同时兼容Arduino. 内置OpenWrt系统、支持Wifi联网,用于开发智能路由器、智能物体等。

上手过程,记录一下


开发板做得很精致:





1, 首先去官网, 学一下入门教程:

      7688官网入口如下:

       https://labs.mediatek.com/site/znch/developer_tools/mediatek_linkit_smart_7688/whatis_7688/index.gsp

       进入“入门”, 教程写得很详细: 准备硬件及软件、开发板上电、登录WebUI设密码、设置Wifi, 连入互联网, 电脑SSH登入。。。

       官网写得很好,过程也不难,这里不重复了

       做完这些步,应该能够让 LinkIt 7688开发板连接入WIFI,电脑连入同一个WIFI,  用SSH能登入 7688开发板的OpenWrt系统。

        然后,才可以做下面这些步。


2,下载 Linkit 7688的规格书 (Datasheet), 了解一下开发板性能

    https://labs.mediatek.com/fileMedia/download/9ef51e98-49b1-489a-b27e-391bac9f7bf3

    7688芯片为MIPS 580MHz, 64M RAM。 开发板上另提供128M 存储

    芯片支持WIFI 802.11N,   USB2.0,  及其它常用接口( 多个GPIO,UART, JTAG等)


3,安装C语言交叉编译器,在OpenWrt下开发程序

      对OpenWrt的系统级开发还是要用C,因此要安装 C语言交叉编译器

      交叉编译器,是一种特殊的gcc编译器,就是在PC上编译出MIPS的Linux程序

      编译器包括 多个工具软件(gcc,gdb,make等),  故称为工具链


       安装C语言工具链Toolchain:

      在7688官网入口中找到进入 "软件和工具",找到 "OpenWrt SDK" ,点击下载 Toolchain.  (注意:不是下载SDK,而是Toolchain)

       交叉编译工具链目前只支持linux 和 Mac OS,  我的机器是Mac, 所以下载的是 Toolchain (OSX)

      下载得到文件: MediaTek_LinkIt_Smart_7688_Openwrt_toolchain_OSX.bz2  约35M

      解压缩出一个目录 : OpenWrt-Toolchain-ramips-mt7688_gcc-4.8-linaro_uClibc-0.9.33.2.Darwin-x86_64

      其中有一个子目录: toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2  所有交叉编译的C语言工具( gcc , gdb )就在这个目录中了

      为了方便使用,将这个目录改个名字为 CC_TOOLS, 复制到 Desktop中。

      则此时在Mac中, 工具链所在目录的位置是:   ~/Desktop/CC_TOOLS  


      打开Mac的终端窗口, (LaunchPad --> 其他 --> 终端)

      输命令,进入工具链所在目录

      cd  Desktop/CC_TOOLS/bin

      试了一下,好象交叉编译器中没有gcc, 要用g++。 用C++编译器编译C语言没有问题的。 

      运行一下 g++, 查看版本

       ./mipsel-openwrt-linux-g++ --version


       第一次运行,出错了,显示 "readlink: illegal option -- f ... ... "

       查了一下, mipsel-openwrt-linux-g++ 调用了 mipsel-openwrt-linux-uclibc-wrapper.sh 这个脚本文件

       用文本编译器(我用的是UltraEdit for Mac)  打开mipsel-openwrt-linux-uclibc-wrapper.sh  

       找到  REALNAME=`readlink -f $0` 这一行,  修改为    REALNAME=`readlink  $0`    (即去掉 -f ), 存盘。

       重新运行一下 g++, 查看版本

       ./mipsel-openwrt-linux-g++ --version

      则此时正常显示版本号了,表示交叉编译器gcc安装基本正确了


       写一个 Hello, world 程序

        #include <stdio.h>

       

         int main() {

             printf("hello,world\n");

        }

        存盘为 hello.c ,   最好存盘在工具链 的 bin了目录下  (因为没有设置PATH,放在其它目录下容易出错)

        编译一下

        ./mipsel-openwrt-linux-g++   hello.c -o hello

        编译过程显示了几个Warning

              mipsel-openwrt-linux-uclibc-g++.bin: warning: environment variable 'STAGING_DIR' not defined

        不用管它, 编译正常生成了  hello 程序文件


        将Linkit 7688与Mac连入同一个WIFI

         用scp命令将 hello程序文件上传到 Linkit 7688 板上的 /root 目录中 

          scp hello  [email protected]:/root       (其中:192.168.31.140 是 Linkit 7688连入WIFI网络后获得的IP地址,你自己的具体地址不同,要改一下)

    

          用SSH登录进入 LinkIt 7688,  运行一下   ./hello

          则成功显示:hello,world

          表明C语言编译OK了。


4, 设置PATH路径

       在Mac中,打开终端窗口,输入命令,用vi编辑  ~/.profile 文件

       vi ~/.profile

       在文件末尾加入一句话 (设置CC_TOOLS/bin目录到PATH中)

       export PATH=$PATH:~/Desktop/CC_TOOLS/bin

       存盘,退出

       关闭终端窗口, 再重新打开终端窗口

       输入命令    echo $PATH   查看一下PATH路径已包含 CC_TOOLS/bin

       设好了,则可以在任何目录下调用编译器了, 如上例

        mipsel-openwrt-linux-uclibc-g++   -o hello hello.c


5, 安装7688 SDK开发包

     在7688官网入口中找到进入 "软件和工具",找到 "OpenWrt SDK" ,点击下载 SDK。 (我下的是SDK (OSX) )

     下载得到文件:MediaTek_LinkIt_Smart_7688_Openwrt_sdk_OSX.bz2

      解压缩出一个目录 : OpenWrt-SDK-ramips-mt7688_gcc-4.8-linaro_uClibc-0.9.33.2.Darwin-x86_64

       为了方便使用,将这个目录改个名字为 7688SDK, 复制到 Desktop中。    

     则此时在Mac中, SDK所在目录的位置是:   ~/Desktop/7688SDK


      设置STAGING_DIR环境变量

       在Mac中,打开终端窗口,输入命令,用vi编辑  ~/.profile 文件

       vi ~/.profile

       在文件末尾加入一句话

       export STAGING_DIR=~/Desktop/7688SDK/staging_dir

       存盘,退出

       关闭终端窗口, 再重新打开终端窗口

       输入命令    echo $STAGING_DIR 查看一下STAGING_DIR环境变量是否已设置好

       设好了,再次编译hello.c, 将没有warning


C/C++语言交叉编译开发环境设好了。




       


    



     

       

      

    

    


      

你可能感兴趣的:(联发科Linkit 7688 (一) 上手及在Mac下搭建OpenWrt交叉编译环境,C语言编译Hello,World)