/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: 错误: 赋值运算的左操作数必须是左值的更多相关文章

  1. Vc6.0 编译发生致命链接错误 :不能打开exe的文件

    错误: fatal error LNK1104: cannot open file "Debug/CeshiToolBar1.exe" 解决方法:打开任务管理器,找到对应的exe应 ...

  2. 全志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 ...

  3. android7.0 编译问题及解决【转】

    本文转载自:http://blog.csdn.net/zhangmingbao2016/article/details/52699182 注意:Linux操作系统上编译Android 7.0必须使用o ...

  4. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录

    已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...

  5. Valgrind 3.11.0编译安装

    Valgrind 3.11.0编译安装 Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind遵守GNU通用公共许可证条款,是一款自由软件. 到3.3.0版本为 ...

  6. VC6.0编译boost

    今天学习了下VC6.0下boost的编译,只是对regex进行了编译,据说全部编译需要2个多小时,在此记录下学习过程中遇到的问题以便今后查看. 最开始直接从网上(www.boost.org)下载了当前 ...

  7. hadoop2.1.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  8. hadoop2.1.0和hadoop2.2.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  9. varnish 4.0编译安装小记

    varnish 4.0 编译问题 centos-6.5 x86环境 装varnish遇到几个错误要先安装python-docutils然后提示error1,于是安装:libedit-devel然后提示 ...

随机推荐

  1. 【转载】 Searching过程粗略梳理

    转载自:http://www.cnblogs.com/huangfox/archive/2012/02/09/2344686.html solr-searching过程分析(一) --searchin ...

  2. spring3+hibernate3+(dbcp+oracle+拦截器事务配置)整合(一)

    1.applicationContext-base.xml文件 <?xml version="1.0" encoding="UTF-8"?>< ...

  3. [XMPP]iOS聊天软件学习笔记[二]

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  4. oc语言--description方法和sel

    一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象方法) 使用NSLog和@%输出某个对象时, ...

  5. 折腾gnome3.4

    1.平埔式窗口管理器shellshape 刚开始用都是登录时默认为gnome classic,主要是希望有任务栏,但是为了在这种模式,gnome扩展都没有用了. 而我又在使用shellshape -- ...

  6. 刺猬大作战(游戏引擎用Free Pascal写成,GUI用C++写成,使用SDL和Qt4)

    游戏特性[编辑] 游戏引擎用Free Pascal写成,GUI用C++写成,使用SDL和Qt4[2]. 0.9.12开始支持实时动态缩放游戏画面. 个性化[编辑] 刺猬大作战有着高度定制性 游戏模式: ...

  7. HtmlTextNode & HtmlCommentNode

    在HtmlAgilityPack里,HtmlTextNode对应的是文本节点.这是一个非常简单的一个类,方法和字段都比较少. 一.属性 override string InnerHtml { get; ...

  8. loadlibrary(xxx.dll) 失败 返回14001 由于应用程序配置不正确 应用程序未能启动.重新安装应用程序可能会纠正这个问 .

    欢迎大家拍砖! 一.应用背景 有一个在win7中用VS2008编译成功,运行正常的程序:Exe+DLL; 放到XP虚拟镜像上运行却提示:LoadLibrary返回14001. (1) 后来采用了下面方 ...

  9. tangible T4 Editor 2.2.3 plus modeling tools for VS 2012 扩展名

    tangible T4 Editor 2.2.3 plus modeling tools for VS 2012 扩展名 tangible T4 Editor 2.2.3 plus modeling ...

  10. 如何把apache和nginx 加入到系统服务,用service 命令来控制启动、停止

    1 把apache 加入到系统服务,即用service 命令来控制Apache 启动.停止  如果Linux服务器上默认安装了httpd的话(用rpm -qa|grep httpd查看),那你就可以用 ...