极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20159|回复: 12

同样的代码,UNO/MEGA可以编译,DUE上不行

[复制链接]
发表于 2014-9-17 21:11:01 | 显示全部楼层 |阅读模式
如题,写的网络程序,只用到SPI.h 和 Ethernet.h两个library,在UNO/MEGA上面用的好好的,换成DUE之后,连编译都通不过,说是找不到ethernet.h文件,可是我用的是同一个IDE编译的呢!难道Ethernet.h不支持DUE吗?
回复

使用道具 举报

发表于 2014-9-18 09:37:59 | 显示全部楼层
架构不同,可能有些AVR专用的操作不能用于ARM架构上
回复 支持 反对

使用道具 举报

发表于 2014-9-18 10:27:10 | 显示全部楼层
DUE  跟 UNO / Mega 架構上分別比較大, 所以有些程式在 UNO / Mega 沒問題, 但在 DUE 上可能要作出一定的修改.

但如果你說的是找不到ethernet.h文件, 又是另一個問題了, 可能是你的設定上有問題.  選用 DUE 應該可以 complie Ethernet 庫的.
先試試 compile IDE 中的 Ethernet Example, 看看是否有問題吧.  可能只是你的程式某些地方出了問題.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-18 22:17:02 | 显示全部楼层
谢谢Super169,今天用arduino的IDE编译,看到了下面的提示,比之前用Visual Studio提示的找不到Ethernet.h有用多了。

WARNING: library Ethernet claims to run on [avr] architecture(s) and may be incompatible with your current board which runs on [sam] architecture(s).


用Ethernet自带的sample试验了一下,可以编译,但是没反应,回头仔细看看Ethernet的代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-18 22:20:05 | 显示全部楼层
吐槽一下,Arduino自带的IDE如同鸡肋,写复杂点的应用,尤其是要写到好几个class的时候,各种的不方便;可是各种第三方IDE,本来在原生的IDE上可以编译的代码,在第三方IDE上却没法编译
回复 支持 反对

使用道具 举报

发表于 2014-9-19 09:31:48 | 显示全部楼层
ardyPro 发表于 2014-9-18 22:17
谢谢Super169,今天用arduino的IDE编译,看到了下面的提示,比之前用Visual Studio提示的找不到Ethernet.h有 ...


不好意思, 由於我的 W5100 最近用在測試 物聯網, 所以我只測試過 compile 沒問題, 以為就可以了.

今晚有時間的話, 我嘗試完整一套測試一下, 看看是否有問題.

我之前也想過用 DUE 做收集器, 可惜有些傳感的庫, 不支援 DUE.
如果 DUE 可用完全兼容的話, 真的比 Mega 強得多, 速度快, 記憶體更是超大 (84MHz, 512KB flash 96KB SRAM vs 16MHz, 256KB flash, 8KB SRAM), 可惜就是兼容上有很大問題, 否則一定全力支持 DUE.  
回复 支持 反对

使用道具 举报

发表于 2014-9-19 09:48:33 | 显示全部楼层
由於手上沒有硬件, 只用 arduino IDE 測試, 選用 Arduino DUE compile 時, 並沒有你說的訊息.

我用的是 Arduino IDE 1.5.7, compile 程式 WebServer 及 WebClient 都沒有問題.

請問你是用那個版本的 Arduino IDE?
回复 支持 反对

使用道具 举报

发表于 2014-9-19 09:54:41 | 显示全部楼层
ardyPro 发表于 2014-9-18 22:20
吐槽一下,Arduino自带的IDE如同鸡肋,写复杂点的应用,尤其是要写到好几个class的时候,各种的不方便;可是 ...


stino 好像不支援 1.5.x, 除了 Arduino IDE 外, 也可以考慮用 Atmel Studio , 是用 Visual Studio 2010 的介面, 整體還算不錯.  如果願意多付一點購買完整版的 Visual Micro, 還可以進行 debug.

不過, Atmel Studio 對中文的支援不太好, 但如果沒需要中文的話, 真是不錯的介面....最少, 比 Arduino IDE 好得多了.
回复 支持 反对

使用道具 举报

发表于 2014-9-20 00:45:00 | 显示全部楼层
剛測試了, 用 Atmel Studio 6.2 + Arduino IDE 1.5.7

執行 Ethernet 庫中的 Example:  WebServer , 沒問題, 可以用 browser 連線.


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-23 19:01:00 | 显示全部楼层
本帖最后由 ardyPro 于 2014-9-23 19:02 编辑
Super169 发表于 2014-9-19 09:48
由於手上沒有硬件, 只用 arduino IDE 測試, 選用 Arduino DUE compile 時, 並沒有你說的訊息.

我用的是  ...


我用的是VS2012+VM插件,arduino ide是 1.5.6r2。

如果选择MEGA2560时,编译结果如下图所示:


如果选择的是DUE,则是这样:



就可以看出选DUE,就没法编译,而那个Ethernet库是存在的。

使用Arduino原生的IDE编译,选择DUE,提示信息就会多点,但最后还是可以正常编译的,虽然不确保可以正确运行{:soso_e113:} :


所有的代码使用的第三方类库只有 Ethernet 和 SPI两个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-23 19:11:15 | 显示全部楼层
我以前也用过ATMEL STUDIO+VM的方式,也遇到过问题,具体啥问题也忘了,后来就放弃了。你提到的这几个我都用过,大部分的问题就是刚开始好好的,用久了之后便出现我前面说的,在arduino里可以编译,但是在第三方IDE里却不行,可能是跟其它插件冲突。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-23 19:13:32 | 显示全部楼层
caiwenping 发表于 2014-9-18 09:37
架构不同,可能有些AVR专用的操作不能用于ARM架构上

Arduno自己的IDE编译时提到过,我也没在DUE上面使用Ethernet之类的东西,电平不同,没敢轻易试,DUE买来之后,就是测试房间里的灰尘到底有多大
回复 支持 反对

使用道具 举报

发表于 2014-9-23 23:33:35 | 显示全部楼层
ardyPro 发表于 2014-9-23 19:01
我用的是VS2012+VM插件,arduino ide是 1.5.6r2。

如果选择MEGA2560时,编译结果如下图所示:

我用的 IDE 是 1.5.7, 會不會有分別呢?  或者你可以試試更新 1.5.7 看看.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 20:39 , Processed in 0.042781 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表