更全的杂志信息网

基于龙芯1E1F航天应用平台与VxWorks系统的VxBus型驱动设计

更新时间:2009-03-28

0 引言

龙芯1E和1F芯片是龙芯中科科技有限公司研制的具有自主知识产权的高性能32位抗辐射芯片,打破了国外对我国航天级高性能芯片的封锁。龙芯1E是一个高性能应用处理器SOC,以龙芯1号处理器为运算中心,提供了通用的处理器部件和对外接口,包含中断控制器、定时器、RS232串口控制器、浮点处理器、PCI和存储器接口(存储器接口支持SDRAM和FLASH ROM)等。龙芯1E芯片的外部时钟频率不低于66 MHz,功耗3 W。龙芯1F芯片是龙芯1E芯片的配套IO桥芯片,集成了航天领域常用的遥测遥控功能接口和外围接口,时钟33 MHz,功耗1 W,支持桥片模式和自主模式。龙芯1F芯片的桥片模式分为3种,即PCI总线设备模式、ISA总线设备模式和1553B总线简易终端设备模式。龙芯1E和龙芯1F芯片的抗辐射特性为抗总剂量不小于 1×103Gy(Si),单粒子锁定(SEL)阈值不小于 75MeV·cm2/mg,单粒子翻转(SEU)阈值不小于 37MeV·cm2/mg 或 IGSO 轨道翻转率小于 10-10 次/位天[1-2]

VxWorks系统由于其优秀的实时性和可靠性,在航天领域得到了广泛的应用。VxWorks 6.2之后引入了新的基于VxBus的设备驱动开发模式。与传统的设备驱动程序高度耦合在板级支持包(BSP)中相比,基于VxBus的设备驱动开发可以使BSP的开发与设备驱动的开发相对分离,使得这两部分的开发工作可以并行开展。提高了设备驱动开发效率,使得设备驱动程序开发更加规范化,结构化,进一步提高了软件开发的质量和可靠性,并且降低了开发和测试成本[3]

由于龙芯芯片在商用领域推出较多,在航天领域推出较少,目前对龙芯应用技术的研究大多集中在商用领域,在航天领域的应用技术的研究尚处于初始阶段[4]。在航天领域龙芯的应用介绍较少,并且研究内容主要着眼于系统引导,软件更新[5]和传统的VxWorks BSP移植设计等方面[6-7],对如何针对VxWorks新推出的VxBus型驱动进行龙芯应用的设计介绍较少。

1 VxBus设备驱动分析

VxWorks系统下VxBus型驱动具有设备可配置以及驱动使用界面化操作的特点。如图1所示,进行VxBus驱动开发一般要提供驱动头文件,驱动源代码文件,驱动说明文件,Makefile编译文件,cdf驱动配置文件,dr驱动注册文件以及dc驱动注册文件。这几个文件存放的位置各不相同,驱动说明文件,驱动源代码文件和Makefile编译配置文件存放在“C: WindRivervxworks-6.8 arget3rdpartyvendorName driveName”路径下。其中“C: WindRiver”为VxWorks开发环境的安装路径,vendorName是自定义的驱动供应商的名称,driveName是自定义的驱动的名称。一个驱动供应商可以对应多个驱动,多个驱动都以驱动文件夹的方式存放在供应商文件夹下。cdf配置文件存放在“C:WindRivervxworks-6.8 argetconfigcomps vxWorks”路径下,这个目录下是专门用来存放驱动配置文件。dc和dr配置文件存放在C:WindRivervxworks-6.8 argetconfigcompssrchwif路径下,这个目录下是专门用来存放VxBus型驱动的注册文件。

