原创 NIOS II开发学习体会和方法

2010-4-23 16:11 2078 6 6 分类: FPGA/CPLD
FPGA应用的热门,NIOS II系统的灵活性吸引了越来越多人来学习和使用,我们感到欢心鼓舞,论坛也越来越成为大家交流和学习的场所,要是大家能多提供自己的开发和学习方法,我们就可以成长的更快,我就说说自己的开发和学习体会,供大家笑谈,贻笑大方之处,还望海涵:)。

首先,我们必须明确:学习任何东西,只要具有一定的基础(我想来这个网站的人都具有这个基础:)更何况这个基础是可以逐步提高的)、付出艰辛努力、适当的方法都是可以学好的,有这样的认识,我保证你已经学会一半了。朋友之间有时在谈论:某某是高手啊,厉害厉害。于是大家附和:是啊是啊。被神秘化了,变的可望而不可及,我想神就是这样被造出来的,但是我们应该知道这样等于挡了前进的路,禁锢了我们的思维,千万不要把这些作为我们不去学的理由。我们应该努力去思考一下他到底NB在什么地方,列出个一二,不要被他背后的光环眩了眼,要明白吃的苦中苦、方为人上人,高手的背后不知道是多少汗水、苦恼和无奈的折中。所以你是可以学会任何东西的。
    第二,资料。要学习总不能做无米之炊嘛,找资料途径还是很多的,但首先必须去看软件本身的帮助(论坛里就有朋友说:哇原来这里有这么多资料拉,我读了十多年的英语终于有用武之地了:)),我想这里能解决一大半问题,一个小问题就是很多是英文的看这不如中文流畅,但这个不是问题,尤其是现在的大学生英语不成问题,更何况有金山词霸之类的工具软件,另外还有一点,单词都懂就是看不明白怎么办,有办法:书读千遍,其意自现。我英文很烂,资料上常有我注的音标和中文翻译,看不懂我就反复看,还有就是问,不耻下问(真正要做到这点也有难度哦)。第二个获取资料的途径是:提供商的网站(www.altera.com.cn),那里往往有丰富的资料范例等等,要经常去逛逛,做个有心人,逛多了,网站新增一个资料你都发现。第三个资料的来源就是我们的论坛:),论坛有个好处是互动,互通有无嘛。第四个资料来源是报刊杂志,有人会问:现在电子媒体这么便捷,你真是老土,还去花这个冤枉钱啊,这可你有所不知了,电子媒体信息是多,但太多了,好处变坏处,在信息的海洋里淹死,还不如少点信息(军迷都知道对付老美信息侦察的一个方法:就是多给他点信息,反正他们的超级计算机速度快),杂志的一个优点是:杂志里的信息是经过编辑人员整理的,是检索出来相对有价值的东西。第N个资料来源:遇到不管什么问题,先想好表述文字,在GOOGLE等搜索工具上搜它一遍,信息海洋就是大呀,这一网下去不能捞个大鲸鱼,总能网到点虾米什么的:),找资料的途径还有很多,十八般兵器尽管耍吧。
 第三,硬件和软件,要使FPGA工作的电路并不很复杂,但FPGA里面实现的电路可以很复杂,学习NIOS II要理清楚Quartus II,SOPC Builder,NIOS II IDE这三个软件的关系,明确他们具体做哪些事。跟NIOS II开发密切相关的一些文挡需要看一看,大体有NIOS II处理器手册,外设手册,软件开发手册,AVALONE总线规范,当然SOPC 使用使用手册也是必须的,最好能通读一遍QUARTUS II的手册,这些资料在 www.altera.com.cn中都有。
 第四,总体上把握NIOS II IDE开发的体系结构,学习中我们一般总钻在具体的实现上,某个功能如何实现等等,如果能爬的高一点整体上看看会很有好处,NIOS II目前的开发环境已经整合了C基础环境、UCOS II操作系统,LWIP网络协议栈。其实这个大环境和ARM的环境差不多,许多人都在ARM上实现了这个环境,移植过ARM上UCOS II和LWIP对学习NIOS II是直接相关的,唯一不同的是ARM环境需要Boot Load,在NIOS II中已经整合在编译系统中了,开发个简单的C,就具有boot load的功能了,而且重定位问题也已经解决了。
 第五,NIOS IIHAL里面的设备,因为NIOS II HAL整合了C的基础实现,所以它的设备管理类似于UNIX系统,如果熟悉LINUX/UNIX系统编程将有益于理解NIOS II HAL。对NIOS II HAL中的设备以前我做过一个分析,可以参考: www.pld.com.cn/blog/blog.asp?name=jhljs
 第六,充分利用NIOS II IDE中的程序生成摸板,NIOS II IDE中的底层驱动和自动生成的摸板程序都是开发源代码的,学习的最好对象我想就是这些代码了,其他的什么范例什么示例都没有这个好,唯一的缺点是用到的很多函数你要去理解或找资料。NIOS II IDE中使用了GNU GCC和NEWLIB库,熟悉LINUX的人可能会方便些。另外,对一些大型的软件系统(比如LINUX系统代码阅读),分析代码要借助于一些代码分析工具比如:SOURCE INSIGHT等等,用在NIOS II 的代码分析也很好,把/altera/kits/nios2/componet目录拷出来,在SOURCE INSIGHT软件中建项目,然后阅读,不要和自己过不去,阅读代码一定要借助代码分析工具:)。
 第七,综合应用能力,NIOS II的开发属于嵌入式开发范畴,但相比ARM等一些采用SOC芯片的开发又有了新的要求,NIOS II能自定义外设甚至指令,很自然的把HDL 编写的模块或者IP CORES集成到系统中来,这就要求一个人有比较综合的技能,首先要理解这样一个环境,在软件开发和调试时需要综合使用硬件设计的能力、软件设计的能力,两者互相配合调试往往会使问题得到比较好的解决。有这么一个锻炼人的舞台,来吧,都练练:)
 第八,压力、动力和机遇。前几天在朋友的一个公司和他们的硬件开发人员介绍NIOS II的相关开发环境,他们的硬件人员发感慨:现在公司业务很忙,更本没有时间去接触这些新的东西。是啊,本身业务繁忙,一周加班八天,那有时间学习这些啊。是的,现在中国社会谁的压力都大,我就常常失眠,做梦的时候都是程序或资料,咪咪忽忽的总有个问题没解决,为此辗转反侧。现实告诉我们,只有不断吸收新技术才能在市场上立足,创新能力是企业盈利的根本保证。所以我告诉他们无论如何要吸收一些新的开发方式,新的开发技术。如果你是在校大学生一定要多练兵,学习开发技能,综合能力。

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条