zoukankan      html  css  js  c++  java
  • 【转】MIPS交叉编译环境的建立

    原文网址:http://imgtec.eetrend.com/forum/2371

    我觉得对于MIPS处理起来说最令新手头疼的应该就是编译环境的建立了,这点MIPS做的确实不是很好,不像ARM那样有许多的工具和资料,只能自己摸索,自己试了很多也走了很多弯路,这里向大家介绍一款很出色的免费编译环境,希望对大家有所帮助。

    我向大家介绍的是mentor graphics的Sourcery CodeBench的免费版本CodeBench Lite Edition,网址如下
    http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebenc...

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

    1

    更改为可运行属性后,直接通过./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)即表示安装成功。

    接下来我想大家介绍下如何使用gdb在模拟器上调试MIPS程序使用如下getting started文档中的示例程序:
    #include 
    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 ", 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

    2

    之后就可以通过stepi/step进行调试了,而且下方同时显示了C源代码以及当前执行的汇编指令,调试起来很方便
    原文地址: http://bbs.eetop.cn/viewthread.php?tid=424947&extra=page%3D1%26amp%3Bord...

  • 相关阅读:
    系统的讲解
    后端架构师技术图谱
    设计模式简介(45种)
    浅入浅出 Go 语言接口的原理
    我所认为的RESTful API最佳实践
    Mysql 索引精讲
    客户端与服务端的三次握手与四次挥手
    线程的安全和可重入(待续)
    进程和线程(待续)
    设计模式(3)--观察者模式(待续)
  • 原文地址:https://www.cnblogs.com/wi100sh/p/4254998.html
Copyright © 2011-2022 走看看