VxWorks系统初始化时,首先在sysHwInit()函数中调用hardWareInterFaceInit()函数,该函数完成VxBus型驱动的注册,并调用各个VxBus型驱动的xxxInit()函数,执行各个驱动的第一次初始化。在第一次初始化过程中,VxWorks系统为每个VxBus型驱动设备分配了内存空间,并且连接了供应用层调用的驱动方法,从BSP的硬件设备定义文件hwconf.c中获取每个硬件设备的驱动参数。然后在sysHwInit2()函数中调用vxbDevInit()函数,在vxbDevInit ()函数中调用各个VxBus型驱动的xxxInit2()函数,执行各个驱动的第二次初始化,进行了VxBus型驱动的中断服务函数的连接和使能。接着建立一个任务vxbDevConnect,该任务执行了每个VxBus型驱动的xxxConnect()函数,在该函数中将执行一些额外的比较费时,但是不影响整个系统初始化的初始化操作[8-9]。整个VxBus驱动的初始化流程如下图2所示。

  

图1 VxBus驱动组成图

  

图2 VxBus驱动初始化流程图

2 VxBus设备驱动程序设计

对于VxWorks系统的基本运行,一般需要提供3种必需的驱动:时钟驱动,串口驱动和中断控制驱动。时钟驱动用来驱动VxWorks系统运行,如任务调度,定时控制等,串口驱动一般用作调试时输出日志信息,输入控制命令等,中断控制驱动用作在系统发生中断时进行中断响应。

1)串口驱动设计。

对水利建设单位加强管理,杜绝企业资质外借。各级水利部门要对水利建设企业进行严格管理,定期进行检查,统计企业所参与投标项目及其中标情况,同时根据企业实力核定其能从事的项目建设能力,帮助企业不断增强自身竞争力,遵守水利建设市场的规则规范。对外借资质的企业,一经发现,必须给予严厉处罚,可进行停业整顿或者禁止其1年内参与任何水利工程投标等。

const struct hcfResource cpu0Resources[] = {

龙芯1E芯片上提供了2个RS232串口,串口控制器与NS16550串口控制器在寄存器接口上兼容,并且VxWorks开发环境中已经提供了基于VxBus型NS16550串口控制驱动的参考源代码,源代码文件为vxbNs16550Sio.c。源代码文件不需要修改,只要在BSP的硬件配置文件hwconf.c中配置各个串口的寄存器的起始地址,波特率,时钟等即可。关键代码如下。

首先定义两个串口设备的相关驱动参数:

define LSN_UART_DEFAULT_BAUD 115200

传统实验成绩评定没有完整的体系,比如没有统一的测量实训指导书,不同班级完成的测量实验项目或被测零件不同,实训考核通常由任课教师给出一个考核分数,没有综合评价,评价方式过于简单,另由于考核时没有统一的考核标准,造成学生测评成绩的可比性较差,实验考核成绩评定缺乏公正性、科学性。

struct hcfResource ns16550Dev0Resources[] = {

{ "regBase", HCF_RES_INT, {(void *)LS1E_UART0_BASE} },

{ "baudRate", HCF_RES_INT, { (void *)LSN_UART_DEFAULT_BAUD }},

(7)全面性。主要是对储量评估师的要求。一个优秀的储量评估师一定具有专业背景和丰富经验,而仅具有专业知识与技能不一定是优秀的评估师。储量评估需要各专业专家的技能协同进行,包括地球物理学家、地质师、测井分析师、采油工程师、油藏工程师、统计学专家和经济学专家,评估师应该拥有足够的知识,能够将各专家的贡献融合为一个统一的整体,由此得出完整且合理的储量评估结果。

{ "clkFreq", HCF_RES_INT, {(void *)BAUD_CLK_FREQ} },

{ "regInterval", HCF_RES_INT, {(void *)UART_DELTA} },

};

龙芯1E1F开发板上使用的时钟频率为33 MHz,时钟驱动可以使用VxWorks开发环境中提供的MIPS R4K时钟驱动,源文件为vxbMipsR4KTimer.c。需要在BSP的硬件配置文件hwconf.c中定义最小时钟,最大时钟,cpu频率等时钟驱动参数。关键代码如下。

struct hcfResource ns16550Dev1Resources[] = {

{ "regBase", HCF_RES_INT, {(void *)LS1E_UART1_BASE} },

当着我的面,我妈总爱说我哪儿哪儿都不好,怎么怎么不争气;一转身,她就跟别人夸我好,夸我是她兜里的宝。初中毕业的时候,我被保送到我们那儿最好的高中。那个暑假,我妈脸上总挂着我从未见过的神色,活灵活现、得意扬扬,像个了不起的老小孩。

由此可见,《万国公法》以文言文形式,竭力运用传统义理术语来诠释近代西方政法概念,正是在仍占据统治地位的封建意识形态支配下,为使晚清官员等目标读者更能接受,而采取的抵御外来边缘文化全面渗透的归化策略。

{ "baudRate", HCF_RES_INT, { (void *)LSN_UART_DEFAULT_BAUD }},

{ "clkFreq", HCF_RES_INT, {(void *)BAUD_CLK_FREQ} },

{ "regInterval", HCF_RES_INT, {(void *)UART_DELTA} },

};

define ns16550Dev1Num NELEMENTS(ns16550Dev1Re-sources)

然后在设备列表中定义2个串口设备:

{"ns16550", 0, VXB_BUSID_PLB, 0, ns16550Dev0Num, ns16550Dev0Resources },

{"ns16550", 1, VXB_BUSID_PLB, 0, ns16550Dev1Num, ns16550Dev1Resources },

2)时钟驱动设计。

