我想学习ARM装配和裸金属编程,并计划购买一些开发板。
我的预算有限,花费高达75美元(4500卢比)。从谷歌我可以看出Raspberry Pi板符合我的预算。
那么可以购买Raspberry Pi板并开始学习ARM组装编程吗?
答案 0 :(得分:4)
答案 1 :(得分:3)
我在github上有一些东西,我不会在这里链接,你也可以去覆盆子pi网站上的裸机论坛,并获得相当多的好信息。
raspberry pi是学习裸机的一个非常好的平台......除了文档......该芯片非常容易编程,比这个价格范围内的许多微控制器和其他项目更容易。为了从覆盆子pi上的裸露金属开始,你将需要一个覆盆子pi,A模型将起作用,如果你愿意,可以节省10美元。您将需要购买SD卡,并且您将需要/需要购买USB到串行适配器,一些ftdi部分的味道。 Sparkfun有很多这样的。搜索ftdi基本突破。你还需要两条线,一条用于ux上的tx,另一条用于ux上的rx,另外还有用于覆盆子pi的usb电缆micro-b和用于大多数ftdi板的mini-b,但不是全部。 Sparkfun还带有跳线,你需要提前计划并获得正确的男/女,或女性/女性(m / f,f / f)你不需要男性/男性,因为树莓派是男性。或者如果你得到一个只有一个洞的突破,你可能会将电线插入并扭曲它或其他东西。推进来推垃圾袋和面包背面的扭结带有一点线,你可以使用其中一个,如果在一个非常紧张的预算,只是不要将它们彼此或其他任何东西短。
有许多教程,包括我如何开始使用覆盆子pi上的裸机编程。我会让你谷歌那些。你当然可以使用覆盆子pi开始你的预算(sparkfun带有覆盆子pi板,你可以获得你需要的一切,只需付运费一次)。
beaglebone black只需要一根USB线和SD卡,我不记得sd卡是否带有它。或usb电缆。更多的I / O,手臂地址空间更复杂,并且ti手册更难以阅读和查找内容。 broadcom(raspberry pi)对于小小的和糟糕的文档都是知道的,其中ti有过于完整的文档,而不是像其他人那样勉强通过。有点权衡。在您的价格范围内,树莓派的一个很好的替代品。
以上是支持Linux的系统,您应该让引导程序方案调出ddr(内存),即使有经验你也不想去那里。它们是完整的臂式处理器,手臂和拇指指令集。
您可以采用的另一个途径是微控制器,例如stm32f0发现,在发货之前低于10美元。一个很好的学习平台,你绝对是裸机,你可以学习装配,但只能拇指装配。无论你是用手臂还是拇指开始都不是我强烈关注的事情,我过去倾向于另一种方式,但我先开始向拇指倾斜然后手臂...... st网站(st.com)将链接到主板, mouser和digikey以及通常的玩家将携带它们。我推荐一对夫妇,以防你炸掉一个,而且那些地方的运输也很痛苦,所以如果你打算花多少钱在船上运输也可以获得不止一个并抵消运费。实际上,如果/当你想要使用stm32f0发现进行串行时你将需要/需要其中一个usb到串行ftdi的东西,3.3伏。假设3.3v,除非你要使用相当旧的东西或arduino / avr(虽然其中一些有3.3伏版本
他们重命名了它,但是它有一个用于以前恒星的启动板(现在是tiva或者其他东西),它也是一个基于皮质的处理器(仅限拇指)。发射台是免费送货,也在20美元或10美元以下的范围内,也可用于裸机和装配的学习。问题是他们只经常进行生产运行,你可能需要等上几个月来获得你的董事会。他们也有20美元的大力神板,这是完整的臂式处理器,但据我所知,第三方工具不支持,基本上你需要使用代码作曲工作室,它工作正常,你可以做组装和所有这些,但我更愿意采取另一种方法。我把我的一块板子搞得很糟糕而且没有给自己留下后门(我忘记并经常这样做,有些筹码jtags是这样的,你可以逃脱不做,有些不是,这是一个如果你的固件悬挂你用jtag无法恢复的手臂,mbed板的cortex-m0版本也是这样的,来自nxp(原始mbed)的cortex-m3不是这样的。)
有许多20美元以下的微控制器,您可能也可能不想购买最终可以使用的ftdi板,以及一些更昂贵的微控制器,如mbed和maple mini等。
底线,首先得到一个模拟器,然后跳到一个50美元的子板,其中有很多。首先进行研究,确保您可以随意使用它,而无需购买更多工具,序列号,jtag等。答案 2 :(得分:1)
Raspberry Pi是基于ARM的独立计算机,旨在运行操作系统,例如(但不限于)Linux。因此,可以用ARM汇编语言编写与这些操作系统交互的代码,但是配置中断的方式的大多数方面将由OS而不是代码决定。相比之下,许多评估板旨在使您可以轻松地自行加载代码,从而完全控制系统中的所有内容。类似“hello world”程序的东西可能更难以设置,但是你可以对使用Raspberry Pi的所有事情进行更精确的控制。
答案 3 :(得分:1)
Raspberry Pi作为嵌入式Linux平台真的很棒;不是作为ARM开发板。正如已经多次指出的那样,一旦你购买了外置设备(即使你需要无头电源,你需要一个电源,机箱,JTAG接口,集线器,如果你需要外部存储 - 你有电缆,不管吗?),它会花费约75美元。由于预算紧张,您最好指出所需的所有外围设备。我认为直接ARM组装更好的选择是采用MCU路由 - TI Stellaris(10美元左右)。如果您愿意放弃ARM架构,但仍希望在类似RISC的MCU板上大放异彩,那么试用MSP430可获得惊人的4.97美元。它不是ARM,所以它可能不适合你。
答案 4 :(得分:1)
评估板上有来自Olimex的Atmel SAM7(具有ARM7TDMI内核)。
SAM7系列芯片内置引导加载程序,允许通过USB对芯片进行编程。
两种不同的内存大小可供25和30欧元(2100或2550 Rupi)使用。
不幸的是,它们在欧洲而非印度提供,但印度也可能提供类似的电路板。
---编辑---
Raspberry Pi(与这些主板相比)的优势在于板上的Linux:调试和与PC的数据交换非常容易。
Raspberry Pi有点贵,但使用起来容易得多!
答案 5 :(得分:1)
我将以纯粹的原则进入这里并反对Raspberry PI。虽然它是一个完整的游戏改变者,它证明了低成本,高性能开发板的巨大市场,以及它庞大的社区,如果你使用它,它可以让你在易于获取的工作中获得额外的影响力对于一个特定的项目,对我来说,这是我能想到的最糟糕的学习平台之一。
哪个是正确的,所有这些都取决于您感兴趣的汇编编程的哪个方面。
对于上述所有情况,我建议在RPI上使用BeagleBoard Black。虽然价格略贵,但仍然在预算之内,是一款现代ARMv7架构处理器,拥有1GB内存。
如果您想学习实时或微控制器编程,那么使用MMU对任何事情进行操作都会让事情变得复杂。为此,我会推荐一些不同的东西 - 比如mbed平台之一。
如果您希望了解微控制器,那么ARM M配置文件与更高级别的A和R配置文件之间的异常处理模型完全不同。