为嵌入式设备搭建开发环境主要是交叉编译器的配置,好在OpenWRT的官方已经为每一种处理器平台提供了SDK,通过SDK,我们就可以快速搭建开发环境。
下载SDK
- 打开 https://downloads.openwrt.org/ ,选择你的OpenWRT版本
- 选择处理器架构,我的是ramips
- 选择处理器型号,我的是MT7620
- 下图为SDK,直接下载
配置宿主机的开发环境
OpenWRT官方推荐使用Debian作为开发环境,但是基于Debian的Ubuntu似乎也没有太大问题,我这里是Ubuntu 16.04(AMD64),执行以下命令
sudo apt-get update
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev ccache
建议将SDK解压至 /usr/local/openwrt_sdk
目录下,因为OpenWRT支持相当多的处理器平台,可以将你所要维护的处理器平台的SDK都放置在此目录中,方便日后开发编译。
SDK中包含一个完整的交叉编译工具链,保存在 SDK目录/staging_dir/toolchain
下,因此,下一步就是设置交叉编译器的环境变量。使用你所熟悉的编辑器打开 ~/.bashrc
文件。添加
export PATH='/usr/local/openwrt_sdk/OpenWrt-SDK-15.05-ramips-mt7620_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin':${PATH}
export STAGING_DIR='/usr/local/openwrt_sdk/OpenWrt-SDK-15.05-ramips-mt7620_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir'
根据你的实际目录情况填写路径,保存之后,重新打开终端,输入mips,按tab键,如果出现 mipsel-openwrt-linux-
则说明环境变量配置成功。
HelloWorld
无论你学什么语言,HelloWorld都是跑不掉的第一课,下面我们也来写一个helloworld程序,在路由器上运行。
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
使用下面的指令编译
mipsel-openwrt-linux-gcc hello.c -o hello
然后将编译出的hello文件用winSCP复制到 /root
目录下,在SecureCRT(也可以用putty)赋予执行权限并执行
chmod a+x hello
./hello
可以看到