联系我们
    插件电感_大电流电感
热门搜索
点击排行
推荐电感
推荐阅读
推荐电感
推荐电感
猜猜你喜欢的
行业知识 您所在的位置: 电感 > 行业知识

基于μClinux的 SoPC应用系统设计

来源:    作者:    发布时间:2015-08-02 06:08:49    浏览量:

[Linux Developer]…μClinux/:make clean_target
[Linux Developer]…μClinux/:make romfs
然后键入以下命令:
[Linux Developer]…μClinux/:nios-run romdisk.flash
即将romdisk.flash文件下载到目标板上,完成μClinux的根文件系统的加载。
2.1.3 加载应用程序
用 户应用程序可通过target目录加载到根文件系统中,可根据需要重建romdisk映像。应用程序在userland目录下,编译生成运行文件后拷贝到 target目录树中,并根据target目录的内容创建romdisk.flash文件。新建一个应用程序,首先打开一个 LinuxDeveloperBash窗,在userland目录中创建一个目录app,应用程序源文件存放在此目录中,然后在 userland/app/中建立一个makefile文件。
Makefile内容如下所示,其中appfile为应用程序名。
STACKSlZE=8192
include../../Rules.mak
all:appfile.relocbflt
SOURCES=appfile.c
install:
$(ROMFSINST)appfile.reloebfh
$(ROMFSDIR)/bin/appfile$(EXECSUFFIX)
clean:
rm-f *.[iods]core appfile appfile.*elf appfile.*bflt
运 行make对应用程序进行编译并修改userland/.eonfig和/userland/Makefile文件。在userland/.config 文件中,增加一行CONFIG_MY_APP=y,在userland/Makefile文件中,增加 dir_$(CONFIG_MY_APP)+=app,进入userland子目录,运行make,即可将应用程序安装到userland/bin中,并 根据userland/.config文件中相应变量的指示将应用程序二进制拷贝到target目录中。
最后,键入以下命令重新构建romdisk映像文件(romdisk.flash),并下载到目标板上。

[Linux Developer]…uClinux/:make clean_target

[Linux Developer]…uClinux/:make romfs

[Linux Developer]…uClinux/:nios-run romdisk.flash
2.1.4 运行μClinux

完成μClinux内核及文件系统的装载后,即可运行μClinux。键入g800000(800000为启动代码地址,在SoPC Builder中设置),μ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所示)和串口接收线程(流程图如图7所示)间共用环形缓冲区uartrv_netsd_buf。串口发送线程和网络接收线程共用环形缓冲区netrv_uartsd_buf。两线程间的关系和处理类似网络发送线程和串口接收线程。




3 系统测试
完成转换器的软硬件设计后,按如图8所示,连接系统进行转换器数据的传输测试。在PC机A上运行串口收发程序,而在PC机B上运行以太网收发程序,经测试后数据传输无误。

通信连接器的分类及应用 4月08日 第三届·无线通信技术研讨会 立即报名 12月04日 2015•第二届中国IoT大会 精彩回顾 10月30日ETF•智能硬件开发技术培训会 精彩回顾 10月23日ETF•第三届 消费

【拓普微智能显示模块测评】1.开箱体验【拓普微智能显示模块测评】1.开箱体验[复制链接]本帖最后由annysky2012于2021-10-2622:56编辑心心念念的智能显示屏终于到了,首先感谢管管和厂家的信任给予机会。  HMT070ETD-1D的是带电容触摸的7寸智能显示模块,支持网络更新界面,以及通过互联网控制、查询TFT显示状态,可以说功能非常强大,申请显示屏的还有一个吸引我的就是互联网控制和访问,支持脚本lua,这个就非常无敌了。 在我使用的串口屏中北京迪文的用的非常多,有一个非常不友好的

双目三维定位的视频运动 检测控制系统设计 目前,视频运动控制卡的研究已经成为热点。本文针对TI公司的视频高速处理芯片TMS320DM642,设计了对目标物体进行视频实时跟踪的运动控制卡。笔者希望通过本文分享DM642平台应用中的一些经验。1

大电流电感
 
在线客服