San*_*osh 7 embedded embedded-linux
这是我的背景,我拥有计算机工程硕士学位,我的大多数工作经验都涉及为各种消费电子产品编写设备驱动程序.我已经完成了8051和8086控制器编程作为课程的一部分.我还做了一些关于汽车硬件功能验证的工作.现在我想进入非常低的水平,它涉及闪烁电路板,上电,引导程序编程,验证电路板上的各种组件,验证总线,存储器等.
old*_*mer 32
首先,您需要对电子学有一个很好的理解,EE学位有助于但不一定是必需的,取决于您正在进入的市场.
你肯定需要强大的原理图阅读技巧,良好的原理图和不良的原理图.
您肯定需要强大的数据表和其他参考手册技能.这些手册中的大多数都有错误,所以你也需要一些黑客技能.永远不要相信手册,不要在没有硬件测试的情况下编写数百或数千行代码.一步一步来.一些供应商有很好的文档,有些是可怕的,冲浪sparkfun和digikey和mouser这样的地方可以获得来自不同供应商的各种东西的数据表.
这些都是测试板,但它们可以教你如何启动,如何阅读原理图和数据表(程序员参考手册等),这些都是基于sparkfun.com,基于arm,基于avr,基于msp430等等的东西.从中如何编程设备使其执行.
读取verilog和vhdl的能力,编写它的能力更好.设计的"真实"文档是源代码本身.
能够操作示波器.可能是您的头号调试工具,既可以找出未出现的原因,也可以开发测试软件和调试软件.
为常用界面开发强大的知识.spi,i2c,mdio,serial等.理想情况下,您应该能够在spi总线上放置一些示波器探头并读取命令和响应.
能够编写代码来对任何上述总线进行控制,控制时序,以便不超过任何相关部件的I/O速度能力.
基本的以太网协议和工具,如wireshark或其他类似的.如果板载有以太网,则需要启动该接口,接收一些数据,将其转储出能够解析字节并查看数据包.能够生成简单的数据包,arp,ping,udp.
阅读胖文件系统.SD卡和其他类似的接口使用它.
学习usb.
学习pci/pcie.
DRAM
来自ti的stellaris板装有外围设备,试图弄清楚如何与之交谈.
得到beagleboard原理图或开放式或插入式计算机原理图并研究所有主要组件,闪存,sata,以太网,usb等.
哦,肯定学会了如何编程eeproms和闪光,eeproms正在消失,但不幸的是更加一致.闪存部件,spi,并行,加上每个微控制器都有自定义接口,种类繁多.
defintely习惯使用jtag.openocd很好,sparkfun的ftdi串口分线板可以用来点击爆炸jtag,或者其他任何东西.amontek制作的jtag-tiny适用于手臂或重新用于其他平台.我认为格子程序员也可以改变用途.说到...了解fpgas可以编程和启动的不同方式.同样如何通过bitbanging一些gpio接口来编程fpga,通常fpga供应商将拥有一个骨架(例如svf播放器),你必须提供后端,而不像将后端放在openocd上.一些微控制器系列具有非jtag(通常是串行)接口,可用作加载/编程芯片的替代方法.
查找,了解pwm,脉冲宽度调制.
研究vpi以及在仿真下将测试软件与硬件/ hdl连接起来的其他方法,可以从芯片/逻辑测试和编写测试软件到板上之前获得很大的好处.
知道当电容或电阻太大或每个(振铃)不够时,时钟会是什么样的.知道什么是串扰.
能够焊接帮助.在一个小时内大约第三次之后,闪存必须被拆除,因为你一直在制造软件错误并将电路板搞砸,就像那个叫狼的男孩一样,你不会得到很多帮助.
临时编程,你可以更快地启动一个程序/工具,你可以在一天内完成更多的事情.
这让我想起你必须有良好的纪律和耐心.只有在测试/调试时才能改变一件事,可能需要一段时间来处理所有可能出错的事情,一次一件事,采取逻辑路径.将问题一次又一次地分成两半直到找到原因.记录和存储您可以做的所有事情,并能够从该数据集中调用相关信息并进行呈现.第一次就做对了.电路板很容易打砖,电路板只能在电路板废弃之前多次处理.最简单的解决方案是不犯错误.能够创建测试和测试夹具,减少导致故障的人为错误.如果您无法管理自己的人为错误,那么您将如何减少与生产测试相关的人为错误?有能力和勇气捍卫和展示您对问题/解决方案/测试方法的信念.例如,这里是如何使下一张卡不可砖,每块板的成本是多少,以及在开发时间内节省多少以抵消该成本.
你的问题太开放,你的开放式问题的答案是你需要学习可以在或连接到pcboard的所有内容.你需要能够舒适地在最低级别编程.所以完全理解digikey,mouser等的每一个数据表都可以对这些部件,所有编译器等进行编程.如果你缩小问题,我们可以给出一个更容易理解的答案.
小智 3
学习使用微控制器的嵌入式系统设计将教您如何设计电路板并启动它。尝试访问http://www.avrfreaks.net/了解一些使用 Atmel AVR 的项目。还有http://www.sixca.com/、http://www.eevblog.com/和http://www.webring.org/hub/avr
确实,你的问题相当广泛,有很多方法可以学习这些东西,但这是我最初的方向,它对我来说效果很好。
| 归档时间: |
|
| 查看次数: |
19170 次 |
| 最近记录: |