【问题标题】:Software Stack for a Particular computer特定计算机的软件堆栈
【发布时间】:2013-02-11 02:48:42
【问题描述】:

我正在做一个项目,我的团队负责特定硬件的软件堆栈。

我手上只有处理器的指令集,需要用它开发完整的软件栈。

除了汇编器的指令集之外,我还需要其他什么吗?

请注意,我不知道那台计算机的硬件结构

【问题讨论】:

  • ISTM 至少您需要知道如何将二进制指令放入处理器可以执行它们的位置以及如何使其开始处理它们。
  • 只是添加到 500 - Internal Server Error 的评论,内存映射可能会有所帮助。您的中断处理程序和向量表在哪里(如果使用中断)?视频、磁盘或其他 I/O 呢?除此之外,我只能建议让编译器尽早工作(请参阅 compilers.iecc.com/crenshaw 以获取 PASCAL 中的简单示例)
  • 你能解释一下你所说的软件堆栈是什么意思吗?
  • 您有上述软件堆栈的完整规范吗?这在技术上是否可行,无需进行任何 I/O,即无需与您一无所知的硬件接口?
  • @Dougvj 软件栈包括:汇编器、虚拟机、编译器和操作系统。我们需要的软件非常基本。(没有花哨的东西)

标签: c assembly computer-architecture instruction-set


【解决方案1】:

非常简短的回答是“如果没有更多信息,可能是不可能的”。

至少,您需要知道不同类型的内存位于何处,您需要在处理器本身内初始化什么[这通常不在指令集手册中]。典型示例:中断向量、定时器、内存控制器等,它们通常是处理器本身的一部分,但实际上并不是指令集的一部分。

显然,数字手表的软件堆栈非常基础。一个完整的家庭娱乐系统的软件堆栈,能够流式传输加密视频和浏览网络,将会非常大。手机的软件堆栈更大。对手表的要求和构建所需的硬件[不是说你可以很容易地把它弄得足够小,而是忽略了,因为这是一个软件,而不是硬件问题],最多可能需要几天时间。一款能够与当今市场上的顶级产品竞争至少取得一些成功的智能手机将需要一个由非常熟练的软件开发人员组成的大型团队几年时间才能完成。显然,在这些相对极端的例子之间还有很多其他基于软件的系统。

【讨论】:

  • 因为这是我们大学的一个小项目,而且我们只是为了好玩而这样做,所以我们软件的第一阶段将是非常基础的。软件栈包括:汇编器、虚拟机、编译器和操作系统。我们需要的软件非常基本。(没有花哨的东西)。另外我想如果硬件的指令集已经被组织好了,从程序员的角度来看,计算机的内部工作就不需要了,因为我们只需要在上面写程序。
猜你喜欢
  • 1970-01-01
  • 2013-11-05
  • 2011-01-04
  • 2012-10-26
  • 2012-06-26
  • 1970-01-01
  • 2011-06-03
  • 2020-02-22
  • 1970-01-01
相关资源
最近更新 更多