看板 Electronics 關於我們 聯絡資訊
大家好, 最近開始接觸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寫進去時也會發生此現象, 有時甚至會跑出亂碼。 想請問一下有大大知道這是什麼情況嗎? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.15.236 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1513011186.A.6DA.html
mmonkeyboyy: 是不是寫到某個位元就當掉? 12/21 21:27