define ns16550Dev0Num NELEMENTS(ns16550Dev0Re-sources)

首先定义时钟驱动的相关驱动参数:

struct hcfResource r4KTimerDevResources[] =

{

{"regBase", HCF_RES_INT, {(void *)0} },

{"minClkRate", HCF_RES_INT, {(void *)SYS_CLK_RATE_MIN} },

{"maxClkRate", HCF_RES_INT, {(void *)SYS_CLK_RATE_MAX} },

第一,环保共治格局正在形成。经济社会发展的不平衡性和环境问题的复杂性决定了中国环境管理模式选择的多维性。中国当前的环境管理已经逐步从过去单纯的自上而下转变为自上而下与自下而上相结合的方式,除了行政手段外,还需擅用市场调节、鼓励公众参与、促进企业自律,让每个人都成为保护环境的参与者、建设者、监督者。

{"cpuClkRate", HCF_RES_INT, {(void *) 33000000} }

化疗是借助化学药物将癌细胞转移、浸润、增殖过程阻断,最终将癌细胞灭杀的治疗方式,其属于全身性治疗方法,和放疗、手术并称为癌症三大治疗方法。然而化疗药物缺少靶向性,药物在对癌细胞灭杀的同时,也不可避免地会造成正常细胞的损伤,以致出现毒副作用,同时患者免疫功能也明显下降[8-9]。为改善这一问题,近年来我科尝试为食管癌化疗患者加用中药,以期改善患者机体免疫功能,减轻化疗药物毒副作用[10]。

define r4TimerDevNum NELEMENTS(r4KTimerDevResources)

然后在设备列表中定义时钟设备:

{"r4KTimerDev",0,VXB_BUSID_PLB,0,r4TimerDevNum,r4KTimerDevResources},

3)中断控制驱动设计。

};

基于对亚洲航线邮轮通关相关的现状分析、政策及制度总结、模型构建以及归纳整理,给出以下七点我国航线邮轮运营便利化建议如下:

根据龙芯1E1F平台的中断控制器的特点,中断控制驱动可以分层设计[10],将中断驱动分为3个层次,如图3所示。第1层为MIPS中断控制,共8个中断类型,第2层为龙芯1E中断控制,共32个中断类型,第3层为龙芯1F中断控制,共32个中断类型。其中第2层龙芯1E的中断是作为第1层MIPS中断的第2种中断类型进行连接,第3层龙芯1F中断是作为第2层龙芯1E的第17种中断类型进行连接。

