硬件选型时需要根据所需的硬件资源情况去选择合适芯片
比如:
截图:
就列出来了,不同芯片,所具体的不同资源:
是否有所需要的功能模块
以及部分功能模块的数量:根据需要选择满足你的需求的芯片
比如:
需要性能相对高的,所要CPU的频率相对高 -> 才能流畅的跑很多复杂的,资源消耗多的应用
其他比如,
SPI等接口的个数,决定了,你如果外接某些设备,比如SPI的Wifi芯片,至少占用1个SPI接口,
如果还有其他的模块需要SPI接口,则需要考虑SPI接口总数是否够用
类似的,还有
I2C
UART
等其他接口
都需要根据自己的实际需求,决定所需要的接口的个数,是否够用
另外还有类似的DMA:
有些Nand Flash,SD卡等模块,为了提高数据传输速度,则可以用DMA来实现
所以,如果系统中Nand Flash,SD卡,都需要DMA,那么此时至少需要2个DMA通道
所以,需要选择DMA通道个数大于2的芯片
注:
关于DMA,不了解的可参考:
详解ARM的AMBA设备中的DMA设备PL08X的Linux驱动
开启MMU导致UART无输出
详见:
协议分析工具很方便很强大 -> 有机会还是多多利用协议分析工具 -> 提高工作效率
比如之前的,就见过USB协议分析工具
即:
中
提到的:
“Ellisys的USB Explorer 260硬件,加上对应的USB软件Ellisys USB Analysis Software,实现USB数据抓包和分析”
和:
“Catalyst Enterprises公司的硬件,加上对应的软件SBAE USB,实现USB数据捕获和分析”
SBAE的效果可参见:
现在又在:
http://www.zlgmcu.com/tools/LogicAnalyser/LA1032/LA1032-SD.pdf
中看到有个:
原始数据:
用(SD)协议分析工具分析后的结果:
很明显:
对应的物理的信号,在SD协议中所表示的含义
不用你手动一点点的,很笨的去分析了
人家的分析工具,就直接帮你分析好了
相对来说,算是极大的提高了工作效率。
所以,有机会,有条件(毕竟有些协议没有这么好的分析工具,或者即使有未必是免费,未必你能得到该工具)的话,
还是好好利用工具,提高做事情的效率。
嵌入式系统中,从底层硬件到上层软件之间的逻辑层次和映射关系
嵌入式教程,关于嵌入式硬件,尤其是嵌入式开发,尤其是上面的CPU:
从底层硬件实体,到上层软件层面的抽象,到底是如何映射的
抽空写教程,详细介绍
此处,先简要介绍一下:
1.找个开发板,真正的截图,能清晰的显示,开发板上面的CPU是什么芯片
2.找个对应或类似CPU芯片的,物理排版图,BOM图,能否显示出,片内的RAM,CPU核心,外围设备的,那种图
3。然后说明,CPU部分,片内RAM等部分,对应的逻辑抽象,分别叫做什么
4.然后再去对照着,对应芯片的datasheet,找到对应的芯片参数表,对应着CPU core,多少Hz,什么核心的,
比如ARM核的片内RAM,比如128K,等等内容
5.最后,其实,CPU内部的架构,再详细剖析一下
包括CPU内部是对应的ALU,寄存器,等等
6.然后再去提到,相关的:
CPU内部指令执行,分别3部,5步,之类的,比如取指,译指,执行,写回等等
包括内部寄存器,分为几种类型,比如arm的shadow寄存器,在某些FIP等特殊情况下,无需保存现场,而直接实现中断时快速跳转等功能
7.然后ALU的话,内部原理是如何实现的,主要是硬件的门电路gate等实现的
8.对于门电路,再往下分,最后就是对应的与非门,逻辑与,逻辑或等等门电路了。
9.而对于门电路,物理硬件的实现,好像也是有多种可能的。
具体需要再去学习硬件电路基础知识中提到的那个教程:http://www.play-hookey.com/,才能具体解释清楚的。
10.再往下,好像就是:晶体二极管,三极管了。
都是这些晶体管,慢慢的组合,构成不同的逻辑电路的,包括什么D寄存器,K寄存器(好像是)之类的。
转载请注明:在路上 » 【整理】嵌入式开发经验和心得总结