MIPS 架构的 AR9331芯片 编译链相关内容
2016-06-15 17:39
417 查看
windows篇=============================
小撸路由是啥?小撸路由顾名思义就是@小撸撸过的 WR703N 之类的路由(系统基于OpenWrt)!因为它使用起来非常方便,而且具有很高的性价比,所以拿来当搭建智能家居系统的核心组件。要想让小撸路由改行服务于智能家居系统,那就得为它专门写一套程序去指挥它。
因为小撸路由使用的芯片是基于 MIPS 架构的 AR9331芯片,所以要想在 Windows系统 上编译能跑的程序就必须使用交叉编译工具链,下面是下载连接,下载后安装后就可以了。(小提示:这个链接是国外的,下载速度貌似很慢很慢,用迅雷也不顶用。当时下载拖了好久才拖下来,真是坑爹啊!!!在群
【点击加入群 小撸路由·智能家居】 中已经共享)
https://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu/mips-2014.05-27-mips-linux-gnu.exe
环境安装好后下面就开始编写小撸路由上的第一个程序:Hello World, Xiaolu Router!!! 随便找个地方新建一个空白记事本文件并改名为
使用交叉编译工具链把代码编译成小撸路由上能跑的程序。默认安装的话工具链应该在
这个路径之下,如果找不到就不关我的事了 :) 最好把这个路径加入环境变量中,这样随便在哪都可以使用里面的工具。
编译命令如下:
如果一切顺利的话,在目录下应该可以看到一个
至此,小撸路由上的第一个程序已经搞定!
========================================linux篇====================
linux交叉编译工具链 搜索JS9331 百度网盘 OpenWrt-Toolchain-ar71xx-for-mips_34kc-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2
openwrt 编程器固件的制作方法
对于我们的ar9331小板子,用的flash是Winbond W25Q64 (8 MB)。
[plain]
view plain
copy
AP121 (AR9331) U-Boot for YY150 modified by onejacky: cd_meatbirds@126.com
DRAM: 64 MB
FLASH: Winbond W25Q64 (8 MB)
LED on during eth initialization...
uboot、fw和art在flash中的位置如下:
8M的FLASH:flash地址从0x000000~0x7FFFFF
ttl访问flash的地址从0x9F000000~0x9F7FFFFF
[plain]
view plain
copy
flash起始地址 flash终止地址 TTL终止地址 TTL起始地址
uboot 0x00000000 0x0001FFFF 0x9F01FFFF 0x9F000000 //0x20000 128k
fw 0x00020000 0x007DFFFF 0x9F7DFFFF 0x9F020000 //0x7c0000 7936K
xxx 0x007E0000 0x007EFFFF 0x9F7EFFFF 0x9F7E0000 //0x10000 64k
art 0x007F0000 0x008FFFFF 0x9F7FFFFF 0x9F7F0000 //0x10000 64k
分4步来制作ar9331小板的full.bin
1.uboot.bin
在这个128k的bin文件中2个地方要注意:第一,在0x1FC00处存有mac;第二,在0x1FE00处存有pin
uboot.bin 可以直接移植在谷歌上有个开源的项目有源代码,编译一下就好了。如果懒得去编译,只想做个备份以后用的话,可以采用以下的方法
cat /proc/mtd
dd if=/dev/mtd0 of=uboot.bin
然后用winscp 下载到电脑中
2.fw.bin
openwrt 自己make menuconfig make V=99 编译吧
3.xxxx
做一个64k的空白的bin文件就好了,里面全部填充FF
自己用c写一个也可以生成一个empty_ff.bin的文件
[plain]
view plain
copy
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
int main(void)
{
int fd;
int i;
char buf[2] = {0xff,0x0};
fd = open("empty_ff.bin", O_RDWR | O_CREAT, 0666);
for(i = 0;i < 64*1024 ; i++)
write(fd,buf,1);
close(fd);
return 0;
}
4.art.bin
art.bin分区提取
dd if=/dev/mtd4 of=art.bin
最后采用cat 连接起来就好了
cat uboot.bin fw.bin empty_ff.bin art.bin > full.bin
小撸路由是啥?小撸路由顾名思义就是@小撸撸过的 WR703N 之类的路由(系统基于OpenWrt)!因为它使用起来非常方便,而且具有很高的性价比,所以拿来当搭建智能家居系统的核心组件。要想让小撸路由改行服务于智能家居系统,那就得为它专门写一套程序去指挥它。
因为小撸路由使用的芯片是基于 MIPS 架构的 AR9331芯片,所以要想在 Windows系统 上编译能跑的程序就必须使用交叉编译工具链,下面是下载连接,下载后安装后就可以了。(小提示:这个链接是国外的,下载速度貌似很慢很慢,用迅雷也不顶用。当时下载拖了好久才拖下来,真是坑爹啊!!!在群
小撸路由·智能家居284427089
【点击加入群 小撸路由·智能家居】 中已经共享)
https://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu/mips-2014.05-27-mips-linux-gnu.exe
环境安装好后下面就开始编写小撸路由上的第一个程序:Hello World, Xiaolu Router!!! 随便找个地方新建一个空白记事本文件并改名为
main.cpp写上下面代码保存。
#include <stdio.h> int main() { printf("Hello World, Xiaolu Router!!!\n"); return 0; }
使用交叉编译工具链把代码编译成小撸路由上能跑的程序。默认安装的话工具链应该在
C:\Users\用户名\MentorGraphics\Sourcery_CodeBench_Lite_for_MIPS_GNU_Linux\bin
这个路径之下,如果找不到就不关我的事了 :) 最好把这个路径加入环境变量中,这样随便在哪都可以使用里面的工具。
编译命令如下:
mips-linux-gnu-gcc -static -msoft-float -O2 -o main main.cpp 因为 mips 架构的CPU都不带浮点协处理器,所以必须指定使用软件模拟浮点计算,不然会出错的!-msoft-float 这个参数就是这个用意。
如果一切顺利的话,在目录下应该可以看到一个
main的文件,说明已经成功编译!把这个文件上传至小撸路由,然后执行。不出意外控制台应该看到如下内容:
Hello World, Xiaolu Router!!!
至此,小撸路由上的第一个程序已经搞定!
========================================linux篇====================
linux交叉编译工具链 搜索JS9331 百度网盘 OpenWrt-Toolchain-ar71xx-for-mips_34kc-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2
openwrt 编程器固件的制作方法
对于我们的ar9331小板子,用的flash是Winbond W25Q64 (8 MB)。 [plain]
view plain
copy
AP121 (AR9331) U-Boot for YY150 modified by onejacky: cd_meatbirds@126.com
DRAM: 64 MB
FLASH: Winbond W25Q64 (8 MB)
LED on during eth initialization...
uboot、fw和art在flash中的位置如下:
8M的FLASH:flash地址从0x000000~0x7FFFFF
ttl访问flash的地址从0x9F000000~0x9F7FFFFF
[plain]
view plain
copy
flash起始地址 flash终止地址 TTL终止地址 TTL起始地址
uboot 0x00000000 0x0001FFFF 0x9F01FFFF 0x9F000000 //0x20000 128k
fw 0x00020000 0x007DFFFF 0x9F7DFFFF 0x9F020000 //0x7c0000 7936K
xxx 0x007E0000 0x007EFFFF 0x9F7EFFFF 0x9F7E0000 //0x10000 64k
art 0x007F0000 0x008FFFFF 0x9F7FFFFF 0x9F7F0000 //0x10000 64k
分4步来制作ar9331小板的full.bin
1.uboot.bin
在这个128k的bin文件中2个地方要注意:第一,在0x1FC00处存有mac;第二,在0x1FE00处存有pin
uboot.bin 可以直接移植在谷歌上有个开源的项目有源代码,编译一下就好了。如果懒得去编译,只想做个备份以后用的话,可以采用以下的方法
cat /proc/mtd
dd if=/dev/mtd0 of=uboot.bin
然后用winscp 下载到电脑中
2.fw.bin
openwrt 自己make menuconfig make V=99 编译吧
3.xxxx
做一个64k的空白的bin文件就好了,里面全部填充FF
自己用c写一个也可以生成一个empty_ff.bin的文件
[plain]
view plain
copy
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
int main(void)
{
int fd;
int i;
char buf[2] = {0xff,0x0};
fd = open("empty_ff.bin", O_RDWR | O_CREAT, 0666);
for(i = 0;i < 64*1024 ; i++)
write(fd,buf,1);
close(fd);
return 0;
}
4.art.bin
art.bin分区提取
dd if=/dev/mtd4 of=art.bin
最后采用cat 连接起来就好了
cat uboot.bin fw.bin empty_ff.bin art.bin > full.bin
相关文章推荐
- 网站发送短信的工具类,验证码、通知消息等
- ov9650摄像头驱动之——linux内核v4l2架构分析1
- 实用的网站链接
- 项目CSS架构
- vs2012 发布网站时,发布目录为空
- 架构师:如何设计高吞吐量系统架构
- 理解本真的REST架构风格
- 微信开放平台开发(2) 网站应用微信登录
- 我的架构设计~用层关系图说说mvc,mvvm,soa,ddd - 张占岭 - 博客园
- 软件架构
- 毕设-婚恋网站-永恒网的设计与实现
- 好的网站收藏
- css3网站
- css3网站
- (译)Node.js内部代码架构
- 企业发展架构图
- 解构C#游戏框架uFrame兼谈游戏架构设计
- 8种网站防止盗链的方法
- 网站贴吧例子:
- Android 设计相关网站推荐