编辑
有了更多的时间,我重写了我原来的答案,试图提供一些更有用的东西。
我无法为您的问题提供具体答案。我从未尝试让代码在 MIPS 机器上运行。我所拥有的是让各种“裸机”板启动和运行的丰富经验。各种CPU和各种编译器和交叉编译器。因此,我了解适用于所有此类情况的原则。我会指出你需要吸收的知识,然后你才能希望在这样的工作中取得成功,希望我可以列出一些资源链接,让你开始学习这些知识。
我担心你不知道指针正是裸机编译器可以处理的那种东西,它们是基本的机器原语。这告诉我,您可能不是陷入这种特殊情况的专家嵌入式开发人员。没关系。对嵌入式系统进行编程没有什么神奇之处,您可以学习您需要了解的内容。
第一步是了解 C 语言与您希望在其上运行代码的机器之间的关系。基本上 C 是一种可移植的汇编语言。这意味着 C 语言有利于操纵机器的基本操作。从这个意义上说,机器的基本操作是读取和写入内存位置,对从内存读取的数据执行算术和布尔运算,并根据该数据做出分支和循环决策。特别是指针的 C 概念允许您在内存中指定的位置操作数据。
到目前为止一切都很好,但是仅仅在内存中进行原始计算通常是不够的——您需要一种从内存输入和输出数据的方法。为此,您需要操作板上的硬件外围设备。如果硬件外围设备是内存映射的那么用于控制外围设备的机器寄存器看起来与内存位置完全相同,C 可以直接操作它们。即使在这种情况下,通过使用专门为此目的提供的例程库扩展 C 核心语言,更有可能最好地处理有用的 I/O。这些库例程处理与操作板上外围硬件有关的所有令人讨厌的细节(定时器、中断、非内存映射 I/O),并使用方便的 C 函数调用接口将它们包装起来。这个想法是你可以简单地使用 printf("hello world"); 库调用负责显示字符串的细节。
熟练的开发人员知道如何使现有的 I/O 库适应新板,或者如何开发新的库例程以提供对非标准定制硬件的访问。培养这些技能的经典方法是从简单的东西开始,通常是输出设备的 LED 和输入设备的开关。编写一个程序,以可预测的方式使 LED 产生脉冲,或者读取开关并反映在 LED 上。你第一次得到这个工作将是非常令人满意的。
好吧,我已经逛够了。是时候为你提供更多的学习资源了。好消息是,现在正是了解硬件和软件之间的接口如何工作的最佳时机。有大量免费可用的代码和文档。如您所知,Stackoverflow 是一个很好的资源。祝你好运!链接如下;
嵌入式系统概述
精通C语言是基础
为什么不在你尝试真正的硬件之前让你的代码在模拟器上运行
另一个模拟环境
Linux 设备驱动程序 - 一个重叠的主题
另一本关于裸机编程的书