在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 16408|回复: 16

[原创] MIPS交叉编译环境的建立

[复制链接]
发表于 2013-10-24 10:40:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 tyxuanyuanlx 于 2013-11-15 15:30 编辑

我觉得对于MIPS处理起来说最令新手头疼的应该就是编译环境的建立了,这点MIPS做的确实不是很好,不像ARM那样有许多的工具和资料,只能自己摸索,自己试了很多也走了很多弯路,这里向大家介绍一款很出色的免费编译环境,希望对大家有所帮助。
我向大家介绍的是mentor graphics的Sourcery CodeBench的免费版本CodeBench Lite Edition,网址如下
http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/

可以看到MIPS有两个版本GNU/Linux版本和ELF版本,GNU/Linux版本用于开发linux应用,而ELF版本是用于开发裸机程序以及RTOS程序的,这里我主要介绍ELF版本的,ELF版本中带有模拟器,可以很方便的调试程序。接下来主要介绍Linux下ELF版本的安装与使用。
https://sourcery.mentor.com/GNUToolchain/release2553在网页中选择IA32 GNU/Linux Installer进行下载,下载之后为
1.JPG

更改为可运行属性后,直接通过./mips-2013.05-65-mips-sde-elf.bin命令运行即可,不过需要注意的是需要首先安装awk grep sed bzip2 gunzip等软件,而且如果Linux系统使用selinux的话需要先关闭selinux才能正常安装,安装的过程比较简单,全部默认设置即可,安装完成之后,重新启动,在终端中输入mips-sde-elf-gcc -v命令,出现gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-65)即表示安装成功。
 楼主| 发表于 2013-10-24 11:02:02 | 显示全部楼层
本帖最后由 tyxuanyuanlx 于 2013-12-3 16:08 编辑

回复 1# tyxuanyuanlx

接下来我想大家介绍下如何使用gdb在模拟器上调试MIPS程序使用如下getting started文档中的示例程序:
#include <stdio.h>
int factorial(int n) {
  if (n == 0)
    return 1;
  return n * factorial (n - 1);
}
int main () {
  int i;
  int n;
  for (i = 0; i < 10; ++i) {
    n = factorial (i);
    printf ("factorial(%d) = %d\n", i, n);
  }
  return 0;
}
使用如下命令编译程序
mips-sde-elf-gcc -o factorial main.c -T script
其中script为相关的链接脚本,程序自带一系列的链接脚本均在CodeBench安装路径下的mips-sde-elf/lib/中,各链接脚本的针对的目标详见getting started文档,这里我们需要使用的mipssim-hosted.ld,将其考入main.c所在路径中,通过命令:
mips-sde-elf-gcc -o factorial main.c -T mipssim-hosted.ld -g进行编译,之后就可以通过gdb对这个程序进行调试了。
通过指令:
mips-sde-elf-gdb factorial进入GDB命令行界面
首先连接模拟器:
target sim
加载程序:
load
在main程序出设置断点:
break main
开启反汇编功能:
set disas on
开始调试程序:
run
Screenshot.png

之后就可以通过stepi/step进行调试了,而且下方同时显示了C源代码以及当前执行的汇编指令,调试起来很方便
发表于 2013-10-24 11:10:07 | 显示全部楼层
楼主好强大啊
 楼主| 发表于 2013-10-24 11:23:50 | 显示全部楼层
回复 3# kaizige521


    这是我和朋友共同尝试的结果,我只是把经验写出来了而已,欢迎一起交流讨论
发表于 2013-12-2 01:02:20 | 显示全部楼层
謝謝分享
发表于 2013-12-3 10:06:06 | 显示全部楼层
进gdb应该是mips-sde-elf-gdb吧,楼主笔误了。
 楼主| 发表于 2013-12-3 16:09:42 | 显示全部楼层
回复 6# patrixu
发表于 2013-12-30 15:43:40 | 显示全部楼层
学习学习哈哈哈
发表于 2014-3-12 23:53:43 | 显示全部楼层
不错不错。
发表于 2014-5-14 11:09:25 | 显示全部楼层
为什么安装都正常,最后运行mips-sde-elf-gcc -v却说没有这个命令呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 13:08 , Processed in 0.033421 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表