看板 LinuxDev 關於我們 聯絡資訊
各位先進好 我使用的kernel是 2.6.14 為什麼使用iowrite8()去寫入值到SPCON這類型暫存器時 之後去使用mdelay() 最後利用ioread8()讀取時都是0x00 對了, 我有先使用ioremap()把物理位址應射到虛擬位址 這邊都是ok的,沒出錯 最後補充一下 同樣動作我對GPIO暫存器讀寫都很正常 唯獨在SPI就怪怪的 麻煩各位了,謝謝 我把部分程式碼貼上來,讓大家看看那邊有問題 以下是照者執行順序所貼上的 static void __iomem *s3c2410_SPI_base; . . . if (request_mem_region(0x59000020, 0x59000034 - 0x59000020 +1 ,"s3c2410-spi") == NULL) goto error; s3c2410_SPI_base = ioremap(0x59000020, 0x59000034 - 0x59000020 +1 ); if (s3c2410_SPI_base == NULL) goto error; . . . gpgcon &= 0xffff033f; gpgcon |= 0x0000fcc0; iowrite32(gpgcon,S3C2410_GPGCON); udelay(10); printk("GPGCON = %x \n",ioread32(S3C2410_GPGCON));//這邊有印出正確的值 gpgup &= (0xff00); gpgup |= 0x0088; iowrite16(gpgup,S3C2410_GPGUP); udelay(10); printk("GPGUP = %x \n",ioread16(S3C2410_GPGUP));//這邊也ok . . . iowrite8(0xc1,s3c2410_SPI_base+S3C2410_SPCON); mdelay(1); printk("SPCON = 0x%x \n",ioread8(s3c2410_SPI_base+S3C2410_SPCON)); 但是印出來的都是0x00 這邊就搞不懂了,為什麼會這樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.90.208 ※ 編輯: Smile365Day 來自: 219.87.77.101 (09/28 10:54)
mefuck:你在做SPI的printk時, 下面同樣在多複製幾行printk()看有沒 09/29 15:37
mefuck:有其他數據跑出來 09/29 15:38
Smile365Day:已經加上mdelay()就是怕她有延遲時間,但還是不行 10/09 15:00
Smile365Day:我想應該是跟2.6.14版本有關西吧...此版並沒有spi 10/09 15:01