使用SourceNavigator..要另外加入:
PUBLIC\COMMON\OAK\INC
PUBLIC\COMMON\OAK\DRIVERS\USBFN\CONTROLLER\MDD
呼叫最多次的就是IssueTransfer..
argument 有:
- pointer to pddContext
- Endpoint index
- pointer to Transfer
structure : Transfer 內的dwFlag是 transfer direction ? 另外有pddContext 中,每一個Endpoint有property : Dir,也是代表direction ..
InitEndpoint
argument 雖然很多,但是有用到的只有
- pointer to pddContext
- Endpoint index
- pointer to Endpoint Descriptor
設定MAX_PACKETSIZE。
呼叫ConfigEndpoint( )
查configuEndpoint只有這裡使用,why implement this funciton in another object ?設計方式很"奇妙"(em...),表面上是要將 interface,hardware,chip register 區分得很好。
整個code也沒有模組化得很好呀。不像是為了模組化所以將hardware(?)相關的部份分離出去..
但是,使用上卻又...
例如:將chip register operation 宣告在hardware 的class中的private part。
但是因為hardware class是一個static class,所以所有funciton 都可以經由class name直接呼叫。
連private part的function 也不例外...
既然如此,register operation 部份就獨立就好了,和必要在hardware class 中 ?
除非.. register class有要用到hardware class的property ....
加入MDD進入trace的話,變得好複雜..
原來每個Endpoint在MDD中是用一個Pipe來implement。
沒有留言:
張貼留言