我对构建嵌入式设备的应用程序非常感兴趣.我是电气工程专业的第三年,我对编码,算法,Linux操作系统等充满热情.通过谷歌搜索,我发现Linux操作系统是嵌入式设备最好的操作系统之一(可能是/可能不是).我想为从事移动应用程序的公司工作.我是这个领域的新手/天真,我的技能包括C/C++和MySQL.我需要帮助才能开始进入嵌入式系统领域; 喜欢如何/从哪里开始,硬件先决条件,必要的编程技巧,以及什么样的嵌入式应用程序等我听说过ARM,固件,PIC微控制器; 但我什么都不知道,只需要对它们进行适当的介绍.
PS:我目前正在德克萨斯A&M大学阅读Bjarne Struotsup的C++ 讲座,其中的一章描述了嵌入式系统编程.
我会一起避免使用操作系统,嵌入式Linux是一种矛盾,你真正学到了什么?你可以用家用电脑学习同样的东西.
是的,ARM是嵌入式的王者,可能会保留一段时间,最终你需要看一看.
Sparkfun.com是一个很棒的网站,他们提供了许多olimex板和其他像arduino衍生品.我更喜欢msp430到avr,但avr更受欢迎.
外部sparkfun直接或从digikey或mouser查看TI(msp430)的ez430.Stellaris有很多不错的主板,811很容易打砖,我的第一个只持续了几个小时,哎呀,我应该已经读过贴在盒子里的所有东西的17个警告标签,不要碰那些jtag上的启用或方向线.stellaris在板上包装了大量的东西,非常好的平台,用于学习嵌入式编程,阅读原理图,阅读数据表和程序员参考手册,了解所有原理图和参考手册都是一个小错误,你必须破解你的方法.如果你想要建立你自己的项目,虽然你必须切掉(不是字面意思)板上的好东西,所以我会使用olimex标题板来添加你自己的电子产品.
回到sparkfun.olimex标题板很好,低于50美元,代表各种手臂供应商(除了ti/stellaris).价格低于20美元的Arduino pro mini.armmite pro很好.避免使用mbed2和lpcxpresso,也许避免使用lpc(除了armmite pro).
qemu也是一个很好的模拟器,不像装甲器或我的拇指器那样容易挖掘,看看你的代码在做什么.但是有许多rtoses和linux在它上面运行(手臂和其他处理器被模拟),手臂集成器评估板是一个受欢迎的目标,并由qemu模拟.在手臂内有许多由qemu模拟的评估板.
beagleboard很受欢迎,但我对我的beagleboard非常失望并且总是在创新上网本.另外还要花100美元到150美元才能让beagleboard变得有用.Embest有一个更好的beagleboard克隆,开箱即用.我喜欢hawkboard.org比beagleboard好得多,有点慢,价格只有一半,但是更好的板子.您可以使用Linux或真正的嵌入式(无操作系统)或任何您喜欢的.作为基于TI omap的芯片,如果您有兴趣,也可以在芯片上使用dsp.
我不是pic的粉丝,并且已经并且会因此而受到抨击,并没有打扰我.我建议学习msp430,avr,arm,thumb(和pic)的汇编程序,真正的嵌入式总是需要一个小的汇编程序来管理启动过程,中断处理等等.msp430和arm非常适合C编译器的指令集,pic和8051一样糟糕,这并不意味着没有C编译器,它只是非常低效,而且添加高级语言会使结果更糟糕.这些照片资源有限.pic32是一个mips衍生品而不是我在说什么/抱怨.这是一个完整的其他家庭和设备类别.考虑到汇编器和C,尺寸,功率,功能等的选择,我会选择msp430 over pic.
Mips是probaby武器最大的竞争对手,遗憾的是它是我没有机会学习的平台.
8051,6501和pdp11使用的lsi11是一段不错的历史之旅.lsi11是C语言的发明,你可以看到汇编程序和C之间的相似之处.msp430指令集具有相同的感觉,msp430和lsi11都是开始汇编程序的优秀指令集.8051可能是现存最古老的主力机器,它当时是主要的嵌入式处理器,并且仍然可以在新的芯片产品中找到它.就像照片一样,指令集是一个河内拼图塔,进出累加器,进出,进出几个指令做任何有用的事情.sdcc是一个免费的8051 C编译器,只要你想深入了解编译器的内容并有机会理解它(无需购买书籍或上课).
我是gameboy advance和nintendo ds的忠实粉丝,gba更容易,两者都是模拟器,虽然它们都适合玩rom游戏,但不一定非常适合你自己开发的仿真.除迷你之外的gba还有串口使得调试变得更容易(迷你有一个,但更难以实现).从gba开始,如果可以的话,更便宜,更容易,一旦你掌握了ds,就会有一些gbas与一些额外的复杂功能捆绑在一起.
根据你的帖子,不知道成本是否太高,我的猜测是hawkboard(hawkboard.org)是你列出的linux,嵌入式,算法和其他项目的不错选择.如果没有它,请继续获取电源和otg usb电缆.如果你像我一样可能太富有的EE学生,请看看arduino pro或者实际上lillypad,因为它已经带有引脚,没有焊接或需要额外的部件,是的,获得$ 14 usb到串行的东西.对于lillypad和usb到串口/电源板的价格,你可以得到一个armmite pro,除了usb电缆之外不需要任何其他东西(我知道它是lpc,没关系).我有关于如何从两个平台上移除arduino类固件并获得处理器的网页,而不是脑部手术,非常简单,但是第一次定时器可能会犹豫不决.ez430属于同样的价格类别,除了20美元的套件外,你不需要任何其他东西,另外三块电路板需要花费10美元.如果它太丰富,或者即使不是模拟器是免费的,一些比在真实硬件上运行更容易调试,因为你有源代码并且可以在打印语句或其他任何东西中编译.除了时间之外,你可以在不花费任何东西的情况下弄湿自己的脚,看看这是否是你真正感兴趣的东西.
请记住,即使最好的模拟器也不像是在真实硬件上(与在调试器下运行代码相同).您可能必须在硬件上开始您的项目,但这是嵌入式的乐趣.董事会提出......
通过谷歌搜索我发现Linux操作系统是嵌入式设备最好的操作系统之一(可能是/可能不是)
它为您提供了许多功能,低成本.但是,您必须考虑运行它所需的硬件成本,否则您可以使用成本较低的设备,以及您无法控制的大量第三方代码.它也不适合硬实时应用.通过使用Linux,您将隐含地要求带有MMU的32位处理器(除非您使用uClinux和松散的内存保护),以及几个Mb的RAM和非易失性存储.
您还可以通过最初针对Linux,但使用RTOS或实时内核(例如FreeRTOS,QNX,VxWorks,eCOS,uC/OS-II或III)或仅编程来学习更多有关嵌入式系统的知识.裸机'没有操作系统或执行官.
嵌入式系统文章的一个很好的资源是http://embedded.com/
关于硬件,ARM是嵌入式系统中最普遍使用的架构,包括电话,PDA,STB,DAB无线电,数码相机,手持游戏,上网本,iPad,机器人等.它可以从许多芯片制造商处获得,广泛的成本/性能以及外设和片上存储器.基于Cortex-M3的部分将是一个很好的介绍,是一个更清洁的设计,较老的ARM7TDMI内核,它本质上取代.(只要你不想运行Linux,在这种情况下你至少需要一个带外部存储器的ARM9).
如果电路板/工具成本至关重要,您可能宁愿使用8位器件,我建议基于Atmel的AVR.这些器件很简单,范围广泛,适合用C语言编程(如果你愿意,还可以用C++编写).PIC可能看起来很有吸引力,但它涵盖了一系列基本上不兼容的架构(每个架构需要不同的工具链),除非您使用高端器件(例如PIC24/dsPIC),否则它们不能提供用于C编程的最佳平台.或C++.