[問題] ARM的SPI無法使用iowrite8()
各位先進好
我使用的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)
→
09/29 15:37, , 1F
09/29 15:37, 1F
→
09/29 15:38, , 2F
09/29 15:38, 2F
→
10/09 15:00, , 3F
10/09 15:00, 3F
→
10/09 15:01, , 4F
10/09 15:01, 4F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章