Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1150958
  • 博文数量: 173
  • 博客积分: 4048
  • 博客等级:
  • 技术积分: 2679
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-12 18:53
文章分类

全部博文(173)

文章存档

2018年(1)

2016年(1)

2013年(1)

2012年(118)

2011年(52)

分类: 嵌入式

2011-03-22 14:17:38

在nios ide中用int型数组访问外设时,可以不用在硬件程序中特殊处理address。尽管c程序编译结果访问的地址都为4的倍数,但address线直接忽略地址低2位,因此address线仍是连续的。
c程序如下:
  1. #include
  2. #include

  3. int main()
  4. {
  5. int *data=ADCONTROLLER_0_BASE;
  6. int i;

  7. for(i=0; i<1024; i++)
  8. {
  9. printf("%x\n",&data[i]);
  10. }

  11. printf("Hello from Nios II!\n");

  12. return 0;
  13. }
verilog程序如下:
  1. always@(posedge clk)
  2. begin
  3. if(chipselect && read)
  4. begin
  5. if(buffer[address][13])
  6. begin
  7. readdata[31:14]=~18'b0;
  8. readdata[13:0]=buffer[address][13:0];
  9. end
  10. else
  11. readdata=buffer[address];
  12. end
  13. end
阅读(1480) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~