图3中仅列出了本文涉及的串口中断,时钟中断,龙芯1E中断,龙芯1F中断,SM1553B中断,其他中断类型可以参考龙芯芯片数据手册[11]

  

图3 龙芯1E1F中断分层图

a)对MIPS中断控制的驱动可以使用VxWorks提供的mipsIntCtlr驱动,源文件为vxbMipsIntCtlr.c。在BSP的hwconf.c文件中配置MIPS驱动中各个引脚中断所属的中断服务设备。关键代码如下。

首先定义MIPS中断控制设备的相关驱动参数:

const struct intrCtlrInputs mipsIntCtlr0Inputs[] = {

/* pin, driver, unit, index */

/*清除中断*/

国家教育发展“十三五”规划中,教育被放在了优先发展的战略地位。作为高等教育的重要组成部分,职业教育的目标是围绕国家经济发展为其提供高素质的劳动者和技术技能型人才,要实现这个目标,职业院校不仅仅要教授学生基本的专业技术知识,更要培养学生具备相应的综合能力。

{1, "legacy", 0, 0},

{2, "LS1EIntCtlr", 0, 0},

{7, "r4KTimerDev", 0, 0},

};

本研究结果表明,超声引导下甲氨蝶呤穿刺介入治疗未破裂型输卵管妊娠其治愈率和输卵管畅通率与腹腔镜组比较无显著性差异,但是术中出血量、手术时间、住院时间等指标均优于腹腔镜组,提示超声介入治疗可以达到与腹腔镜治疗近似的疗效,且创伤小,安全性高,值得应用于临床。

猫是虎的老师,所以不管老虎如何强悍,总还是像猫,像它的老师。老虎这个学生太心躁气浮,学了没几天,以为老师的本领已经到手,就要超过老师,加害老师,结果猫上了树,老虎才知道老师的厉害,这一点上,它永远不如老师。

算法综合比较了NLMS和FDNLMS算法的性能,比较指标包括处理时间以及自适应滤波器失调系数和回声返回损耗增益值:

{ "regBase", HCF_RES_INT, {(void *)TRUE} },

{ "input", HCF_RES_ADDR, {(void *)&mipsIntCtlr0Inputs[0]} },

{ "inputTableSize", HCF_RES_INT, {(void *)NELEMENTS(mipsIntCtlr0Inputs)}}

};

define cpu0Num NELEMENTS(cpu0Resources)

然后在设备列表中定义MIPS中断控制器设备:

{ "mipsIntCtlr", 0, VXB_BUSID_PLB, 0, cpu0Num, cpu0Resources },

{0, "legacy", 0, 0},

目前,解决牧区离网型户用或小型节水灌溉的提水设施,主要集中在以风能、太阳能为动力的风力提水、风电提水、光伏提水和风光互补系统提水的研究利用上来。这是依托牧区丰富的自然资源、达到环境碳排放约束性指标较为合理的发展模式。

b)对龙芯1E中断控制的驱动需要编写新的VxBus类型的驱动。中断程序设计整体结构上参考MIPS中断控制程序。对于中断服务程序需要进行更改,在中断服务程序中,需要首先读取龙芯1E的中断状态寄存器,然后清除龙芯1E的中断状态,防止重复产生中断,接着再根据获取的龙芯1E的中断状态依次调用所有发生中断的子服务程序。中断服务程序关键代码如下:

/*获取中断状态*/

vxbMipsLsnIntLevelGet (pInst, &ints);

/* IPI interrupts from IPI controller */

MIPS_SW32(LS1E_INT_BASE+ LS1E_INT_ CLR, ints);

/*调用子服务程序*/

if (ints != (UINT32)0)

{

for (i = 0;i < LS1E_INT_INPUTS && ints != 0;i++,ints >>= 1)

{

if ((ints & 0x01) != 0)

{

VXB_INTCTLR_ISR_CALL(&pDrvCtrl->isrHandle, I +pInst->unitNumber * 32);

}

}

}

