欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于nios和μClinux的嵌入式系统设计.docx

    • 资源ID:17774870       资源大小:19.38KB        全文页数:9页
    • 资源格式: DOCX        下载积分:15.18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15.18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于nios和μClinux的嵌入式系统设计.docx

    基于nios和Clinux的嵌入式系统设计caojing导语:嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操纵系统以及用户应用程序四局部组成,其开展主要表达在芯片技术的进步上,以及在芯片技术限制下的算法与软件的进步上。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操纵系统以及用户应用程序四局部组成,其开展主要表达在芯片技术的进步上,以及在芯片技术限制下的算法与软件的进步上。随着芯片制造技术的开展,嵌入式系统的构造也随之发生了重大变革,从基于微处理器的嵌入式系统到基于微控制器的嵌入式系统,继而将可编程逻辑pldprogrammablelogicdevice技术引入到嵌入式系统设计中,进而又开展到socsystemonchip,最终将pld与嵌入式处理器结合而成为sopcsystemonprogrammablechip,使得sopc成为嵌入式系统设计的一个开展趋势。本文采用sopc内嵌32位的软核处理器nios,实现了一个uart串行口和以太网接口的转换器以下简称转换器,并基于microtronix公司针对nios处理器移植的Clinux开发了应用程序其系统构造如图l所示。1基于sopc的嵌入式硬件平台构建不同于基于处理器或者控制器及soc的嵌入式系统,基于sopc的嵌入式系统具有可配置的特点,不会包括任何专用外设,而是可根据需要灵敏地在一片fpga中构造外设接口。基于sopc的嵌入式系统主要由1片核心芯片sopc和片外器件,以及一些相关的接口设备组成。本文所要实现的转换器采用altera公司的cyclone芯片及外围电路组成,其中外围电路包括2片512kb的sram、l片8mb的flash、uart电子转换器和1片以太网控制器lan91c111。系统电路框图如图2所示。sopc芯片内嵌软核处理器nios。在sopc芯片中,除了cpu外,可配片上rom、内部定时器、uart串行口、sram、flash接口等系统部件。这些部件均以可编程逻辑部件的形式实现,芯片内部部件构造图如图3所示。cpu和所有部件通过avalon总线连接在一起。sopc芯片内系统模块和avalon总线模块均由sopcbuilder工具自动生成,利用qualtusii集成开发环境可实现芯片内的逻辑设计及其引脚定义。经编译生成后缀为.sof的硬件映像文件,通过byteblasterii线缆下载到目的板的cyclone芯片中,或者将.sof文件转换成.flash文件,下载到目的板的flash中。这样就完成了转换器的硬件设计。2基于clinux的sopc应用程序开发应用程序的开发可在硬件平台上直接进展,但需理解所有硬件部件的细节,并编写相应的驱动子程序,其软件设计难度及工作量大,且可移植性差。基于嵌入式操纵系统的应用程序,其所有的硬件细节均对用户屏蔽。对硬件进展直接控制的底层驱动程序均封装在操纵系统内,通过设备驱动程序接口来完成,用户只需在高层通过操纵系统所提供的系统调用进展编程。clinux是针对控制领域的嵌入式linux操纵系统,合适如nios处理器等不具备内存治理单元mmu的微处理器微控制器。基于操纵系统进展开发,需将操纵系统加载到硬件平台中,clinux可以以部件的形式集成到sopc系统中。2.1加载clinux系统的步骤将clinux加载到sopc目的板上时需提供一个穿插编译环境,硬件要求具有一个串口的pc工作站、基于nios处理器的sopc目的板和byteblastermv线缆等。软件需求windowsntv4.0、windows2000或者windowsxp、alteranios开发包ndk3.0中所提供的niosgnupro工具、aheranios开发包所提供的cygwin安装,以及quartusii可编程逻辑开发工具v2.2等。2.1.1创立和装载内核映像创立和装载clinux映像文件在linuxdeveloperbash环境下进展,首先需按以下步骤配置和构建内核。linuxdeveloperclinux:cdlinuxlinuxdeveloperlinux:makexconfiglinuxdeveloperlinux:makecleanlinuxdeveloper1inux:makedeplinuxdeveloperlinux:makelinuxdeveloperclinux:makelinux.flash生成的linux.flash文件即为clinux内核映像。当sopc目的板加电,片内rom中的germs监控程序运行后,在linuxdeveloperclinux:下键入nios-runlinux.flash,即下载linux.flash文件到目的板上,完成内核映像的加载。2.1.2创立和装载根文件系统除了装载内核外,还需装载根文件系统。Clinux采用romfs文件系统,这种文件系统相对于一般的ext2文件系统要求更少空间。在主机上linux的target目录表示在clinux下的根root目录。当前的脚本和工具可将target目录转换成映像文件romdisk.flash,按如下步骤创立:linuxdeveloperclinux:makeclean_targetlinuxdeveloperclinux:makeromfs然后键入以下命令:linuxdeveloperclinux:nios-runromdisk.flash即将romdisk.flash文件下载到目的板上,完成clinux的根文件系统的加载。2.1.3加载应用程序用户应用程序可通过target目录加载到根文件系统中,可根据需要重建romdisk映像。应用程序在userland目录下,编译生成运行文件后拷贝到target目录树中,并根据target目录的内容创立romdisk.flash文件。新建一个应用程序,首先翻开一个linuxdeveloperbash窗,在userland目录中创立一个目录app,应用程序源文件存放在此目录中,然后在userlandapp中建立一个makefile文件。makefile内容如下所示,其中appfile为应用程序名。stackslze="8192"include.rules.makall:appfile.relocbfltsources="appfile".cinstall:$romfsinstappfile.reloebfh$romfsdirbinappfile$execsuffixclean:rm-f.iodscoreappfileappfile.elfappfile.bflt运行make对应用程序进展编译并修改userlandeonfig和userlandmakefile文件。在userlandconfig文件中,增加一行config_my_app=y,在userlandmakefile文件中,增加dir_$config_my_app+=app,进入userland子目录,运行make,即可将应用程序安装到userlandbin中,并根据userlandconfig文件中相应变量的指示将应用程序二进制拷贝到target目录中。最后,键入以下命令重新构建romdisk映像文件romdisk.flash,并下载到目的板上。linuxdeveloperuclinux:makeclean_targetlinuxdeveloperuclinux:makeromfslinuxdeveloperuclinux:nios-runromdisk.flash2.1.4运行clinux完成clinux内核及文件系统的装载后,即可运行clinux。键入g800000800000为启动代码地址,在sopcbuilder中设置,clinux自动完成初始化经过,用户输入登录用户名nios,密码clinux,出现clinux的提示符#,表示已进入clinux运行环境。2.2转换器应用程序的实现转换器应用系统主要完成网络接口和串行接口间的数据传输,所传输的数据流如图4所示。clinux操纵系统中提供了网络驱动程序和串口驱动程序,并提供了多线程的支持。转换器应用系统中的串口收发数据和网络口收发数据是异步进展的,可分别作为一个任务来对待,任务间是并发的,因此可采用多线程程序设计技术来实现多任务间的并发执行,系统主程序流程图如图5所示。在此应用系统中有4个任务,分别创立4个线程:网络接收线程、网络发送线程、串口接收线程和串口发送线程。这4个线程可并发执行因网络速度与串口速度存在着差异,需设置相应的缓冲区来对收发数据进展缓冲。在此应用系统中设置两个环形缓冲区,如图4所示,其中nctrv_uartsd_buf用于接收网络数据,供存储从网络口接收的数据,然后串口从此缓冲区中取出数据发送。另一缓冲区uartrv_netsd_bur用于接收串口数据,然后网络口取出此缓冲区中数据发送出去。线程间需实现互相通讯和同步,共用缓冲区既要互斥执行又要同步执行,其操纵遵循消费者和消费者模型。线程间的互斥操纵采用互斥锁mu-tex来实现。线程间的同步通过设置两个指针来实现,一个是读指针,另一个是写指针,写指针指向队头,初始化为0,读指针指向队尾,初始化为bufsize-1。当写数据时,比拟读写指针是否相等,一样那么写线程阻塞;不相等,那么写入数据,然后将写指针加1。当读数据时,读指针加1,然后比拟读写指针是否相等,相等那么读线程阻塞;不相等,那么读出数据。网络发送线程流程图如图6所示和串口接收线程间共用环形缓冲区uartrv_netsd_buf。串口发送线程和网络接收线程共用环形缓冲区netrv_uartsd_buf。两线程间的关系和处理类似网络发送线程和串口接收线程。3系统测试完成转换器的软硬件设计后,按如图7所示,连接系统进展转换器数据的传输测试。在pc机a上运行串口收发程序,而在pc机b上运行以太网收发程序,经测试后数据传输无误。0

    注意事项

    本文(基于nios和μClinux的嵌入式系统设计.docx)为本站会员(安***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开