在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 5303|回复: 1

[求助] MPC8308 localbus upm mode burst read 的问题

[复制链接]
发表于 2013-8-30 14:38:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位好:
我们用localbus接FPGA接设备,由于GPCM模式的速度太慢,所以想试用UPM模式,ram字应该是设置进去了,因为我用FPGA的仿真器可以看到对我使用的这个片选执行了16次的读操作,正是我ram字设的burst read 时序,但是下面我不知道bursr read 之后我应该怎么读取出总线上的数据?直接访问片选吗?可是我执行一次burst read 出16个读信号,这时候数到什么地方去了呢?事实上我现在run upm 之后一次都读不出来东西,upm恢复为normal模式就可以,哪位高人帮我看下下面的程序 谢谢!!!!!





  1. /* UPM Table Configuration Code */
  2. static unsigned long UpmTable[] =
  3. {
  4. 0xfffffc00, 0x0ffcfc00, 0x0ffcfc00, 0x0ffcfc00, //Words 0 to 3
  5. 0x0ffcfc00, 0x0ffcfc04, 0xfffffc00, 0xfffffc01, //Words 4 to 7
  6. 0xfffffc00, 0x0ffcfc80, 0x0ffcfc00, 0x0ffcfc00, //Words 8 to 11
  7. 0x0ffcfc00, 0x0ffcfc04, 0xfffffc00, 0xfffffc00, //Words 12 to 15
  8. 0xfffffc00, 0x0ffcfc00, 0x0ffcfc00, 0x0ffcfc00, //Words 16 to 19
  9. 0x0ffcfc00, 0x0ffcfc04, 0xfffffc80, 0xfffffc01, //Words 20 to 23
  10. 0xfffffc00, 0x0faffc00, 0x0faffc00, 0x0faffc00, //Words 24 to 27
  11. 0x0faffc00, 0x0faffc04, 0xfffffc00, 0xfffffc01, //Words 28 to 31
  12. 0xfffffc00, 0x0faffc80, 0x0faffc00, 0x0faffc00, //Words 32 to 35
  13. 0x0faffc00, 0x0faffc04, 0xfffffc00, 0xfffffc00, //Words 36 to 39
  14. 0xfffffc00, 0x0faffc00, 0x0faffc00, 0x0faffc00, //Words 40 to 43
  15. 0x0faffc00, 0x0faffc04, 0xfffffc80, 0xfffffc01, //Words 44 to 47
  16. 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc00, //Words 48 to 51
  17. 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc00, //Words 52 to 55
  18. 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01, //Words 56 to 59
  19. 0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01 //Words 60 to 63
  20. };

  21. void main()
  22. {

  23. int i=0;

  24. Ttest fpga;
  25. unsigned long j=0,temp=0;


  26. unsigned long mamr=0,mar=0;


  27. printf("Welcome to CodeWarrior!\r\n");


  28. system_call(); // generate a system call exception to demonstrate the ISR

  29. //setup upm
  30. *(volatile unsigned long *)0xe0005018 = 0xfa001881; //BR 0xfa201081
  31. j = *(volatile unsigned long *)0xe0005018;

  32. *(volatile unsigned long *)0xe000501C = 0xF0000000;; //OR 0xF0001000

  33. j = *(volatile unsigned long *)0xe000501C;



  34. /*
  35. * program UPM-A table
  36. */

  37. /* setup MAMR for sequential write to UPM-A RAM */
  38. *(volatile unsigned long *)0xe0005070 = 0x10000000;

  39. /* write 64 words to UPM-A RAM */
  40. for (i = 0; i < 64; i++) {
  41. //写入 MDR

  42. *(volatile unsigned long *)0xe0005070 = 0x10000000 | i;////gx

  43. *(unsigned long*)(0xe0005088)=UpmTable[i];


  44. if ( (*(unsigned long*)(0xe0005088)) != UpmTable[i])
  45. {
  46. return ;
  47. }

  48. //空写操作
  49. *(unsigned char*)(0xfa000000)=0x12345678;
  50. }

  51. /* restore MAMR */
  52. *(volatile unsigned long *)0xe0005070 = 0x00000000;
  53. while(1)
  54. {
  55. j=*(volatile unsigned long *)0xe0005070 ;
  56. if(j==0x0)
  57. {
  58. break;
  59. }
  60. }


  61. while (1)
  62. {
  63. *(volatile unsigned long *)0xe0005070 = 0x30000008;//工作模式 mamr run  8代表 upm ram words burst read 区域
  64. //空写操作
  65. *(unsigned char*)(0xfa000000)=0x12345678;

  66. mar = *(volatile unsigned long *)0xfa000080;//读不出来 ????????????????????????

  67. *(volatile unsigned long *)0xe0005070=0;//恢复normal模式

  68. mar = *(volatile unsigned long *)0xfa000080;//在这里就可以读出来
  69. } // loop forever
  70. }


复制代码
发表于 2016-9-19 17:09:54 | 显示全部楼层
你好,你的这个问题解决了吗,我目前也遇到相同的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-22 19:45 , Processed in 0.036444 second(s), 24 queries , Gzip On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表