在BSP的hwconf.c文件中龙芯1E中断控制器驱动的配置为:

定义龙芯1E中断控制器的驱动参数:

const struct intrCtlrInputs ls1EIntCtlrInputs0[] = {

/* pin, driver, unit, index */

/* interrupts inputs into cpu */

{11, "ns16550", 0, 0 },

{12, "ns16550", 1, 0 },

{17, "LS1FIntCtlr", 0, 0 },

};

const struct hcfResource ls1EIntCtlrResources0[] = {

{ "regBase", HCF_RES_INT, {(void *)TRUE} },

{ "input", HCF_RES_ADDR, {(void *)&ls1EIntCtlrInputs0[0]} },

{ "inputTableSize", HCF_RES_INT, {(void *)NELEMENTS(ls1EIntCtlrInputs0)}},

};

define ls1EIntCtlrNum0 NELEMENTS(ls1EIntCtlrResources0)

在设备列表中定义龙芯1E中断控制器设备:

{"LS1EIntCtlr",0,VXB_BUSID_PLB,0, ls1EIntCtlrNum0, ls1EIntCtlrResources0 },

c)对龙芯1F中断控制器的驱动需要编写新的VxBus类型的驱动。中断程序整体结构上参考龙芯1E中断控制的程序。同样对于中断服务程序需要进行更改。在中断服务程序中,需要首先读取龙芯1F的中断状态寄存器,接着再根据获取的龙芯1F的中断状态调用所有发生中断的子服务程序。与龙芯1E中断服务程序不同,在龙芯1F的中断服务程序中不需要进行中断清除,某个引脚的中断状态的清除在被调用的中断子服务程序中单独进行。中断服务程序关键代码如下:

/*获取中断状态*/

vxbMipsLsn_1fIntLevelGet (pInst, &ints);

/*调用子服务程序*/

if (ints != (UINT32)0)

{

for (i = 0;i < (LS1F_INT_INPUTS) && ints != 0;i++,ints >>= 1)

{

if ((ints & 0x01) != 0)

{

VXB_INTCTLR_ISR_CALL(&pDrvCtrl->isrHandle,i);

}

}

}

在BSP的hwconf.c文件中龙芯1F中断控制器驱动的配置为:

定义龙芯1F中断控制器的驱动参数:

const struct intrCtlrInputs ls1FIntCtlrInputs0[] =

{

/* pin, driver, unit, index */

{31,"LS1F_sm1553b", 0, 0},

};

const struct hcfResource ls1FIntCtlrResources0[] = {

{ "regBase", HCF_RES_INT, {(void *)TRUE} },

{ "input", HCF_RES_ADDR, {(void *)& ls1FIntCtlrInputs0[0]} },

{ "inputTableSize", HCF_RES_INT, {(void *)NELEMENTS(ls1FIntCtlrInputs0)}},

};

define ls1FIntCtlrNum0 NELEMENTS(ls1FIntCtlrResources0)

在设备列表中定义龙芯1F中断控制器设备:

{"LS1FIntCtlr",0,VXB_BUSID_PLB,0,ls1FIntCtlrNum0, ls1FIntCtlrResources0},

4)龙芯1F芯片的智能1553B功能驱动设计。

首先在“C:WindRivervxworks-6.8 arget 3rdpartyvendorName”路径下建立一个新的文件夹用来存放驱动文件,文件夹名称为LS1FSM1553B,然后在该文件夹下分别建立vxbLS1F_sm1553b.c,40vxbLS1F_sm1553b.cdf,vxbLS1F_sm1553b.dc,vxbLS1F_sm1553b.dr,Makefile,README等几个文件。其中vxbLS1F_sm1553b.c文件中包含了驱动的实现代码,是驱动的主要文件。40vxbLS1F_sm1553b.cdf包含了用于vxWorks工程进行图形化配置1553B驱动的描述信息。vxbLS1F_sm1553b.dc,vxbLS1F_sm1553b.dr文件包含1553B驱动的注册信息。Makefile文件用于将1553B驱动编译到目标函数库文件中,README文件包含了介绍驱动的功能,使用方法等信息。

