【整理】嵌入式开发经验和心得总结

硬件选型时需要根据所需的硬件资源情况去选择合适芯片

比如:

具备USB,CAN和以太网功能的PIC32微控制器系列

截图:

pic 32 protofolio hardware resources

就列出来了,不同芯片,所具体的不同资源:

是否有所需要的功能模块

以及部分功能模块的数量:根据需要选择满足你的需求的芯片

比如:

需要性能相对高的,所要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协议分析工具

即:

USB基础知识概论

其他一些USB测试和协议分析等软件

提到的:

“Ellisys的USB Explorer 260硬件,加上对应的USB软件Ellisys USB Analysis Software,实现USB数据抓包和分析”

和:

“Catalyst Enterprises公司的硬件,加上对应的软件SBAE USB,实现USB数据捕获和分析”

SBAE的效果可参见:

举例详解USB的枚举过程

现在又在:

http://www.zlgmcu.com/tools/LogicAnalyser/LA1032/LA1032-SD.pdf

中看到有个:

原始数据:

sd signal orgin

用(SD)协议分析工具分析后的结果:

after tool analysis sd signal meaning

很明显:

对应的物理的信号,在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寄存器(好像是)之类的。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量