- 論壇徽章:
- 0
|
我在用RM9200的開發(fā)板, 在看一些驅(qū)動(dòng)例子的時(shí)候, 發(fā)現(xiàn)一些例子里面有兩種方法, 一個(gè)有 直接通過 芯片的外設(shè)地址初始化的,還有一種是通過映射來初始化的,請(qǐng)問這有什么區(qū)別呢???
例如
/* set PB12 output */
AT91_SYS->PIOB_PER |= GREEN_LED;
AT91_SYS->PIOB_OER |= GREEN_LED;
AT91_SYS->PIOB_CODR |= GREEN_LED;
另外一個(gè)方法是:
/* set PB12 output */
piob_base = ioremap_nocache(AT91C_BASE_PIOB, PIO_MEM_LEN);
writel (AT91C_PIO_PB12, piob_base + PIO_PER_OFF);
writel (AT91C_PIO_PB12, piob_base + PIO_OER_OFF);
一個(gè)是直接操作,一個(gè)通過映射IO 操作,這兩個(gè)有什么區(qū)別,哪個(gè)好呢??? 謝謝 |
|