ecos3.0编译 if_lancepci.c:528: 错误: 赋值运算的左操作数必须是左值
/home/xin/ecos3/ecos-3.0/packages/devs/eth/amd/lancepci/v3_0/src/if_lancepci.c:528: 错误: 赋值运算的左操作数必须是左值
vi /home/xin/ecos3/ecos-3.0/packages/devs/eth/amd/lancepci/v3_0/src/if_lancepci.c
for (i = ; i < cpd->rx_ring_cnt; i++) {
HAL_PCI_CPU_TO_BUS(d, (cyg_uint8 *)b);
_SU32(p, LANCE_RD_PTR) = (b & LANCE_RD_PTR_MASK) | LANCE_RD_PTR_OWN;
_SU16(p, LANCE_RD_BLEN) = (-_BUF_SIZE);
p += LANCE_RD_SIZE;
d += _BUF_SIZE;
}
分别定义为
~/ecos3/ecos-3.0/packages/devs/eth/i386/pc/lancepci/v3_0/include$vi devs_eth_i386_pc_lancepci.inl
#define HAL_PCI_CPU_TO_BUS(__cpu_addr, __bus_addr) \
CYG_MACRO_START \
(__bus_addr) = CYGARC_PHYSICAL_ADDRESS(__cpu_addr); \
CYG_MACRO_END
#endif // __WANT_CONFIG
457行b的定义
cyg_uint32 b;
以上函数中红色字体将被替换为
(cyg_uint8 *)b = CYGARC_PHYSICAL_ADDRESS(cpd->rx_ring);
而强制转换放在等号的左边是不被编译器支持的,正常的做法是放到选号的右边,我想不到什么好的办法能比较方便的把放到右边,所以我就把强制转换去掉了,因为把 uint_32 的变量赋值给 uint_8* 应该是没有什么问题的,所以就把for中的代码改成为
HAL_PCI_CPU_TO_BUS(d, b);
修改方式:
vi打开文件使用%s/(cyg_uint8 \*)b/b/g
保存关闭后,查看修改结果
grep "(cyg_uint8 \*)b" *
无任何显示表示都被替换成功
这样可以顺利编译通过。
参考资料:
http://blog.csdn.net/easonxiang/article/details/4794297
ecos3.0编译 if_lancepci.c:528: 错误: 赋值运算的左操作数必须是左值的更多相关文章
- Vc6.0 编译发生致命链接错误 :不能打开exe的文件
错误: fatal error LNK1104: cannot open file "Debug/CeshiToolBar1.exe" 解决方法:打开任务管理器,找到对应的exe应 ...
- 全志tina v3.0系统编译时的时间错误的解决(全志SDK的维护BUG)
全志tina v3.0系统编译时的时间错误的解决(全志SDK的维护BUG) 2018/6/13 15:52 版本:V1.0 开发板:SC3817R SDK:tina v3.0 1.01原始编译全志r1 ...
- android7.0 编译问题及解决【转】
本文转载自:http://blog.csdn.net/zhangmingbao2016/article/details/52699182 注意:Linux操作系统上编译Android 7.0必须使用o ...
- ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...
- Valgrind 3.11.0编译安装
Valgrind 3.11.0编译安装 Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind遵守GNU通用公共许可证条款,是一款自由软件. 到3.3.0版本为 ...
- VC6.0编译boost
今天学习了下VC6.0下boost的编译,只是对regex进行了编译,据说全部编译需要2个多小时,在此记录下学习过程中遇到的问题以便今后查看. 最开始直接从网上(www.boost.org)下载了当前 ...
- hadoop2.1.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- hadoop2.1.0和hadoop2.2.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- varnish 4.0编译安装小记
varnish 4.0 编译问题 centos-6.5 x86环境 装varnish遇到几个错误要先安装python-docutils然后提示error1,于是安装:libedit-devel然后提示 ...
随机推荐
- [C++程序设计]有默认参数的函数
实参与形参的结合是从左至右顺序进行的.因此指定默认值的参数必须放在形参表列中的最右端,否 则出错.例如: void f1(float a,int b=0,int c,char d=′a′); //不正 ...
- python3.4+selenium爬58同城(一)
爬取http://bj.58.com/pbdn/0/pn2/中除转转.推广商品以外的产品信息,因为转转和推广的详情信息不规范,需要另外写一个方法存放,后期补上,详情页如下 这周学习了爬虫,但是遇到一些 ...
- centos 6.5 安装 redis
下载软件: wget wget http://download.redis.io/releases/redis-2.8.7.tar.gz 2.解压软件并编译安装: tar -zxvf redis-2. ...
- Gson的简单使用
package test; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.uti ...
- C# ref_out_params方法的参数_4种类型的参数
之前学习C#没有做笔记的习惯,因此有些基础上的东西并没有很好地整理起来,虽然这些东西比较常用,因此也没什么影响,但总觉得不整理一下感觉老是有种陌生感.今天特别整理一下C#4种类型的参数. 一.按值传递 ...
- winform datagridview 添加行号。
private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { private ...
- Farming
Problem Description You have a big farm, and you want to grow vegetables in it. You're too lazy to s ...
- linux查看CPU高速缓存(cache)信息
一.Linux下查看CPU Cache级数,每级大小 dmesg | grep cache 实例结果如下: 二.查看Cache的关联方式 在 /sys/devices/system/cpu/中查看相应 ...
- sun.misc.BASE64Encoder找不到包,解决方法
右键项目->属性->java bulid path->jre System Library->access rules->resolution选择accessible,以 ...
- hdu1573X问题(不互素的中国剩余定理)
X问题 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...