Freezing_ 发表于 2011-7-7 22:28:20

关于nios II 11.0的学习心得 自学的费劲 希望大虾指教

自学nios II 11.0 比较费劲 遇到问题在网上搜索都没有几篇文章 只好自己摸索
最近发现在编译时出现函数未定义的错误 折腾了一天半终于知道初步的解决方法了 具体原因还是不知道 我把过程贴出来 希望有高人能解释一下
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655660YSHST4.jpg
(原文件名:1.jpg)
拿一个简单的例子来说
出现不能编译函数,不是头文件读取有错误
我摸索试验了好久,终于发现,是编译后如果移动了包含本身的函数的.c文件,而无法读取

就拿黑金开发板的lcd的例子来说
首先建立一个hello world为模板的工程
文件结构如图
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655661TS0HB6.jpg
(原文件名:2.jpg)

将hello_lcd.c改名为 main.c
编译后 文件结构
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655662CXDBBT.jpg
(原文件名:3.jpg)

现在我直接将需要的c文件和h文件都添加到主文件夹目录下,编译没问题
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655663H94NPM.jpg
(原文件名:4.jpg)

文件内容就是lcd例程中的代码
只是将../inc/sopc.h 改为了 sopc.h
将../inc/lcd.h 改为了lcd.h
编译通过 没有问题
如果我将两个.h文件挪个位置,因为我看到模板中把头文件都放在了xxx/drivers/inc/文件中
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655664IDCZ6B.jpg
(原文件名:5.jpg)

http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655665DDF16T.jpg
(原文件名:6.jpg)

http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655666SUI8RI.jpg
(原文件名:7.jpg)

这样编译都是没有问题的
经过观察发现主文件夹下有这个东西
包含了下面xxx/bsp/drivers/inc
所以我在main中直接#include “lcd.h”也是可以的,不用再次找路径
我想应该是这个原因吧
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655675HXZIN3.jpg
(原文件名:8.jpg)

但是接下来问题出现了
我吧lcd.c文件如果挪个地方呢? 因为我看到对应的c文件都放在了这个里面,我把lcd.c也放进来后,再次编译,问题出现
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655669MPRMMP.jpg
(原文件名:9.jpg)

http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655670FPKJAT.jpg
(原文件名:10.jpg)

再次挪回去后编译,问题依然存在,奇怪了,只是文件的移动,而且出问题之后移动到了原来的地方,再次编译却依然出问题
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655672G25IZO.jpg
(原文件名:11.jpg)

执行clean命令,再次编译,依然错误
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655673YZO2IE.jpg
(原文件名:12.jpg)

但是当我删除lcd.c后,编译,再次新建一个lcd.c,编译,问题便没有了
删除后必须编译,再次添加再编译问题才能解决,删除后如果不编译就添加了。C文件 问题依然存在

根据发现的这个特点,我试验了别的文件夹,都不能放进。C文件
只能放在main所在的那个主文件夹 hello_lcd 而不能放在 hello_lcd_bsp里面的任何一个文件夹

在hello_lcd中建立任意文件夹,将。C文件放进去也可以编译通过

编译的这个问题折腾了我一天半时间,不知道将.c文件移动后,再移动回去编译不通过算不算bug,还是我的文件本身就放的有问题,希望高手予以指正

不知道坛子里有多少用nios 11.0的 希望我们可以一起讨论一下

最后我想弱弱的问个问题 : 怎么在11.0中将程序直接下载到芯片里 我试了好几次都没有成功 具体怎么弄希望能有人帮我一下

yuphone 发表于 2011-7-7 23:37:45

http://www.cnblogs.com/yuphone/category/276816.html
NII SBTE和MDK的文件路径设置类似,熟悉了就很少错误喽。俺的水博跟你参考。


还有一点需要告诉你。11.0的JTAG驱动有问题。
http://www.cnblogs.com/yuphone/archive/2011/06/25/2090456.html

Freezing_ 发表于 2011-7-8 09:36:04

回复【1楼】yuphone.COM 缺氧®
-----------------------------------------------------------------------
jtag我试了可以的 但是怎么下载代码到芯片呢?

aozima 发表于 2011-7-8 09:46:32

你们搭工程从来不设置头文件搜索路径的?

rowen800 发表于 2011-7-9 08:39:26

我也正在学习呢

99309609 发表于 2011-12-27 14:31:07

我的也是11.0版的,nios死活也不能将程序下载到芯片去,但是直接用VHDL写的程序又能下载进去,快要崩溃,现在正在寻找9.0版的软件,无奈9.0的软件怎么也装不上

xinjie1023 发表于 2011-12-27 15:32:16

关注

M.lee 发表于 2012-9-5 21:42:38

我也遇到了 这个问题,也知道要设置路劲,但是就是没有找到在哪里设置。悲催

huatong 发表于 2012-9-5 23:16:54

M.lee 发表于 2012-9-5 21:42 static/image/common/back.gif
我也遇到了 这个问题,也知道要设置路劲,但是就是没有找到在哪里设置。悲催 ...

2楼的博客有一篇说明
见:http://www.cnblogs.com/yuphone/archive/2010/12/18/1909822.html

M.lee 发表于 2012-9-9 10:19:00

huatong 发表于 2012-9-5 23:16 static/image/common/back.gif
2楼的博客有一篇说明
见:http://www.cnblogs.com/yuphone/archive/2010/12/18/1909822.html

嗯 谢谢你,,问题已经解决了。

ctqvsly 发表于 2012-9-9 22:19:26

无数次的失败教训,让我不得不用9.0,发现至今是为止最好用的{:cry:}
页: [1]
查看完整版本: 关于nios II 11.0的学习心得 自学的费劲 希望大虾指教