DM3730 x-loader 分析 三

来源:互联网 发布:知乎 中国外交手段 编辑:程序博客网 时间:2024/05/02 04:38

跳过sr32

继续分析下面的代码,CUP的管脚复用


这一部分是配置管脚复用,以第853行为例展开

MUX_VAL(CP(SDRC_D0),(IEN  | PTD | DIS | M0)) /*SDRC_D0*/\

 CP(SDRC_D0)
        =CP(CONTROL_PADCONF_SDRC_D0) /*字符替换*/


        =0x0030 /*宏定义,此处与ds中的偏移地址对应*/

IEN  | PTD | DIS | M0 = 1《8 | 0《4 | 0《3| 0

MUX_VAL(CP(SDRC_D0),(IEN  | PTD | DIS | M0)) /*SDRC_D0*/\

=MUX_VAL(0x0030,1《8 | 0《4 | 0《3| 0)

__raw_writew((VALUE), OMAP34XX_CTRL_BASE + (OFFSET))
                   =(1《8 | 0《4 | 0《3| 0, OMAP34XX_CTRL_BASE + 0x0030)
                   =(1《8 | 0《4 | 0《3| 0, OMAP34XX_L4_IO_BASE+0x2000 + 0x0030)
                   =(1《8 | 0《4 | 0《3| 0, 0x48000000+0x2000 + 0x0030)
                   =(0000 0000 1000 0000, 0x48002030)

/*

最终把0000 0000 1000 0000这个值写入0x48002030这个地址,对应CONTROL_PADCONF_X这个寄存器,具体写入值的意义可以参考sprugn4r.pdf的2557页

第8位INPUT ENABLE 设置为1=IEN,第4位PULL TYPE SELECET 设置为0=PTD

第3位PULL UDENABLE设置为0=DIS,第012位MUX MODE设置为000=M0

*/




这段就是执行上面的宏定义

0 0
原创粉丝点击