szh__k 2024-05-28 11:02 采纳率: 28.6%
浏览 1
已结题

AHB协议相关问题请教

AHB协议中,有递增突发和回卷突发,请问回卷突发指的是在滴定的地址写数据吗?
例如:HSIZE为Word传输,HBURST为INCR4,第一个地址为0x34,则后续地址为0x38,0x3c,0x30,是指向0x34,0x38,0x3c,0x30这四个地址分别写8bit数据,还是向0x34打拍0x37写32bit数据,再将同样的32bit数据写入0x38-0x3b这样子?
请广大网友帮忙解答一下,感激不尽!

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-05-28 11:03
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    回卷突发指的是在达到地址空间的最高地址后,下一个地址会重新回到地址空间的最低地址开始继续传输数据。这种传输模式适用于环形缓存等应用场景。 对于题目中的例子,HBURST为INCR4表示递增突发,不是回卷突发。在递增突发模式下,每次传输数据的地址会按照HSIZE的大小来递增,且不会回卷到地址空间的最低地址。 因此,例子中的后续地址为0x38,0x3c,0x30,是指向0x34,0x38,0x3c这三个地址分别写32bit数据,而不是向0x34打拍0x37写32bit数据,再将同样的32bit数据写入0x38-0x3b等地址。示例代码如下:
    // 假设AHB总线的基地址为0x1000
    uint32_t* addr = (uint32_t*)0x1000 + 0x34/sizeof(uint32_t); // 指向地址0x34
    uint32_t data1 = 0x01234567;
    uint32_t data2 = 0x89abcdef;
    *addr++ = data1; // 将data1写入地址0x34
    *addr++ = data2; // 将data2写入地址0x38
    *addr++ = data1; // 将data1写入地址0x3c
    

    注意,这里假设AHB总线的基地址为0x1000,每次写入32bit数据,因此指针地址需要按照uint32_t类型来计算。实际情况中,具体的地址空间和数据类型会根据不同的硬件平台和应用场景而不同,具体使用时需要进行对应的调整。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月5日
  • 已采纳回答 5月28日
  • 创建了问题 5月28日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?