最近在看6410的串口驱动,看得一头雾水,希望各位大侠传授点经验,这个方面应该怎么看,一般要看到什么程度?
有关mdd层和pdd层的驱动程序怎么处理?还是只要看BSP中的seriar的程序?
引用: 引用 2 楼 gooogleman 的回复:
6410?我也买一个来搞搞!
我看了你工作日志里的那篇《wince 2440串口驱动PDD分析》,6410的我看了一下,跟那个差不多,请问你当时这部分是怎么看过来的啊?
这个以我目前的能力,我根本就没有奢望自己写,就是想问问应该怎么来学习这一块,如果没有什么好办法就只有把MDD、PDD的驱动一起慢慢啃了
MDD还是比较复杂的,包含的内容太多了。不过只要楼主耐心去看,还是比较容易的。
PDD是和芯片相关的部分,不过流程都大同小异。
都沉下去了,还请前辈介绍介绍经验,我现在就是想知道一个大概的学习串口的方向
看代码。。。MDD是有点复杂。。不过你沉下心来。。画个流程图之类的就会很明白了。。。很多文档有将串口的。。。
再次问一下,有关串口的驱动程序是那些?
1.platform/smdk6410/src/drivers/serial文件夹里的
2.public/common/oak/drivers/serial文件夹里的
这两个文件夹里的驱动程序分别说的什么?我看MSDN上写的第一个是Serial port driver for the S3C2410X,那第二个又是什么,里面有好多。。。
找串口链接了什么lib,然后找到源码,、
搬到BSP下编译,调试,很快啥都会了。
TARGETLIBS=\
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
$(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\DriverLib.lib
SOURCELIBS=\
$(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\serpddcm.lib \
$(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\com_mdd2.lib
SOURCES= \
ser_smdk6410.cpp \
pdds3c6410_ser.cpp
这个是我上面第一个文件夹的sources文件中的,就只要看两个静态链接库中的源码吗?
看了三天的串口,总算摸出点门路出来,说出来请各位指正,看看正不正确:
多个串口的驱动程序共用相同的MDD层代码,位于PUBLIC\COMMON\OAK\DRIVERS\SERIAL\COM_MDD2目录下;在MDD和PDD之间还加进了PDD COMMON层,这层的代码就是位于PUBLIC\COMMON\OAK\DRIVERS\SERIAL\SERPDDCM下的cserpdd.cpp;还有就是BSP包中的PDD层代码。
MDD层代码用各个串口的端口序号来标识各个串口;PDD COMMON层的作用就是使多个PDD对象共享一个MDD,并可以保证MDD层代码不用做任何改动就可以移植适应所有硬件平台的串口;而PDD就是将各个串口封装成类,供MDD层代码调用。
不知以上是否正确,另再问一下,2410中UART1是当初始化调试串口用的,6410中是哪一个?