查看“第二课--OpenWRT 应用开发入门”的源代码
←
第二课--OpenWRT 应用开发入门
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | 本节主要介绍如何在openwrt下进行开发,并将程序在microWRT上运行。 ==编译SDK== 搭建编译环境在openwrt固件编译的文档里有详解,我们要做的就是在它基础上编译出一个自己的OpenWrt开发环境。 1. 在源码的openwrt目录下,执行 $make menuconfig 会看到如下图形界面 [[File:backup.jpg|800px|thumb|center|Upgrade Window]] 选中 [*]Build the OpenWrt SDK,保存退出, 然后用下面程序进行编译。 $make V=s 2. 编译完成以后,在openwrt/bin/ramips我们会看到 OpenWrt-SDK-ramips-for-linux-i686-gcc-4.8-linaro_uClibc-0.9.33.2.tgz.bz2压缩包 (依照你的虚拟机不同而不同)。这个就是我们编译好的OpenWRT SDK环境。 我们将在它下面来做OpenWrt软件包的开发。 下面来解析一下我们的SDK环境的含义, 可以从名称上看出,target system是ramips,host system是Linux-i686, 使用的编译工具以及库是 gcc-4.8-linaro_uClibc-0.9.33.2 ==开发程序== 1. 解压,并进入SDK $tar -jxvf OpenWrt-SDK-ramips-for-linux-i686-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2 $cd OpenWrt-SDK-ramips-for-linux-i686-gcc-4.8-linaro_uClibc-0.9.33.2 $ls 看到如下界面,我们接下来就要在package这个目录下做操作了。 [[File:backup.jpg|800px|thumb|center|Upgrade Window]] 2. 开发hello wrold的软件包 (1)进入package目录: $cd package (2)在package目录下创建helloworld目录,并进入helloworld目录: $mkdir helloworld $cd helloworld 如下图所示: [[File:backup.jpg|800px|thumb|center|Upgrade Window]] (3)在helloworld目录下,创建新目录 src,并进入到src目录, 我们要在src目录下来写我们的hellowrold.c以及编译helloworld.c所需要的Makefile文件。 $mkdir src $cd src $touch helloworld.c $touch Makefile [[File:backup.jpg|800px|thumb|center|Upgrade Window]] $vim helloworld.c #include <stdio.h> #include <unistd.h> int main(void) { printf("Welcome to microWRT, have a fun !!! \n"); return 0; } $vim Makefile #build a Makefile for hellowrold.c helloworld: helloworld.o $(CC) $(LDFLAGS) helloworld.o -o helloworld helloworld.o: helloworld.c $(CC) $(CFLAGS) -c helloworld.c clean: rm *.o helloworld (4)编写Makefile,这个Makefile文件是给OpenWRT读的。是用来生成软件包的, 在上一步中我们写的Makefile是为了编译helloworld.c的,两个Makefile不同, 也不在同一层目录下。在上一步中我们是在src目录下,现在我们要编写的Makefile要在上层目录, 既是helloworld目录下 $cd ../ $touch Makefile 如下图所示: [[File:backup.jpg|800px|thumb|center|Upgrade Window]] makefile 文档 (5)下面就是编译了,回到SDK的顶层,也就是下面这个目录: [[File:backup.jpg|800px|thumb|center|Upgrade Window]] $make V=s 编译过程会在build_dir目录下完成,生成的ipk包,在当前目录下的 bin/ramips/packages下的helloworld_1_ramips_24kec.ipk (6)pandorabox固件和 microWRT系统结构不一致,会导致此ipk包无法安装,为了解决这个问题, 我们可以将对应的二进制文件直接传到microWRT上运行,二进制文件在下面目录下: [[File:backup.jpg|800px|thumb|center|Upgrade Window]] 将helloworld上传到WRTnode上 [[File:backup.jpg|800px|thumb|center|Upgrade Window]] (7)在WRTnode开发板上执行 执行 helloworld 查看程序的效果。 $./helloworld 出现打印信息: [[File:backup.jpg|800px|thumb|center|Upgrade Window]] |}
返回至
第二课--OpenWRT 应用开发入门
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息