在vxbLS1F_sm1553b.c文件中除了包含vxBus型驱动所必需的第一阶段初始化函数xxxinit(),第二阶段初始化函数xxxinit2(),中断连接与使能函数xxxConnect(),中断服务函数xxxISR()等函数外,还对外提供了一系列的方法供上层应用调用。提供的方法有BC功能初始化方法,BC启动方法,用户自定义的中断服务等。这里为了简便起见,在BC启动方法里面也完成了BC消息块的设置和BC消息数据的设置。实际应用中需要将BC消息块的设置和BC数据的设置分别设计为可供上层应用调用的驱动方法,以增强驱动的灵活性和适应能力。

源代码文件和配置文件编辑完成后在VxWorks shell中使用编译命令make CPU=MIPSI32R2 TOOL=gnule,将最新的智能1553B驱动增加到库文件中。其中MIPSI32R2表示将驱动编译成适合架构为MIPS的32位R2类型CPU,gnule表示驱动使用gnu编译器编译,并且编译成小端模式。

接着将40vxbLS1F_sm1553b.cdf拷贝到“C:WindRivervxworks-6.8 argetconfigcompsvxWorks”路径下。然后将vxbLS1F_ sm1553b.dc,vxbLS1F_sm1553b.dr文件拷贝到“C:WindRivervxworks-6.8 argetconfigcompssrchwif”路径下。完成驱动在Wind River Workbench开发环境中的配置。更新驱动文件后需要重新启动Workbench开发环境,并且重新建立工程才能使用新的驱动程序。

3 实验验证

1)实验环境。

目标机:龙芯1E1F开发板。

宿主机:研华工控机(i7处理器,16G内存,2TB硬盘),Alta PCI 1553B 双通道 仿真卡(用于模拟RT以及总线数据监控),windows 7 x64,vxWorks6.8开发环境Workbench 3.2,On Chip Debugger ICE2(用于下载程序),AltaView Bus Analyzer(Alta PCI 1553B 双通道 仿真卡的应用软件)。

设备连接图如图4。

  

图4 龙芯1E1F实验连接图

2)实验过程。

首先在workbench开发环境中创建一个VxWorks Image型工程,选择相应的支持龙芯1E1F的BSP,然后在工程的内核模块配置界面上将上文提到的ns16550串口,mips r4k 时钟,mips中断控制器,龙芯1E中断控制器,龙芯1F中断控制器,智能1553B等驱动模块都选择上,然后保存工程。接着在usrAppInit.c文件中usrAppInit()函数内添加应用层代码。通过调用智能1553B驱动提供的一些方法,进行1553B的BC功能和相关驱动的功能测试。关键代码如下:

a)调用BC init方法执行BC的初始化。

methodLS1FBCInit = vxbDevMethodGet(devID,DEVMETHOD_CALL(ls1fbcInit));

if(NULL != methodLS1FBCInit)

{

methodLS1FBCInit(devID,0);

}

b)添加用户自定义的中断服务函数。

methodLS1FBCSetISR = vxbDevMethodGet(devID,DEVMETHOD_CALL(ls1fbcSetISR));

if(NULL != methodLS1FBCSetISR)

{

methodLS1FBCSetISR(devID,sm1553bISR);

}

其中sm1553bISR内部只进行一个打印输出:

logMsg("1F 1553b new ISR,
",0,0,0,0,0,0);

c)启动一个任务进行每秒启动一次BC消息帧。

