MIPS 架构的 AR9331芯片 编译链相关内容
来源:互联网 发布:a5源码交易平台 编辑:程序博客网 时间:2024/05/05 11:18
windows篇=============================
小撸路由是啥?小撸路由顾名思义就是@小撸撸过的 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)。
- 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...
8M的FLASH:flash地址从0x000000~0x7FFFFF
ttl访问flash的地址从0x9F000000~0x9F7FFFFF
- 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的文件
- #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;
- }
art.bin分区提取
dd if=/dev/mtd4 of=art.bin
最后采用cat 连接起来就好了
cat uboot.bin fw.bin empty_ff.bin art.bin > full.bin
- MIPS 架构的 AR9331芯片 编译链相关内容
- 基于ar9331 mips架构AP121 uboot分析(1)
- MIPS架构的交叉编译工具问题
- 基于ar9331 mips架构AP121 uboot分析(2) 顶层Makefile,mkconfig
- 基于ar9331 mips架构AP121 uboot分析(3) 启动流程
- 基于ar9331 mips架构AP121 uboot分析(4) 启动流程 Stage1
- 基于ar9331 mips架构AP121 uboot分析(3) 启动流程
- AR9331 SDK编译
- MIPS 架构 Linux driver编译时遇到的问题
- MIPS 架构 Linux driver编译时遇到的问题
- ZMQ——MIPS 架构 libzmq.so 的编译
- 国产CPU芯片有望统一架构 龙芯MIPS可能胜出
- 解读x86、ARM和MIPS三种主流芯片架构
- 解读x86、ARM和MIPS三种主流芯片架构
- 解读x86、ARM和MIPS三种主流芯片架构
- x86、ARM和MIPS三种主流芯片架构
- 解读x86、ARM和MIPS三种主流芯片架构
- 解读x86、ARM和MIPS三种主流芯片架构
- java web 下载文件 浏览器弹出下载框
- uiautomatorviewer介绍
- There is no Action mapped for namespace [/] and action name [Person] associated with context path
- 信息论、最大熵模型
- 练习4-7 编写一个函数ungets(s),将整个字符串压回到输入中。ungets函数需要使用buf和bufp吗?它能否仅使用ungetch函数
- MIPS 架构的 AR9331芯片 编译链相关内容
- 解决 ArrayList 的 ConcurrentModificationException
- CTS测试时手机的设置
- 如何使用springmvc框架在普通的servlet注入service
- iOS开发之百度地图的简单集成——标注&POI检索
- Android 数据库(SQLite)的导入导出命令
- nfs挂载出现no such device是内核没有配置NFS
- swift果冻效果
- linux中fork()函数详解