中易网

请问#pragma DATA_ALIGN有什么作用?

答案:2  悬赏:80  
解决时间 2021-04-26 20:03
下面是我在EDMA的一个例程中摘录的几句话:#pragma DATA_ALIGN(ping,128);#pragma DATA_ALIGN(pong,128);#pragma DATA_ALIGN(outbuff,128);我一直不明白#pragma DATA_ALIGN有什么作用。我在书上看是这样介绍的:“#pragma DATA_ALIGN(symbol,constant); DATA_ALIGN指令排列symbol到constant定义的边界上”请问这样有什么作用?这个constant应该怎么选择呢?
最佳答案
设定变量的地址对齐方式。
比如:
int abc;
#pragma DATA_ALIGN(abc, 128)
那么编译时一定会把abc变量的地址安排在128字节对齐的位置上,也即abc地址的低7位一定为0,
又比如
char efd;
#prgma DATA_ALIGN(efd, 8)
那么编译时一定会把efd变量的地址安排在8字节对齐的位置上,也即efd地址的低3位一定为0。
pragma DATA_ALIGN是非常有用的,也经常使用的。
全部回答
#pragma data_align( rxdata_stream, 128)就是让rxdata_stream地址的末尾7位是0(二进制地址),就是128字节对齐。对齐的目的,一般是位了cache读写外存。如果一个cache的line是128字节。这样,如果数据128字节对齐,那么取一个128字节的数据,只使用一个cache行就够了。具体的可以看ti 的cache文档。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
窗口最大化最小化问题
QQ秀出现异常
宏达汽车装饰中心这个地址在什么地方,我要处
读卫校是不是很辛苦??
我爱覃恋 求一诗 速度啊 朋友们
为什么我家CSol 老说什么非法程序检测 哪位高
600x320x490尺寸鱼缸养多少条鱼
psp有那些牌子的比较好啊?价位都如何?
当把鼠标放在一个位置时迅雷总是有个图标在旁
真品酱大骨(后江埭路分店)在哪里啊,我有事要
把 错爱 设计成网名
商人见到铅笔推销员可怜,就给了他一元钱,后
我想要神奇肥料
帮看下哪个配置比较好,个人偏向intel
西东庄村地址在哪,我要去那里办事
推荐资讯
一件事给我的启示作文
人怎样去发掘潜能?
春华别院怎么去啊,有知道地址的么
字谜:河北中心粮高产(字1)
水瓶座 这三个字的繁体字是?
我要问一首歌,里面的歌词好像有少年愁这几个
用一句不超过十个字的话 来形容祖国 你会怎么
喝酒前吃胃药有用吗?
我要玩极品飞车13哪个显卡好?
爸爸姓栗妈妈姓张女儿名字叫什么名字好听?
人在太阳下能有几个影子?
魔兽世界法师从64升到70是做任务快还是去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?