taskSpawn("tBC-Test",100, 0,5000, (FUNCPTR) task_1F_BC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

任务task_1F_BC中首先获取SM1553b驱动的ls1fbcStart方法,然后设计了一个while循环模块,在循环中调用ls1fbcStart方法,然后通过taskDelay等待1秒钟,再进行下一个循环。主要代码如下:

VXB_DEVICE_ID devID = NULL;

STATUS (*methodLS1FBCStart)(VXB_DEVICE_ID devID,void * pArg);

devID = vxbInstByNameFind("LS1F_sm1553b",0);

if(NULL != devID)

{

methodLS1FBCStart = vxbDevMethodGet ( devID,DEVMETHOD_CALL ( ls1fbcStart));

}

while(NULL != methodLS1FBCStart)

{

methodLS1FBCStart(devID,0);

/*等待1秒,1秒 60个tick,*/

taskDelay(60);

}

3)实验结果。

系统启动后在串口终端运行vxBusShow命令显示当前系统的驱动和设备。从串口输出可知当前系统注册的驱动有mipsIntCtlr中断控制器驱动,LS1F_sm1553b驱动,LS1FIntCtlr中断控制器驱动,LS1EIntCtlr中断控制器驱动,ns16550驱动,r4KTimerDev时钟驱动等,已经与驱动匹配的设备有LS1F_sm1553b unit0,mipsIntCtlr0,LS1FIntCtlr unit0,LS1EIntCtlr unit0,ns16550 unit0,ns16550 unit1,r4KTimerDev unit0等。

BC运行后,观察串口输出内容(见图5),每秒执行了一次BC帧,并且响应中断2次,进入了用户自定义的中断服务函数2次。表明中断响应过程正常。

  

图5 中断响应串口输出图

通过Alta 1553B仿真卡提供的RT和BM功能可以监控到1553B总线上进行了从BC到RT4的消息传输,分别为子地址1,子地址2,子地址3,数据内容与数据频率与前面的BC消息块设置一致。

4 结论

本文基于龙芯1E1F平台和VxWorks系统,对VxBus型驱动设计技术进行了详细介绍,对串口、时钟,中断控制器和智能1553B的驱动进行了设计,并通过实验验证,证明了VxBus型驱动设计技术结构更加清晰,能够更好的进行底层技术封装,对上层应用软件开发提供了更加友好的接口。对未来航天领域基于龙芯和Vxworks系统的开发设计具有较高的参考价值。

参考文献

[1]龙芯中科技术有限公司,龙芯1E处理器数据手册[Z]. 北京:龙芯中科技术有限公司,2016.

[2]龙芯中科技术有限公司,龙芯1F处理器用户手册[Z] . 北京:龙芯中科技术有限公司,2015.

[3]向昱丞,周加谊,浅谈VxBus的设备驱动开发[J].机电产品开发与创新,2016,29(2):57-58.

[4]王 雷,樊晓桠,王党辉,龙芯3A平台Vxworks移植的研究和实现[J].微电子学与计算机,2012,29(2):86-90.

[5]史毅龙, 薛长斌,基于“龙芯”的VxWorks系统函数在轨更新研究[J].电子设计工程,2015,23(21):106-109.

[6]杨 晔,安军社,VxWorks在龙芯处理器上移植与实现[J].微计算机信息,2010,26(12-2):31-33.

[7]陈学兵,沈毅南,张振华,VxWorks5.5在龙芯2号处理器的移植和性能分析[J].计算机测量与控制,2012,20(9):2542-2545.

[8]Wind River.Device Driver Developer’s Guide Volume 1:Fundamentals of Writing Device Drivers 6.8,Wind River[Z].2009.

[9]Wind River.Device Driver Developer’s Guide Volume 2: Writing Class-Specific Device Drivers 6.8,Wind River[Z].2009.

[10]徐 骞,VxWorks下龙芯3A中断控制技术的研究[J].现代电子技术,2017,40(14):36-39.

[11]龙芯中科技术有限公司,龙芯1E 1F开发手册[Z] . 北京:龙芯中科技术有限公司, 2017.

 
邹玉龙,刘彬,田小莉,郭宗芝,牛崇
《计算机测量与控制》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息