AMP模式下共享内存通信的两种定义方法

为了在两个CPU之间交互(AMP: Asymmetric Multi Processing),设计0XFFFF0000所在的字节为两个CPU之间的交互中转站。关于具体的实现,有如下两个常用的方法:

1,库函数直接读写。注意设置该地址Memory禁用缓存cache,这样CPU能够及时读到该地址内存中变化的数据,Xil_SetTlbAttributes(0xFFFF0000,0x14de2);然后通过Xilinx提供的读写地址的库函数实现读写:Xil_Out8(0xFFFF0000,0x55);read_char = Xil_In8(0xFFFF0000);

2,通过固定地址指针操作。#define VAR_NAME (*(volatile unsigned char *)(0xFFFF0000)),注意该行程序的理解:中间的(volatile unsigned char *)的作用是强制类型转换,类型转换改变了后续连接主体的属性,改变后【等效于指向0xFFFF0000这个地址的一个存储内容易变化的字节的指针】。最左侧*代表“取指针指向内存位置的存储内容”。基础知识:变量的地址成为该变量的“指针”,这里的“指针”是加引号的,要成为真正的指针,还需要指向存储数据的类型信息。专门用来存放另一变量的地址(即指针)的变量,称为指针变量。

参考资料:

http://www.iot-online.com/IC/embedded/2017/030451088.html

https://forums.xilinx.com/t5/Xcell-Daily-Blog/Adam-Taylor-s-MicroZed-Chronicles-Part-50-AMP-and-the-Zynq-SoC-s/ba-p/521889

 

转载于:https://www.cnblogs.com/abolide/p/6905782.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值