MCU

NIOS II开发学习体会和方法

0
阅读(3261)

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的相关开发环境,他们的硬件人员发感慨:现在公司业务很忙,更本没有时间去接触这些新的东西。是啊,本身业务繁 忙,一周加班八天,那有时间学习这些啊。是的,现在中国社会谁的压力都大,我就常常失眠,做梦的时候都是程序或资料,咪咪忽忽的总有个问题没解决,为此辗 转反侧。现实告诉我们,只有不断吸收新技术才能在市场上立足,创新能力是企业盈利的根本保证。所以我告诉他们无论如何要吸收一些新的开发方式,新的开发技 术。如果你是在校大学生一定要多练兵,学习开发技能,综合能力。