精华内容
下载资源
问答
  • 国产嵌入式实时操作系统ReWorks应用及开发,介绍reworks的开发环境,介绍reworks的bsp,介绍reworks的驱动开发。
  • ReWorks/ReDe是中国电子科技集团第32所(华东计算技术研究所)自主研制的嵌入式实时操作系统和集成开发环境
  • ReWorks实时操作系统核心功能分析.pptx
  • 为实现SD卡在ReWorks平台上的数据存取,本文以S3C2440为处理器研究了基于SD总线模式的SD卡初始化过程和读/写过程,并根据ReWorks系统关键数据结构和建立块设备的工作流程,在ReWorks系统平台上实现了的SD模式下的SD...
  • 引言  SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,...SD卡用于ReWorks嵌入式系统,必须要开发相应的驱动程序。  1 S
  • ReWorks?嵌入式实时操作系统和?ReDe?嵌入式软件开发环境 1?引言 嵌入式系统与软件是发展先进制造业和现代服务业满足高端数 字化应用对网络自适应服务个性化功能综合化以及功能复杂化等 需求的重要技术保障 随着...
  • 国产嵌入式实时操作系统Reworks全接触 作者:蒋祥刚 邮编:200233 地址:上海市桂林路418号 华东计算技术研究所操作系统部 Email:jiangxg@ecios.net Homepage:http://www.ecios.net  1 Reworks介绍 ReWorks/Re...

    国产嵌入式实时操作系统Reworks全接触 

    作者:蒋祥刚

    邮编:200233

    地址:上海市桂林路418号 华东计算技术研究所操作系统部

    Email:jiangxg@ecios.net

    Homepage:http://www.ecios.net

     

    1  Reworks介绍

    ReWorks/ReDe是中国电子科技集团32所(华东计算技术研究所)自主研制的嵌入式实时操作系统和集成开发环境(软件著作权登记:软著登字第011682号,软件产品登记测试:软测字第T20030431-DB01号,软件产品登记:沪DGX-2003-0283,上海市计算机软件评测重点实验室进行的软件技术测试:Y20040201-JB01)。

    ReWorks/ReDe产品是一个实时嵌入式系统开发与运行平台,含:

    ?        兼容于VxWorks的嵌入式实时操作系统

    ?        集设计/开发/调试/仿真于一体的集成开发环境

    ?        实时中间件

    该平台可以适用于多种目标硬件环境(x86、PowerPC),也可以适应不同的系统规模,其最小配置小于100K。

    ReWorks的技术特点有:

    ?        自主研制,具有全面、持续的技术支持能力

    ReWorks由32所基于“九五”、“十五”的技术成果自行研制,拥有全部的源代码,没有安全隐患。经过长期研发,32所已经形成了一支操作系统研究与产品开发的技术专家与骨干队伍,对实时嵌入式操作系统内核、集成开发环境、实时中间件、图形用户界面等的核心技术有全面的技术支持能力。

    ?        实时嵌入式操作系统

    实时嵌入式操作系统采用先进的面向对象和微内核技术开发,具有强实时性、可裁剪性和可伸缩性,并特别提供了VxWorks兼容层。具体特点有:

    ?           微内核、可裁剪、可扩充:最小配置小于100K

    ?           强实时性:响应时间15微秒

    ?           VxWorks兼容:应用源代码级、驱动目标级兼容

    ?           任务管理:支持优先级抢占和轮转调度算法

    ?           任务间通信:消息队列、事件、信号量和异步信号

    ?           支持区域和分区内存管理机制

    ?           文件系统:兼容MS-DOS文件系统

    ?           支持微秒级高精度时钟

    ?           支持速率单调管理机制

    ?           网络协议:TCP、UDP、IP、ICMP、ARP等

    ?           符合POSIX 1003.1B 实时扩展标准

    ?           支持用户扩展管理

    ?        集成开发环境

    集成开发环境提供用户友好的界面,实现了从设计、开发、调试、仿真到下载、运行的完整功能。集成开发环境具有开放性,支持与第三方CASE工具Rhapsody的无缝集成。具体特点有:

    ?           开发平台:Windows NT/2000/XP

    ?           支持C/C++ 交叉编译

    ?           提供可视化系统配置工具、项目管理工具

    ?           支持源代码级远程调试,可在线显示任务、内存、寄存器、变量等信息

    ?           支持指令级目标仿真,可在宿主机上直接运行目标代码

    ?           集成第三方CASE工具,支持UML建模

    ?        实时嵌入式中间件

    实时嵌入式中间件位于应用和操作系统之间,屏蔽了操作系统、网络协议等的不同。基于实时嵌入式中间件,可以针对不同的应用需求提供预先开发的应用支撑服务,供上层的应用开发使用。具体特点有:

    ?           符合实时和嵌入式CORBA规范

    ?           支持与通用系统的互连、互通和互操作

    ?           对用户屏蔽硬件、网络环境、嵌入式操作系统、编程语言的差异

    ?           支持软件组件的定位、自动发现、自动引导

    ?           提供实时监控服务接口

    ?           支持应用组件即插即用与系统重构,保障系统可靠性

    ?        图形用户界面

    随着应用产品的不断发展,嵌入式系统对图形用户界面的要求越来越高,需要有快速、轻量级、高质量的图形用户界面系统。ReWorks实现了一种有特色的图形用户界面系统。具体特点有:

    ?           提供“所见即所得”的快速图形用户开发工具

    ?           图形控件可扩充

    ?           支持高分辨率图形显示(16位增强色)

    ?           支持多种中文输入法

    ?           支持中文点阵/矢量字体显示

    ?           支持基于FrameBuffer 的图形显示加速

    ?           编程接口符合Windows、X-Window规范

     

    2  Reworks应用开发模式

    ReWorks实时嵌入式操作系统提供与VxWorks兼容的接口,在应用层实现源代码级兼容,在驱动层实现目标代码级兼容,便于现有应用系统的移植和二次开发,并可充分利用原有的应用系统,减少用户改用ReWorks操作系统的工作量。原有应用系统移植流程如下图所示:

     

    ReWorks实时嵌入式操作系统不但支持以直接编写代码方式来开发应用系统,还支持与第三方CASE工具的无缝对接。用户可以通过UML模型的建立、分析、仿真、验证来进行系统的顶层设计,确保模型与应用需求的一致,并利用自动生成的代码构建应用系统,提高系统的可靠性。应用开发流程如下图所示:

     

    3  集成开发环境ReDe

    基于XML的核心配置工具

    ReWorks采用微内核技术,具有高度可裁剪性和可配置性。开发者能够根据自己的应用程序需要,而不是根据操作系统的需要,来分配稀少的内存资源,生成从需要几K内存的深嵌入系统到需要更多功能的复杂的高端实时系统。用户能根据应用的需要对系统进行配置或定制,对操作系统的核心及其组件进行配置,使系统达到最优化。例如,如果应用程序不需要某些功能模块,就可以将它移出ANSI C运行库;如果应用程序不需要某些特定的内核同步对象,这些对象也可以忽略。还有,TCP、UDP、套接口和标准Berkeley服务也可以根据需要将之移出或移入网络协议栈。

    ReDe采用XML对系统可配置组件进行描述,包括文件系统、任务通信、接口规范(ReWorks、POSIX、VxWorks)、外围设备组件、网络组件、图形组件、开发工具配置项、中间件、第三方软件工具等。

    工程管理工具

    工程管理工具包括文件管理、资源管理、类分析器。其中文件管理采用树状结构,支持c、cpp、idl、java、asm等多种源文件,支持obj、a等多种目标文件。和核心配置工具相结合能够自动生成与设定的工程配置相对应的makefile。这使得开发小组能把精力集中在应用系统的设计上,摆脱了烦琐的源代码控制工作。同时,单独的组件可以各自独立开发,然后由小组的其他成员共享和重用。

    资源管理提供图形开发模板,包括单窗口、多窗口、图标等资源,方便用户开发图形应用。

    类分析器对工程内包含的全部程序代码进行分析,产生C/C++类成员的列表,用户可通过该列表在源代码中迅速定位类成员的声明、实现。

    编辑工具

    语法敏感的编辑器,支持c、cpp、idl、java、asm等多种源文件,能用不同的颜色和字体标注出不同的语法结构,能即时显示函数模板,实现代码的智能化自动完成,并提供在线帮助。

    编辑器中包含了一组辅助工具,如编程助手和书签。专门设计的编程助手能够自动产生C语言结构,从而减少了程序员的编辑工作;当程序量比较大时,还可以在源程序的行上设置书签,以方便查找和定位。

    编辑工具还支持错误的自动定位。当编译报错时,在编译器输出的错误信息双击,编辑器能将光标自动定位到源代码错误位置。

    编译工具

    对流行的GNU编译环境进行改造和集成,支持船舶电子、信息家电等应用领域目标板的交叉编译,如XScale、Arm 、PowerPC等。编译环境包括汇编、C、C++、Java交叉编译器,链接器, 库管理器, 目标文件格式转换工具等等其他实用工具。

    调试工具

    中文的图形界面,支持多种源代码(C/C++/汇编/混合),支持源码或汇编程序一级的单步、多步执行,设置断点,查看和修改局部和全局变量、寄存器、内存,任务,查看栈层次关系。支持串口、网络、JTAG、BDM等调试接口。支持远程调试、仿真调试、任务级和系统级调试。

    目标系统仿真器

    允许开发者可以在没有BSP(板级支持包:Board Support Package)、目标机硬件的情况下,使用目标系统仿真器迅速开始开发工作。通过在宿主机上实现目标机的虚拟运行环境,支持指令级仿真,实现包括汉字、各种分辨率下的图形仿真,支持硬盘映像以及软盘映像,支持键盘、鼠标、时钟、网络仿真,支持仿真调试。应用开发完后,可直接移植到目标平台上。

    诊断分析工具

    通过诊断分析工具,开发者能监视独立的目标系统对象,如任务、信号灯、消息队列、内存分区、定时器、模块、变量、堆栈等。这些显示根据开发者的选择进行周期性或条件性更新。

    诊断分析工具还提供了事后分析失败原因的手段。开发者能通过分析当时的目标系统对象来分析失败原因,从而迅速找到关键问题所在,并帮助开发者理解程序的特定行为产生的原因,以求找到解决问题的最好方法。

    诊断分析工具还能发现系统的运行瓶颈,指导用户改变应用实现结构,提高系统整体性能.

    同时,通过系统资源的使用与监控,及早发现应用集成过程中的资源或端口冲突问题.

    第三方软件工具集成

    通过开放的接口,集成第三方实时软件建模工具、软件配置管理工具和测试工具,为实时嵌入式软件开发提供全过程的支持。

    实时软件建模工具采用UML语言、Use Case图、状态图、时序图等对应用需求进行建模,通过模型仿真进行验证,并自动生成代码,为实时嵌入式软件开发提供顶层设计手段。

    软件配置管理工具为实时嵌入式软件提供版本管理、变更控制等功能,支持团队协同开发。

    测试工具通过对代码插桩,动态提取应用程序运行信息,加以分析后找出系统缺陷,测试覆盖率和质量指标,为应用系统的验证、测试、评价提供帮助。

     

    4  广阔的应用前景

    我国信息化与全面小康社会建设对嵌入式系统市场提出巨大需求,信息家电产品年需求量几亿台,每一类数字化家电产品都有千万台市场需求量,工业控制用嵌入式系统有百十万台套需求量,商用嵌入式系统需求量几百万台。我国已有集成电路及扳级产品的大批量生产能力,出口的嵌入式应用产品亦将逐步增长,在全球市场也可占有一席之地。

    在这样的市场环境下,华东计算技术研究所推出的自主知识产权的嵌入式实时操作系统Reworks一定有着广阔的应用前景。该系统已经成功应用于船舶电子、车载导航等项目。

     

    转自:http://blog.csdn.net/jiangfei/article/details/35405

    展开全文
  • 一、实验环境及目的 ...实验目的:掌握ZYNQ PL端的开发流程,创建自定义IP的方法,在ReWorks下利用该IP对RTC进行访问。 黑金给出的实验是如何创建自定义IP,但是并没有对代码进行解读,可能对于FPGA会的...

    一、实验环境及目的

    板卡:AX7010

    Vivado版本:2017.4

    开发机:I5  2.2GHZ  8GB  WIN7_X64

    参考文档:《ALINX黑金ZYNQ7000开发平台配套教程》

    实验目的:掌握ZYNQ PL端的开发流程,创建自定义IP的方法,在ReWorks下利用该IP对RTC进行访问。

    黑金给出的实验是如何创建自定义IP,但是并没有对代码进行解读,可能对于FPGA会的人比较简单,但是我还是想看看IP核里面具体的实现代码,然后访问控制也是在sdk下去做的,这里我在自己的国产RTOS——ReWorks下,进行驱动。

     

    二、ReWorks介绍

    ReWorks是中国电子科技集团有限公司第三十二研究所自主研制的嵌入式实时操作系统,目前已经广泛应用于国防军工,轨道交通和工业控制等领域,具有以下特性:

    (1)  强实时性

    ReWorks的内核可抢占,中断可嵌套,具有快速响应的中断管理机制和高效的任务调度、上下文切换算法,提供优先级继承、优先级天花板协议,系统调度可预测。

    (2)  可裁剪性

    ReWorks采用微内核的体系结构和面向对象的设计方法,提供组件化的内核服务,最大限度提高内核的可裁剪性。

    (3)  适用性

    ReWorks支持多种主流的CPU/DSP芯片和硬件体系结构,提供典型的设备驱动。支持应用的动态加/卸载,并提供丰富的面向领域的外围组件,如通信、CLDC/MIDP、图形组件等,满足军民应用需求。

    (4)  标准化

    ReWorks支持C/C++,提供符合POSIX 1003.13-2003/POSIX 1003.1-2001规范的系统调用接口,保障应用的可移植性。

    (5)  可靠性

    ReWorks提供基于MMU的存储域保护机制,支持用户态模式下的设备驱动管理,实现故障监测、隔离和恢复框架,防止用户应用程序的故障导致系统崩溃,增强了系统的可靠性。

    (6)  可扩展性

    ReWorks提供核心扩展接口,支持包含驱动在内的组件动态插拔,支持调度算法的注入与动态配置,提高系统可维护性。

    (7)  易用性

    配套的ReDe开发环境集设计、开发、配置、调试、仿真、测试、运行、部署为一体,方便用户使用,提高了应用开发效率。

    (8)  可持续性

    ReWorks拥有可控的源代码,具备优秀的维护和升级能力,部分集成组件及子系统源自开放源码,与相关组织同步发展。

    ReWorks是一个高可靠、强实时嵌入式实时操作系统,采用微内核及组件技术,能根据应用需要对操作系统内核进行配置、裁剪、扩展与定制,具备较强的伸缩能力。

    ReWorks的体系结构如图2‑1所示。

     

    图2‑1 ReWorks体系结构

    ReWorks嵌入式实时操作系统包括以下功能模块:

    (1)  核心模块

    提供基本的操作系统功能,包括任务管理、异常/中断管理、时钟/定时器管理、内存管理、信号量管理、消息队列、管理信号管理、事件管理、错误管理,为了兼容和移植的需要,ReWorks提供了VxWorks兼容接口,ReWorks接口(包括符合Posix规范的接口和扩展功能接口)。

    (2)  总线和驱动模块

    支持X86/ARM/PowerPC/龙芯/DSP/ZYNQ处理器,提供串口、中断、鼠标、键等字符设备、硬盘、U盘、SD卡、FLASH等存储设备、网络设备、图形设备以及包括PCI、USB协议等在内的主流硬件设备驱动或总线适配。

    (3)  扩展模块

    包括:

    1)  I/O模块:对上层应用程序提供统一的接口,支持对硬件设备的统一访问;

    2)  动态加卸模块:支持库的动态加载和卸载,实现软件功能构件的在线装载与卸载;

    3)  文件系统:提供文件系统基本框架,支持根文件系统,能够挂接多种文件系统;提供高可靠文件系统支持掉电保护,防止系统崩溃,对系统中的元数据和用户数据提供保存和保护功能;

    4)  网络协议栈:支持TCP、UDP、IP、ICMP、ARP等网络协议,提供标准BSD socket编程接口;

    5)  图形系统:提供了图形引擎的基本操作,包括画线、画/填充矩形、画/填充多边形、区域拷贝、图像显示、字体显示、设置颜色、输入设备事件处理等,提供丰富图形控件,支持用户界面的开发。

    三、创建自定义IP

    1.创建vivado工程

    工程名称为user_ip_rtc

    选择RTL project,勾选Do not specify sources at this time,后面我们自己添加源文件

     

    选择开发板型号,然后点击next ,点击finish完成,如下图:

    2.创建block design

    如下图,双击zynq7000的ip,配置ddr的型号及uart的io,如下图:

    3.创建自定义IP

    3.1 ax7010的rtc

    可以看到RTC是接到PL端的,搜索原理图发现在bank34和bank35的IO上,这里跟后面的IO约束文件有关系。具体芯片型号是常用的DS1302,外接32768khz的晶振,如果有电池,可以一直时间tick。一般来说没有做过FPGA的,对I2C的了解就是通过CPU自带的I2C控制器对芯片进行访问,控制SDA和SCL两个线,还有一个RST信号。这里自定义IP,我理解的是根据DS1302的读写时序,用IO进行模拟,其实也可以用PS的GPIO进行模拟,这是目前我理解的,具体的需要看下IP的代码是如何实现的。

    3.2创建自定义IP

    tools->create and package new ip,选择创建新的axi4 ip,如下图:

    修改ip名称和存放位置,其余ip的版本和描述也可以自行修改,下一步,选择创建的ip的名称,axi的类型,数据宽度和寄存器数量,如下图:

    这里有几个要搞清楚一下,第一个是axi接口的种类,这里为什么选择Lite,我看axi的种类有lite ,full和stream三种,《手册》解释具体如下:

    AXI-Lite
    具有轻量级,结极简单的特点,适合小批量数据、简单控制场合。不支持批量传输,读写时一次叧能读写一个字(32bit)。 主要用亍访问一些低速外设和外设的控刢。
    AXI4
    接口和 AXI-Lite 差丌多,叧是增加了一种功能就是批量传输,可以连续对一片地址迕行一次性读写。 也就是说具有数据读写的burst 功能。上面两种均采用内存映射控制方式,即 ARM 将用户自定义 IP 编入某一地址进行访问,读写时就像在读写自己片内 RAM,编程也很方便,开发难度较低。代价就是资源占用过多,需要额外的读地址线、写地址线、读数据线、写数据线、写应答线这些信号线。
    AXI-Stream
    返是一种连续流接口,不需要地址线(很像 FIFO,一直读或者一直写就行)。对于这类 IP,ARM 不能通过上面的内存映射方式控制(FIFO 根本没有地址的概念),必项有一个转换装置,例如 AXI-DMA 模块来实现内存映射到流式接口的转换。 AXI-Stream 适用的场合有很多:视频流处理;通信协议转换;数字信号处理;无线通信等。其本质都是针对数值流构建的数据通
    路,从信源(例如 ARM 内存、 DMA、无线接收前端等)到信宿(例如 HDMI 显示器、 高速AD 音频输出等)构建起连续的数据流,特别接口适合做实时信号处理。这里I2C的接口属于简单的低速总线,所以选择axi_lite即可,寄存器的位宽和axi的类型匹配。

    点击next,finish,ip的创建完成,下一步是edit。

    3.3 edit ip

    点击IP catalog,在user ip目录下,axi4 peripheral下,可以看到创建的自定义IP,如下图:

    右键该ip,选择“edit in IP packager”,然后确定

    打开.v文件,在下图位置添加管脚定义:

    在下图rtc_ip_v1_0.v位置添加RTC管脚的例化:

    在rtc_ip_v1_0_s00_AXI.v文件下对应位置添加如下代码:

    同样在该文件下,把下图未知的reg0和reg1改为信号类型:

    这里为什么要把reg 改成wire,上一篇文章刚知道,reg就是类似一个存储变量,保存最后一次赋值的,这里wire我理解的是它只是作为信号之间的链接,并没有存储的功能,状态随时都会改变的。reg0和reg1具体做什么的,等下再看。

    接下来黑金的手册里,将reg0和reg1的写入屏蔽掉了,因为对于rtc来说,读取时间的功能确实不需要写入,我是这样的理解的。

    更改如下:

    最后,在该文件的底部,添加自己的逻辑代码,这部分应该是对RTC读写的实现,但是里面调用了很多外部的接口,应该是其他模块提供的,代码如下:

      wire [7:0] Time_year;
        wire [7:0] Time_month;
        wire [7:0] Time_date;
        wire [7:0] Time_hour;
        wire [7:0] Time_munite;
        wire [7:0] Time_second;
        //wire time_set_en=slv_reg1[31];
        
        wire [7:0] Time_year_set=slv_reg3[23:16];
        wire [7:0] Time_month_set=slv_reg3[15:8];
        wire [7:0] Time_date_set=slv_reg3[7:0];
        wire [7:0] Time_hour_set=slv_reg2[23:16];
        wire [7:0] Time_munite_set=slv_reg2[15:8];
        wire [7:0] Time_second_set=slv_reg2[7:0];
        
        assign slv_reg0={8'd0,Time_hour,Time_munite,Time_second};
        assign slv_reg1={8'd0,Time_year,Time_month,Time_date};
        
            rtc_time U1 (
            
                   .CLK( S_AXI_ACLK ), 
                   .RSTn( S_AXI_ARESETN ),
                   
                   .Time_set_en(slv_reg3[31]),
         
                   .Time_year_set( Time_year_set ),       //DS1302设置的年数据
                   .Time_month_set( Time_month_set ),       //DS1302设置的月数据
                   .Time_date_set( Time_date_set ),           //DS1302设置的日数据
                   
                   .Time_second_set( Time_second_set ),       //DS1302设置的秒数据
                   .Time_munite_set( Time_munite_set ),       //DS1302设置的分数据
                   .Time_hour_set( Time_hour_set ),           //DS1302设置的时数据
                     
                   .Time_year( Time_year ),             //DS1302读到的年数据
                   .Time_month( Time_month ),             //DS1302读到的月数据
                   .Time_date( Time_date ),                 //DS1302读到的日数据
                   
                   .Time_second( Time_second ),             //DS1302读到的秒数据
                   .Time_munite( Time_munite ),             //DS1302读到的分数据
                   .Time_hour( Time_hour ),                 //DS1302读到的时数据
            
                   .RST( DS1302_RST ),
                   .SCLK( DS1302_SCLK ),
                   .SIO( DS1302_SIO )     
            
            );

    这里黑金提供了几个现成的.v文件供添加,我的路径是在:

    F:\ZYNQ\AX7010\course_s1\course_s1\07_custom_rtc\custom_rtc.srcs\sources_1\bd\system\ipshared\3b34\hdl

    右键design sources,添加file,结果如下:

    接着,打开IP-XACT目录下的comonet.xml文件,找到port and interface,电机merge changes from ports and interfaces wizzard,如下图:

    这时候会看到我们添加进去的rtc的管脚端口,如下图:

    接下来对file groups,同样merge一下,如下图:

    最后,选择review and pakage,选择re-package IP

    repackege完成之后,点击完成,自动关闭ip核的设计,回到主界面。接下来就要把刚才创建的自定义IP添加到block当中,这时候已经可以看到我们自定义的IP在列表里了,如下图;

    之后,点击自动布线,选中全部端口,让系统去自动布线,但是这时候,rtc的三个管脚并没有引出来,这时候右键 make external,手动引出来。如下图;

    3.4生成bit文件

    这以上之后,在source栏目下,system选择generate output projects,然后create HDL wrapper,结果如下:

    然后为系统添加管脚约束文件,在constrants目录下,新建system.xdc文件,如下:

    最后点击generate bitstream,生成比特流文件,这里我在生成bit文件的时候报错了,反复确认是否和教程有何不同,发现步骤每一步都是一样的,除了vivado的版本不一样,然后我用2017.4打开了黑金自带的工程,发现可以编译生成bit文件,这里错误提示如下:

    [DRC NSTD-1] Unspecified I/O Standard: 3 out of 133 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all I/O standards. This design will fail to generate a bitstream unless all logical ports have a user specified I/O standard value defined. To allow bitstream creation with unspecified I/O standard values (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks NSTD-1].  NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: DS1302_SCLK_0, DS1302_SIO_0, and DS1302_RST_0.
    [DRC UCIO-1] Unconstrained Logical Port: 3 out of 133 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all pin locations. This design will fail to generate a bitstream unless all logical ports have a user specified site LOC constraint defined.  To allow bitstream creation with unspecified pin locations (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks UCIO-1].  NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run.  Problem ports: DS1302_SCLK_0, DS1302_SIO_0, and DS1302_RST_0.
    这里根据提示,似乎是IO口没有约束,会造成性能,完整性甚至板卡烧坏,但是反复确认过,io口的约束文件是添加正确的,端口也有对应的配置。查找了下解决方法,成功的生成了bit文件,这里解决方法如下:

    根据提示,可以通过设置一段代码,来取消这个报错:set_property SEVERITY {Warning} [get_drc_checks NSTD-1].

    编辑一个文件,名称后缀为.tcl,输入以下代码:

    set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
    set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

    我的保存为uer_ip.tcl,放在了该vivado工程的根目录下,如下图:

    然后邮件generate bitstream,在生成bit文件的配置项bitstream steeing里,将该文件添加进去,如下图:

    点击OK,生成bit文件,成功生成了bit文件。

    4.编写reworks代码,读取和设置时间

    4.1配置说明

    这里其实黑金提供了比较完整的测试代码,只要知道基地址和偏移地址,根据pl端的代码,也知道四个寄存器都是干嘛的,在reworks下,只要将对应的base addr映射相对应的长度到用户这边即可,因为我们的虚拟地址和物理地址是一一映射的,所以,在mmu里配置一下即可。

    配置如下:

    这里勾选串口和控制台驱动,用到串口打印输出,MMU的配置,在BSP中如下:

    这里PS_DEVICE_ADDR是0x40000000,SIZE为1G,默认PL对PS映射的内存都在这个地址空间,这样我们就可以在应用中访问了。

    4.2编写测试代码

    在rede集成开发环境下,在自引导工程user_rtc_ip下,新建一个文件夹,名称为test.c,内容如下:

    #include <stdio.h>
    #include <reworks/types.h>
    #include <bsp.h>
    
    #define RTC_BASEADDR       0x43C00000
    
    #define Xil_Out32 	OUT_REG32
    #define Xil_In32    IN_REG32
    
    #define RTC_IP_mWriteReg(BaseAddress, RegOffset, Data) \
      	Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data))
    
    
    #define RTC_IP_mReadReg(BaseAddress, RegOffset) \
        Xil_In32((BaseAddress) + (RegOffset))
    
    
    unsigned char test_time[6]; //format: second/minute/hour/date/month/year
    
    
    
    
    int test_rtc(void)
    {
    	u32 Delay,rtc_reg0,rtc_reg1;
    
    	int i;
    
    	unsigned char time_temp[6];
    
    	unsigned char second_old=0;
    
    
        //Write RTC Register3, Setting date, year=16, month=10, date=10
    	RTC_IP_mWriteReg (RTC_BASEADDR, 12, 0x00160A0A);
    
        //Write RTC Register3, Setting time, hour=12, month=00, date=00
    	RTC_IP_mWriteReg (RTC_BASEADDR, 8, 0x000C0000);
    
        //Write RTC Register3, enable time setting
    	RTC_IP_mWriteReg (RTC_BASEADDR, 12, 0x80160A0A);
    
        for (Delay = 0; Delay < 10000000; Delay++);
    
        //Write RTC Register1, enable time setting
    	RTC_IP_mWriteReg (RTC_BASEADDR, 12, 0x00160A0A);
    
    
    	while(1) {
    
    		//read RTC Register1
    		rtc_reg1 = RTC_IP_mReadReg (RTC_BASEADDR, 4);
    
    		//read RTC Register0
    		rtc_reg0 = RTC_IP_mReadReg (RTC_BASEADDR, 0);
    
    		second_old=test_time[0];
    
    		time_temp[5] = (unsigned char)(rtc_reg1 >> 16);        //RTC year
    		time_temp[4] = (unsigned char)(rtc_reg1 >> 8);         //RTC month
    		time_temp[3] = (unsigned char)(rtc_reg1);              //RTC date
    
    
    		time_temp[2] = (unsigned char)(rtc_reg0 >> 16);        //RTC Hour
    		time_temp[1] = (unsigned char)(rtc_reg0 >> 8);         //RTC Munite
    		time_temp[0] = (unsigned char)(rtc_reg0);              //RTC Second
    
    		for (i=0;i<6;i++){
    
    			test_time[i] = time_temp[i]/16*10+time_temp[i]%16;//格式为: 秒 分 时 日 月 星期 年
    		}
    
    
    
    		if (second_old!=test_time[0]){
    
    			printf("current time is:20%d-%d-%d %d:%d:%d\n",test_time[5],test_time[4],test_time[3],test_time[2],test_time[1],test_time[0]);  //convert string
    
    		}
    
    
    	}
    
    
        return 0;
    }
    

    然后编译,生成reworks.elf

    4.3测试运行

    配置uboot的环境变量,代码如下:

    setenv ipaddr 192.168.1.100;setenv serverip 192.168.1.128;tftpboot 0x10000000 reworks.elf;bootelf 

    因为黑金ax7010 uboot我这块板子默认不提供qspi的支持,无法保存环境变量,在securecrt下做一个button,每次按一下就可以直接tftp下载,这里网卡要配置成百兆全双工,千兆不支持tftp下载。

    下载完成系统启动如下:

    进入了控制台,输入test_rtc,发现没有输出,实验结果并没有出来,在SDK下拷贝黑金的代码,发现sdk下就做不通,看来bit文件还是有问题。

    我用黑金做好的工程的bit烧写进去,启动reworks,发现可以成功的设置和读取rtc的值。输出如下:

    结束语:

    虽然实验没有在2017.4下成功,但是还是很详细的学习了自定义IP的创建和设计方法,具体的黑金的提供的例程,还关联了一个i2c的模块,一个控制模块,都是2015版本的,在添加的时候会有警告,不知道是不是版本不同的原因,以目前的水平,里面的代码也暂时没有办法去解读,虽然能看个大概,手里也没有2015.4的环境,暂时先搁置,等回头能发现这个问题了,再回来解决好了。

    展开全文
  • ReDe/ReWorksThree parts:RTOS——ReWorks VxWorks capability: Application: Code level Drivers: Object levelArchitectures supported: X86 PowerPCMinimal size: 100kB Hard real ti

    ReDe/ReWorks

    Three parts:

    • RTOS——ReWorks
      • VxWorks capability:
        • Application: Code level
        • Drivers: Object level
      • Architectures supported: 
        • X86
        • PowerPC
      • Minimal size: 100kB
      • Hard real time: 15us
      • MS-DOS file system capability
      • Middle ware:
        • Application portability
        • Embedded Corba capability
        • Realtime monitoring service
      • GUI:
        • Windows, X-Window standard
        • Chinese input method
      • Network Protocals:
        • TCP
        • UDP
        • IP
        • ICMP
        • ARP
      • POSIX 1003.1B

     

    • IDE——ReDe
      • Host: WinNT/2000/XP
      • C/C++ cross compile
      • Code-level remote debugging and tracing
      • Simulator

     

    • CASE——Rhapsody, by iLogic(U.S.), as a 3rd-party



    Questions:

        > ReWorks是否由Linux改来的?
                否,完全自主开发

        > 是否只做ReWorks?
                
    否,还有Unix/RedHat/NT的开发

        > 在Unix/RedHat/NT方面主要做什么?
            

        > 主要注意力放在哪个产品?
                
    ReWorks

        > ReWorks主要的客户?
                
    军方,目前只有很少的客户再用ReWorks,已知一个在郑州

        > 他们的销售方式?


        > ReWorks的研发实力如何?


        > ReWorks与VxWorks的兼容性:
            - 应用程序兼容性,是否提供了所有VxWorks中提供的系统调用?

            - BSP的兼容性,提供完全相同的机制?

            - 开发平台的兼容,是否可以使用Tornado开发ReWorks应用程序?

            - ReDe与Tornado的易用性,以及界面风格?


        > ReWorks与VxWorks的性能比较:
            - 实时性

            - 稳定性

            - 体积/可裁减性

        
        > ReWorks现在运行在什么环境下?有否发生问题?


        > ReWorks是否在与我们的板类似的环境下测试过?


    展开全文
  • Reworks the shell unit test which was probably not working. Note this requires modifying the osal config to enable shell, otherwise test is skipped. See ...
  • 国产龙芯1A手持式计算机和ReWorks嵌入式操作系统,通过移植触摸中间件tslib为上层应用提供了统一的接口,实现了触摸屏的校准和测试。
  • National Focus Reworks/Event Reworks Localisation Flags History Files (Done!) 当前,需要固定事件和国家焦点,以使游戏可玩。 解决此问题后,重点将转移到化妆品(旗帜,本地化)上 对于任何想要修改本地化...
  • 制作grub引导教程.rar

    2019-08-30 10:19:02
    按照本文的步骤可以制作U盘的grub引导,还可以把grub引导程序固化到硬盘上。可以通过修改bootmenu的方式设置启动参数。可以引导vxworks、reworks等镜像。压缩包里包含详细制作步骤和工具。
  • 时间性能是嵌入式实时操作系统一个非常重要的参数,而任务切换时间和中断响应时间则是其中的关键因素。为了评估嵌入式实时操作系统...针对汽车电子产业的嵌入式硬实时操作系统Reworks的实测结果表明,该方法是可行的。
  • 龙芯2K1000开发系统使用

    千次阅读 2019-11-29 15:04:24
    参考 官网 社区 交叉编译工具链官方下载 交叉编译龙芯版本内核 串口 电路板上丝印为CPU Uart,RS232电平,调试REWORKS需要。

    作者

    QQ群:852283276
    微信:arm80x86
    微信公众号:青儿创客基地
    B站:主页 https://space.bilibili.com/208826118

    参考

    官网
    社区
    交叉编译工具链官方下载
    交叉编译龙芯版本内核

    串口

    电路板上丝印为CPU Uart,RS232电平,调试REWORKS需要。
    228

    交叉编译loongnix

    设置path,更改setenv.sh中的CC_PREFIX为自己的工具链所在路径,

    qe@ubuntu:~/fdk_develop$ mips64el-loongson-linux-
    mips64el-loongson-linux-addr2line   mips64el-loongson-linux-cpp         mips64el-loongson-linux-gcc-ar      mips64el-loongson-linux-gprof       mips64el-loongson-linux-objdump     mips64el-loongson-linux-strip
    mips64el-loongson-linux-ar          mips64el-loongson-linux-elfedit     mips64el-loongson-linux-gcc-nm      mips64el-loongson-linux-ld          mips64el-loongson-linux-ranlib      
    mips64el-loongson-linux-as          mips64el-loongson-linux-g++         mips64el-loongson-linux-gcc-ranlib  mips64el-loongson-linux-ld.bfd      mips64el-loongson-linux-readelf     
    mips64el-loongson-linux-c++         mips64el-loongson-linux-gcc         mips64el-loongson-linux-gcov        mips64el-loongson-linux-nm          mips64el-loongson-linux-size        
    mips64el-loongson-linux-c++filt     mips64el-loongson-linux-gcc-4.9.3   mips64el-loongson-linux-gfortran    mips64el-loongson-linux-objcopy     mips64el-loongson-linux-strings 
    

    交叉编译pmon

    PMON编译方法

    • PMON的编译环境是交叉编译,即在X86机器上进行编译,编译出MIPS版本的PMON二进制。
    • 系统要求为X86 32位linux操作系统。实验测试Ubuntu,Debian,Fedora,CentOS都可以使用。
    • 系统中需要先安装一些开发包:flex,bison,xutils-dev。
    • ttFedora系统使用yum install 命令安装,Ubuntu、Debian系统使用apt-get install命令安装。
    展开全文
  • TCF使用笔记

    2016-12-15 17:26:53
    基于ReWorks平台上的TCF实现,该API的设计非常难用,说明文档几乎没有。
  • Minimal UIMinimal UI is a mod for FFXIV that reworks a large portion of the user interface with the goal of simplicity and ease of use in a raid scenario.Circle Status IconsCircle Status Icons is a mo...
  • Kubernetes examples rework

    2020-12-30 17:14:43
    <div><p>This PR reworks the examples and integration test scripts to deploy a registry-less controlplane into kubernetes, and configure the sidecars to directly fetch service instances from kubernetes...
  • 19.2.1 P- Who performed the rework?YES/NO 19.2.2 P- Reverification of product following rework?YES/NO 19.2.3 P- Description of rework...19.2.5 P- Number of reworks per location if required?YES/NO 19.3 P-
  • book if we can get away with skipping them and reworks some of the logging. This should marginally speed up the <code>--all</code> build and and make it <em>much</em> easier to spot which books are ...
  • <div><p>This PR adds IPNS support to resolve, makes the recursive option true by default and reworks the tests. <p>Jsdocs were added to the resolve method. <p>Two interface-core config profile tests ...
  • 目前市场上常见的RTOS有如下:FreeRTOS、Vxworks、ReWorks、DeltaOS、SylixOS、华为liteOS、阿里AliOS、RT-Thread、RTEMS等,这些RTOS可以像linux/windows一样实现远程桌面吗? 在这里,我们首先要区分界面和桌面的....
  • <p>This PR reworks the installed exiv2 CMake configs so that dependencies are automatically found by downstream projects using the <code>find_dependency</code> macro. <p>This is a process for ...
  • Layout rework

    2021-01-06 05:48:21
    - Reworks save button UI - New styles for buttons and header <p>If we decide to move on this version of iD, here's a todo: - [x] Move all the map overlay stuff to the right - [ ] Match walkthrough...
  • Rework chunked encoder

    2020-12-09 01:28:18
    <div><p>Reworks the chunked encoder, fixing https://github.com/http-rs/async-h1/issues/79. The problem occurred when reading more than 8kb we got an out of bounds read. I couldn't quite figure out...
  • 一:相关基本配置: FPGA: XILINX XC5VFX130T-1FFG1738 PCI接口部分使用XILINX提供的pci32_v4_8硬核;PCI控制器由FPGA逻辑实现,主要完成PCI设备到内存的DMA读写操作。...操作系统:Reworks/Vxw...
  • <p>Paraphrasing... <p>OK i have information in a database it reads: This is random text with a ...<p>Any help, alterations or reworks I would be grateful its driving me nuts right now. </div>
  • <p>This reworks the block index code such that it loads all of the headers in the main chain at startup and constructs the full block index accordingly. <p>Since the full index from the current best ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 129
精华内容 51
关键字:

reworks