我正在寻找一种便宜的单板计算机,该计算机可以用汇编语言进行编程,并使用有限的功能从PC和简单的I / O外围设备加载目标代码。
理想情况下,我希望能够在合理的时间内自己编写机器上的所有代码。我不希望这样的操作系统,因为我想要一个程序在RAM中写入一些代码,然后分支执行它。就适合于汇编编程的系统简单性而言,Arduino可能是我最好的选择,但是它具有哈佛架构,并且不允许我从RAM中执行。
多年前,我使用的是冯·诺依曼(Von Neumann)架构的8位CPU,它可以将执行分支到任何地址,无论它是映射到ROM,RAM还是其他任何地址。这就是我现在想做的。
我可能可以在RAM中编写和加载在RAM中编写的操作码解释器,但这是一个非常复杂且耗时的解决方案,除非已经存在这种虚拟机。
关于Arduino或我可能使用的其他微控制器的其他解决方法的任何建议吗?
谢谢!
皮埃尔
3
PIC32是普林斯顿(Von Neumann)架构芯片。它是一个MIPS CPU,因此尽管没有低档的AVR更为复杂,但已有很好的文档记录和标准化。您可能更喜欢chipKIT板。
—
Majenko
尽管已作为哈佛架构进行了优化,但ARM Cortex-M系列可以在RAM上以可容忍的效率损失执行,并且这样做的速度仍然比AVR快得多。至少有六家芯片公司基于该内核的许可来提供广泛使用的产品,尽管许多人使用供应商和/或半标准库,但完全有可能根据数据表自行完成所有工作。我之所以选择STM32,是因为它们的发现板非常便宜,可以使用开源工具在Linux / OSX上工作,并且可以在定制板上编程芯片,但是现在也使用了Kinetis。
—
克里斯·斯特拉顿
主要问题是为什么?为什么需要从RAM执行ASM?您想使用哪种组装?由于每种体系结构都有其自己的语言...您这样做是出于学习目的吗?或者您有特定的目标?
—
frarugi87
我不同意,为什么我希望这样做与我当时提出的问题无关,因为这并不是解决其他问题的方法。顺便说一句,我遵循了Majenko的建议,目前我有一个Uno32 plus外部接口运行程序集(并从程序集调用C函数),在RAM中编写其自己的修改的asm代码并执行它。
—
皮尔(Pierre),
Forth是您所寻找的:)
—
Mikael Patel