Hen*_*nry 35 embedded microcontroller codewarrior arduino avr-studio4
我有几年的桌面和网络编程经验.我想继续做一些嵌入式系统编程.在询问了最初的问题后,我想知道我应该从哪个硬件/软件IDE开始......
Arduino + Arduino IDE?
Atmel AVR + AVR Studio 4?
飞思卡尔HCS12或Coldfire + CodeWarrior?
Microchip PIC + MPLAB?
ARM Cortex-M3 + ARM RealView/WinARM
或者......没关系?
哪个开发平台最容易学习和编程(考虑到IDE的可用性)?
如果出现问题,哪一个最容易调试?
我的目标是了解"IO端口如何工作,内存限制/要求,包括可能的分页,中断服务程序". 学习一个我稍后会使用的,或者高级概念应该延续到大多数微控制器是否更好?
谢谢!
更新:这个开发工具包是如何开始的?评论?建议?
Jud*_*den 18
就个人而言,我建议使用基于ARM Cortex-M3的微控制器.更高功率的ARM内核非常受欢迎,这些低功耗版本可以在仍然充斥着专有的8/16位内核的空间中起飞.这是最近关于这个主题的文章:ARM Cortex-M3和MCU市场的融合.
在Arduino的是业余爱好者很受欢迎.Atmel的外设库在处理器类型中相当普遍.因此,它可以平滑后来从AVR到ARM的过渡.
我并不是说ARM比AVR或任何其他核心更好.为商业产品选择MCU通常归结为外围设备和价格,其次是现有的代码库和开发工具.此外,微控制器通常比台式PC简单得多.因此,在你掌握了它之后,从一个移动到另一个并不是那么难.
另外,如果您对实时操作系统(RTOS)开发感兴趣,请查看FreeRTOS.它是开源的,包含了一个很好的浏览RTOS是什么以及它们是如何实现的.事实上,他们的演示实例甚至针对AVR.
嵌入式系统的开发工具可能非常昂贵.但是,对于ARM和AVR等更开放的内核,通常有开源替代方案.例如,请参阅WinARM和WinAVR项目.
这些工具链基于GCC,因此在非Windows平台上也可用(并且更容易使用IMHO).如果您熟悉使用GCC,那么您就知道有很多"IDE"可以满足您从EMACS和vi(我最喜欢的)到Eclipse的需求.
商业产品可以为您节省很多令人头疼的问题.但是,选择一个将在很大程度上取决于您的目标硬件和预算.此外,某些硬件支持直接USB调试,而其他硬件可能需要昂贵的JTAG适配器.
其他链接:
低成本Cortex-M3开发板:
新的Arduino使用ARM Cortex-M3而不是AVR微控制器.
鉴于您已经拥有编程经验,您可能需要考虑使用AVR Studio + WinAVR获取Arduino并擦除固件以执行自己的操作.Arduino为您提供了理解其电子方面的良好起点.取出Arduino引导程序可以让您更好地访问Atmel的内部.
为了实现您正在制定的目标,我还建议通过x86编程更深入地探索台式计算机.例如,您可以构建x86操作系统内核.