- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
uCI i nux在Nios II嵌入式平台上的移植研究
Nios II嵌入式处理器
广告插播信息
维库最新热卖芯片:74HCT244D UPC8106T-E3 GL386 SPW20N60C3 EPM5032PC-20
LX8385-00CDD OP27FJ ACS4025S MPC603RRX200LCXC4008E-2P0208C
Nios II是运行在FPGA上的五级流水线、单指令的RISC处理器,它专门针对Altera 的可编程逻辑器件及片上可编程的设计思想做了相应的优化。作为一种可配置的精减的 RISC处理器,它可以与用户自定义逻辑结合构成SOPC系统,并下载到Altera的可编程 器件中。32位的Nios II软核,结合外部闪存以及大容量存储器,可以构成一个功能强大 的32位嵌入式处理器系统。此外,利用Altera提供的IDE (Integrated development environment)开发工具可以方便的在调试模式下调试处理器,提高开发的速度。
作者使用Cyclone II版Nios II应用开发板NIOS?DEVKIT?2C35作为移植实现的 平台,开发板主要包括Cyclone II EP2C35器件、EPM7128AE CPLD配置控制逻辑、存 储器、串行配置连接器、FPGA和CPLD的JTAG接口等。
移植
uClinux嵌入式操作系统
uClinux是Linux的一个嵌入式版本,它经过小型化改造,形成了一个高度优化、代 码紧凑的嵌入式Linux,并保留了 Linux的大多数优点。最新的26版本在内核主体中加 入了提高中断性能和调度响应时间的改进,其中有三个最显著的改进:釆用可抢占内核、 更加有效的调度算法以及同步性的提高。
uClinux操作系统的移植
uClinux源代码绝大部分都是使用的C语言,只有那些直接与处理其硬件相关的代码 如开关CPU中断等操作才采用汇编语言编写,因此uClinux具有很好的移植性。一般来说, uClinux的移植大致分为三类:
结构层次的移植。如果待移植的处理器结构不同于任何已经支持的处理器结构,则 需要修改linux/arch忖录下的相关处理器结构的文件。uClinux内核代码的大部分是独立 于处理器和其体系结构的,但是其最底层的代码也是特定于各个系统的。他们的中断处理上 下文、内存维护、任务上下文和初始化过程都是独特的。对一个新型的体系,其下层程序 可以模仿与其相似的体系程序编写。
平台层次的移植。待移植处理器是某种uClinux已支持体系的分支处理器,即如果 待移植的处理器是基于Nios II内核的,而Nios II内核已经被uClinux支持,则需要在相 关体系结构目录platform下建立相应目录并编写相应代码,这些代码主要是跟踪程序(实 现用户程序到内核函数的接口等功能)、中断控制调度程序和内存初始化程序等。
3)板级移植。如果所用处理器(如Cyclone II版本系列)己经被uClinux支持的话, 就只需要板级移植了。板级移植需要修改或添加linux/arch/Nios2nommu/scripts目录 中的文件,该目录中主要是与具体硬件平台相关的配置,可以利用Nios II自带的SOPC Builder软件生成具体平台对应的配置文件。
对于uClinux已经支持的硬件架构,移植的过程相对较为简单,主要考虑修改与硬件 开发平台相关的具体因素,如内存大小、外围设备的配置等。一般现在做的大部分移植都是 平台层次移植和板级移植。
initramfs 文件系统
作者使用的uClinux 2.6操作系统中,用initramfs文件系统取代了以前的romfs文 件系统。
romfs文件系统。romfs文件系统是在uClinux 2.4以及之前版本广泛用到的文件 系统,这种文件系统相对于一般的ext2/ext3文件系统要求更少的空间。romfs文件系统 不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟RAM盘的方法进行处理 (RAM盘釆用ext2/ext3文件系统)。
initramfs文件系统[2]3 initramfs是在2.5版本内核中引入的技术,它的基本思想 是:在内核镜像屮附加一个cpio包,cpio包屮包含了一个小型的文件系统,当内核启动 时,内核将cpio包解开,并且将其中包含的文件系统作为初始的根文件系统,内核中的一 部分初始化代码会放到这个文件系统中作为用户层进程来执行。这样带来的明显的好处是 精简了内核的初始化代码,例如寻找真正的启动盘、启动时的网络安装、ACPI的安装等, 这些代码都可以从内核中移出,把它们都转移到用户空间完成,这样使得开发者在用户层 就可以定制自己的启动过程,而不需要去修改内核代码,使定制启动过程变得更加容易。
开发环
文档评论(0)