经过几年的努力,作为一名程序员,我仍觉得不够,因为我对低级别的东西没有很多经验,而且我真的很感兴趣。我有一个Arduino入门套件,但我仍感到不满意。我想从金属上进行一些MCU编程(在装配中) - >起来。这意味着我不想在我的MCU上使用任何软件,而且我想自己写完所有内容。这将被视为一种爱好,时间不是问题。
问题:
如果我的帖子在某种形式上不合适,我很抱歉。
谢谢, 克里斯。
答案 0 :(得分:4)
是的,这是可能的 - 更好的是你可以使用现有的Arduino(和它的便携式引导程序)作为裸机 ATmega328p开发板,只需忽略 Arduino IDE和库,直接使用avr-gcc构建和avrdude通过引导加载程序加载hex文件。您甚至可以使用Arduino IDE安装的这些工具的版本。
当然,您可以购买无数其他芯片,电路板,编译器和IDE - 但我们会尝试在SE网站上保持通用,而不是深入研究购物建议。
为了解决您的最后一点,大多数MCU都带有非常少的内置软件。但有些确实有一个板载引导加载程序(永久或以前闪存),它可以通过串行端口或USB接受程序。这是一个非常方便的功能,因为这意味着您可以使用廉价的标准“消费者”电缆与它们进行接口,而不是价值10到1000美元的硬件编程器。通常,此代码仅在启动时运行或仅在特殊模式下运行 - 其余时间,您的软件(或您选择链接到代码并使用代码部署的库)都是在CPU上运行的。但是,在某些情况下,某些人已经使用了大量板载闪存的MCU,并为其上的.NET提供了运行时解释器。如果你想做裸机编程,那么那些可能不是你想要的。
答案 1 :(得分:3)
MCU通常具有可用的开发环境。有些是免费的(例如AVR Studio)。有些花钱,但可能有免费版本。
这些将包括编译C程序的库,但它们仍然是“裸机”,因为您必须自己访问寄存器和外设。一些库可以简化算术。例如,avr.lib附带了在8位机器上执行16位运算的函数。编译器将根据需要插入这些库函数。
您也可以使用汇编语言直接编程,但任何重要的程序都会变得非常大。这比C更接近金属,因为C源代码无论如何都将被编译为汇编。但如果它比C更“裸机”,那就是一个观点问题。
最好的学习方法是选择安装在开发板上的处理器,然后下载IDE。下载芯片的数据表并仔细阅读。你会经常提到它。
像这样的Sparkfun和在线网站销售许多可供选择的主板。芯片制造商也将提供开发板。开发板的优势在于所有电源细节和连接已经为您完成。经过一些经验,你可以自己设计。“裸机”的另一面是让您的MCU与其他外围传感器和执行器(如罗盘,加速度计,伺服器,电机等)进行交互。业余爱好商店通常会提供安装了这些设备的电路板。
查看学校课程网站以了解要尝试的项目。控制Roomba等许多想法都很有趣。 Hack-a-day还有许多项目。很多论坛都致力于讨论项目创意的芯片系列。
玩得开心!