→ mmonkeyboyy: 是不是寫到某個位元就當掉? 12/21 21:27
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.15.236
※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1513011186.A.6DA.html
大家好,
最近開始接觸FPGA,使用Terasic DE0開發板,
然後用SOPC builder和 Nios ii 處理器對板子上的SDRAM做R/W的動作。
我的C程式碼很簡單,
就是對一個address寫一個固定值進去,
然後再把這個address的值讀出來看看有沒有寫成功。
程式碼大概如下(所有用到的變數都是unsigned int):
while(1)
{
scanf("%d",&i); // enter 1/0 for write/read
scanf("%d",&offset); //enter address offset
if(i)
{
scanf("%d", &data);// enter data to be written
IOWR(SDRAM_BASE, offset, data);
}
else
{
printf("%d", IORD(SDRAM_BASE, offset));
}
}
所以我的動作就是一開始按1,然後給一個offset值跟data值,
之後按0看看剛剛輸入的值有沒有正確讀出。
可是測試的結果是offset值在0~7之間一切都是正常的,
當變成8時程式就會當掉。
我後來發現不一定是8, 在某些不固定的address寫進去時也會發生此現象,
有時甚至會跑出亂碼。
想請問一下有大大知道這是什麼情況嗎?
感謝!
--