求解一个编译问题

2019-07-20 22:13发布

如图所示:
程序是 QQ图片20160514103124.png 可是一直报错,芯片是用f429的,库那些都更新了,问题还是存在,请问有问自己这是什么问题吗?图不太清楚 ,附加有
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
zdfwyh
1楼-- · 2019-07-21 03:53
我看了,你程序没贴全,差点注意不到,你明显是在static union 中定义变量,这是结构形式定义,是虚的,怎么可以指定地址?只有实例才可以指定地址.而且union前面怎么能加static,正常是不应该加的,不过你没贴全,不知道你是不是直接定义了实例,所以也不好妄判是错误的.你C要好好在学学了.

unino a{
unsigned char a;
unsigned char b[100];//这里是没有地址的,不能指定地址
};
union a  b[100]  __attribute__((at(0X68000000)));        //这里才可以指定地址
FantaSy_
2楼-- · 2019-07-21 07:46
at指令有错吧???
小卿
3楼-- · 2019-07-21 09:47
FantaSy_ 发表于 2016-5-14 11:21
at指令有错吧???

不清楚 因为没用过at,程序是公司的,我只是从公司电脑拿过来,在KEIL版本4放到版本5上,版本4是报错(说版本4建立不了太大的HEX),移到自己电脑版本5就报这个错了
小卿
4楼-- · 2019-07-21 14:49
zdfwyh 发表于 2016-5-14 19:13
我看了,你程序没贴全,差点注意不到,你明显是在static union 中定义变量,这是结构形式定义,是虚的,怎么可以 ...

这个工程师公司里的工程师给的 ,他说之前是可以编译的,没有报错的。对于那个赋地址的语句不太敢肯定,结构体太少用到了,所以一开始也不知道是哪里有问题
zdfwyh
5楼-- · 2019-07-21 18:18
那句错误的意思就是"at"属性不能用在这里
原来程序在哪也不可能编译通过
xinxian
6楼-- · 2019-07-21 18:24
强制的地址是d06??
在手册的59页,我简单看了一下,好像没有这个地址啊……你这个是虚拟的地址还是怎么样

一周热门 更多>