基于μC OS II的键盘驱动的实现.docx

上传人:b****1 文档编号:11082819 上传时间:2023-05-29 格式:DOCX 页数:38 大小:561.58KB
下载 相关 举报
基于μC OS II的键盘驱动的实现.docx_第1页
第1页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第2页
第2页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第3页
第3页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第4页
第4页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第5页
第5页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第6页
第6页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第7页
第7页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第8页
第8页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第9页
第9页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第10页
第10页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第11页
第11页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第12页
第12页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第13页
第13页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第14页
第14页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第15页
第15页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第16页
第16页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第17页
第17页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第18页
第18页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第19页
第19页 / 共38页
基于μC OS II的键盘驱动的实现.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于μC OS II的键盘驱动的实现.docx

《基于μC OS II的键盘驱动的实现.docx》由会员分享,可在线阅读,更多相关《基于μC OS II的键盘驱动的实现.docx(38页珍藏版)》请在冰点文库上搜索。

基于μC OS II的键盘驱动的实现.docx

基于μCOSII的键盘驱动的实现

基于μC/OS-II的键盘驱动的实现

第一章绪论

一.嵌入式系统简介

嵌入式系统着眼于应用,己被人们定义为“以应用为中心、以计算机技术为基础、软件硬件可裁减、适应于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。

嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

嵌入式系统具有一般计算机组成的共性,都是由硬件和软件组成的。

嵌入式系统的硬件部分,是以嵌入式处理器为中心,配合存储器、I/O设备、通信模块、扩展设备接口以及电源等必要的辅助接口组成。

嵌入式系统软件部分,一般是按3层划分的:

设备驱动层、实时操作系统层、应用程序层。

嵌入式系统的硬件是嵌入式系统的基础,决定了嵌入式系统的运算速度和扩展功能等,提供了嵌入式软件运行的物理平台和通信接口;嵌入式系统的软件是嵌入式系统的灵魂,包括嵌入式操作系统和嵌入式应用软件,决定了硬件的操作模式,通过操作系统和应用程序发挥硬件装置的功能。

嵌入式系统是应用于特定环境下,面对专业领域、针对特定用途的系统,所以与通用计算机系统的多样化和适用性不同。

与通用计算机系统相比,它具有以下显著的特点:

1)嵌入式系统通常是面向特定应用的,是“专用”的计算机系统;

2)嵌入式系统一般使用实时操作系统;

3)嵌入式系统是技术密集、资金密集、高度分散、不断创新的知识集成系统;

4)嵌入式系统具有功耗低、体积小、集成度高、成本低的特点;

5)嵌入式系统的硬件和软件通过量体裁衣、去除冗余,可以用较少的软硬件资源实现较高的性能;

6)嵌入式系统与具体的行业应用相结合;

7)嵌入式系统的软件一般都固化在非易失性存储器中,提高了执行速度和系统可靠性。

二.本课题的主要研究工作

本课题采用高性能嵌入式处理器S3C2410X和μC/OS-II操作系统,开发了一个轻型嵌入式串行通信系统。

具体的工作主要有:

1.键盘的驱动编程。

2.μC/OS-II的移植,这是本课题的重点所在。

操作系统内核移植是在ARM公司的ADS1.2集成开发环境下完成的。

3.在应用层裁剪移植一个用于监视的图形用户界面(GUI)。

4.在操作系统的上层编写一个用于人机交互的键盘驱动程序、LCD液晶显示驱动程序和相关的功能运用程序等。

 

第二章基于μC/OS-II的键盘驱动的总体规划与设计

嵌入式系统设计的基本原则是“物尽其用”,与通用计算机相比,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余,力争在同样的硅片面积上实现更高的性能,以满足应用系统对功能、可靠性、成本、体积和功耗的要求。

2.1系统的设计要求

本设计将一个实时操作系统移植到ARM嵌入式微处理器后,利用操作系统中提供的系统资源调用把串口及其他外设当成普通文件进行操作,读写方便,从而在进行相应软件开发的过程中,提高系统编程效率,简化调试的复杂程度,实现基于ARM嵌入式微处理器为核芯的串口通信,除此之外,按照嵌入式系统的软、硬件结构组成,将图形用户界面GUI和实时操作系统整合后移植到ARM微控制器上。

系统实现的功能如下:

(1)激活超级终端0,敲击PC机的键盘,将字符通过PC机的串口发送给ARM开发板的串口0;通过ARM芯片处理后,在开发板上的LCD上同步显示。

(2)利用开发板上的键盘输入字符,同样可在LCD上显示,并发送给PC机。

(3)系统还应考虑日后的升级和功能扩展,留下可开发的硬件空间。

2.2系统的硬件和软件选型

2.2.1系统硬件平台的选择

嵌入式开发的硬件平台的选择主要是嵌入式处理器的选择。

在一个系统中使用什么样的嵌入式处理器内核主要取决于应用的领域、用户的需求、成本问题、开发的难易程度等因素。

目前非常流行的ARM核有ARM7TDMI,StrongARM,ARM720T,ARM9TDMI,ARM922T,ARM940T,ARM946T,ARM966T,ARM10TDMI等。

自V5版本以后,ARM公司提供PiccoloDSP的核心给芯片设计者,用于设计ARMDSP的SOC(SystemOnChip)结构芯片。

此外,ARM核还获得了许多实时操作系统(RealTimeOperatingSystem)供应商的支持,比较知名的实时操作系统有:

WindowsCE、Linux、pSOS、VxWorks、Nucleus、EPOC、μC/OS-II、BeOS等。

S3C2410A微处理器是一款由韩国SamSung电子公司为手持设备设计的低功耗、高集成度的基于ARM920T核的16/32位RISC处理器。

为了降低整个系统的成本,S3C2410A还集成了以下部件:

16KB指令Cache、16KB数据Cache、具有虚拟存储器管理单元MMU、外部存储器控制器、LCD控制器(支持STN和TFT)、8通道10位ADC、触摸屏接口、NANDFlash控制器、3个UART通道、4个DMA通道、4个PWM定时器、1个内部定时器、I/O端口、RTC、IIC-BUS控制器、IIS-BUS控制器、USB主、USB从、SD主卡/MMC卡接口、2通道的SPI以及内部PLL时钟倍频器等。

S3C2410A采用0.18um工艺生产制造,核心频率最高可以达到203MHz,功能强大而且体积小、功耗低。

S3C2410A片上资源丰富,可以简化外围电路设计,减少了整个系统的成本,为嵌入式系统提供了一个高效的硬件平台。

S3C2410A处理器不仅在手机、PDA等手持设备方面广泛应用,在通信系统、数据终端等方面也得到广泛应用。

考虑到本项目的开发要带操作系统并运行μC/GUI,本文选定SamSung(三星)公司生产的一款基于ARM920T核的高性能低功耗SOC芯片S3C2410A作为硬件开发平台的主控制器。

2.2.2嵌入式操作系统的选择

嵌入式操作系统EOS(EmbeddedOperatingSystem)是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统的重要组成部分。

嵌入式操作系统负责完成嵌入式系统的全部软、硬件资源的分配、调度、控制、协调;它必须体现其所在系统的特征,能够通过加载/卸载某些模块来达到系统所要求的功能。

嵌入式操作系统具有小巧、可定制性、强稳定性、弱交互性、较强的实时性、外设接口统一性等特点。

随着嵌入式系统的快速发展,嵌入式操作系统已经从简单走向成熟,比较著名的有WindowsCE、μCLinux、μC/OS-II、VxWorks、PalmOS和Linux等。

基于实时性、成本以及开发难度方面的考虑,系统设计时选择了μC/OS-II—开放源代码的嵌入式实时操作系统。

实时操作系统μC/OS-II是一个源码公开、可移植、可固化、可裁剪及占先式的实时多任务操作系统,它运行优先级最高的就绪任务,其绝大部分源码是用C语言编写。

μC/OS-Ⅱ的正常运行需要处理器平台满足以下要求:

●处理器的C编译器能产生可重入代码。

●用C语言就可以打开和关闭中断。

●处理器支持中断,并且能产生定时中断(通常在10至100Hz之间)。

●处理器支持能够容纳一定量数据(可能是几千字节)的硬件堆栈。

●处理器有将堆栈指针和其它CPU寄存器读出和存储到堆栈或内存中的指令。

S3C2410处理器采用ARM920T内核,内部共有37个寄存器,其中R13通常用作堆栈指针,只要系统RAM空间允许,堆栈空间理论上没有限制。

ARM处理器提供ARM指令和Thumb指令两种指令集,每种指令集都包含有丰富的指令对堆栈进行操作,可以随意的对处理器中的寄存器进行堆栈操作。

根据堆栈生长方向的不同,可以生成4种不同的堆栈,分别是满递增、空递增、满递减(此移植中使用的是满递减方式)、空递减。

芯片内集成5个定时时钟,任何一个都可以产生定时中断,满足第三条要求。

ADS集成开发环境的内置编译器可以产生可重入代码,并且支持内嵌汇编,C环境中可任意的进行开关中断操作。

综上所述,从理论上讲μC/OS-Ⅱ完全可以移植到S3C2410A上运行。

2.2.3嵌入式GUI的选择

图形用户界面GUI(GraphicUserInterface)是系统与用户交流沟通的一个平台,为用户提供了友好的人机界面和简单的图形化操作,是嵌入式软件平台的重要组成部分。

嵌入式GUI要求简单、直观、可靠、占用资源少并且反应快速,以满足嵌入式系统中硬件资源有限的要求。

独立开发嵌入式GUI需要大量的人力物力,所以对于大多数用户来说一般采用目前比较成熟的GUI系统,从而将更多的精力用来开发自己的应用程序。

面向比较流行的嵌入式GUI系统有:

Microwindows、MiNiGUI、OpenGUI、Qt/Embedded和μC/GUI等。

基于μC/OS-II的图形用户界面支持系统的选型,我们有多种选择,对上述5种嵌入式图形用户界面进行了综合比较,μC/GUI在API完整性、函数库大小、可移植性、多进程执行性、健壮性、执行效率等各方面都具有优势,符合本系统对嵌入式GUI的要求,因此选择μC/GUI作为本系统的嵌入式GUI。

图2-1系统平台设计框图

2.34X4键盘的简介

 

2.5本章总结

本章给出了嵌入式键盘系统的平台选配,包括系统的MCU内核、操作系统、GUI选择等,并给出了相关功能模块如S3C2410A、μC/OS-II实时操作系统、μC/GUI等的工作原理及相关介绍,最后给出了键盘驱动的总体设计方案。

 

第三章基于S3C2410A的嵌入式键盘驱动系统实现

ARM嵌入式系统在基于ARMCPU为核心的硬件平台和以ADS或相关软件集成开发环境为软件平台,在其基础上,搭建中间件、驱动程序及嵌入式操作系统平台,最终在此基础上完成ARM嵌入式系统应用的开发。

嵌入式系统硬件平台结构主要分为2大部分:

一部分为系统主板,为基于ARM的最小系统,包括ARMCPU、Flash、SDRAM、键盘等最基本部分;另一部分为系统扩展板,提供了用于完成各个不同硬件的功能模块。

3.1硬件总体结构设计

文章选择基于ARM920T精简指令集的S3C2410A微处理器作为硬件的控制核心,附加外围的电源、晶振、调试接口、SDRAM,Flash,人机接口等功能模块构成嵌入式键盘驱动的硬件平台。

硬件的整体结构设计如图3-1所示。

图3-1基于S3C2410A的硬件整体设计

各部分功能表述如下:

●电源电路:

电源电路为5V到3.3V和5V到1.8V的DC-DC转换器,给MCU的I/O和ARM内核供电,向系统提供+5V、+3.3V、+1.8v电压;

●时钟电路:

32.768K有源晶振为系统提供工作时针,通过片内PLL电路倍频为50MHZ作为微处理器的工作时钟;

●复位电路:

复位电路主要完成上电、掉电复位和系统在运行时用户的按键复位功能。

本系统所采用专门的系统监视复位芯片IMP811S,可以手动控制系统的复位,还可以实时监控系统的电源;

●Flash存储器:

是一种可在线擦写,掉电后数据不丢失的存储器,具有功耗低、容量大、擦写速度快等优点。

本系统包含2MBNORFlash和32MBNANDFlash存储器,内部存放系统引导代码、μC/OS-II内核、用户程序等。

●SDRAM:

SDRAM(SynchronousDynamicRandomAccessMemory)是同步动态RAM,具有容量大、成本低、存储快等优点,广泛应用在嵌入式系统中。

S3C2410A处理器内部没有集成的SRAM,无法满足本系统的需要,因此我们扩展了两片SDRAM芯片HY57V561620,主要用作程序运行空间、数据和堆栈区。

●JTAG接口电路:

JTAG是一种国际标准测试协议,主要用于芯片内部测试以及对系统仿真和调试。

本系统采用14脚JTAG仿真调试接口电路,芯片内部有JTAG核,可以通过外部仿真器与开发系统连接调试;

●键盘:

本系统采用HD7279芯片,该芯片支持IIC总线协议,可以扩展64位键盘,驱动8个LED数码管;

●LCD接口:

支持多种尺寸的STN、TFTLCD。

3.2电源电路设计

由于S3C2410A的内核电压为1.8V/2.0V,I/O模块和存储器供电为3.3V,而电路板、LCD屏及USB接口等提供供电电压外部设备通常为5V,因此系统需要1.8/2.0V,3.3V及5V共三种电压。

图3—2系统的5V电源

图3-3S3C2410A的电源电路

本课题设计中的电源系统包括交流电源和直流电源。

首先选用或自制由交流到直流(AC-DC)的直流稳压电源输出5V电压,电流大小根据外部设备及接口情况,选择1A、1.5A或更大的电流输出。

目前在S3C2410A中使用广泛的DC-DC模块是ALPHA公司的AS1117AU系列,尾标1.8、3.3分别代表输出电压值为1.8V和3.3V。

本课题的电源电路设计如下图3-2与图3-3所示。

3.3时钟电路设计

S3C2410A的主时钟源来自外部晶振或外部时钟。

时钟发生器有一个振荡放大器,其外部需要接一个石英振荡器。

同时它还有一个锁相环(PLL),其输入信号是低频振荡器的输出,输出信号是S3C2410A的需的高频时钟(倍频作用)。

S3C2410A的时钟电路的设计见图3-4。

图3-4S3C2410A时钟电路

3.4复位电路设计

微控制器在上电时状态并不确定,将造成微控制器不能正常工作。

为解决这个问题,所有微控制器均有一个复位逻辑,它负责将微控制器初始化为某个确定的状态。

多数嵌入式系统一般采用专用复位电路IC芯片,如IMP811等。

S3C2410A的复位电路设计见下图3-5。

图3-5S3C2410A复位电路

3.5存储器接口电路设计

S3C2410A内部没有存储器,因此必须采用总线方式扩展外部存储器,包程序存储器和数据存储器。

3.5.1数据存储器SDRAM的接口设计

在本设计中数据存储器选用了典型的SDRAM(SynchronousDRAM)存储器芯片HY57V641620B两片,如下图3-6所示,它是1M×4Banks×16Bit的SDRAM芯片,带自刷新电路、16条数据线,11条地址线,由于是SDRAM,因此容量为8M。

通过S3C2410A的nSCLK0和nSCLK1对两片HY57V641620B进行选择存储,可实现32位的数据存储功能。

图3-6SDRAM存储器电路

3.5.2程序存储器NANDFlash的接口设计

通常使用的Flash有NORFlash和NANDFlash两种,由于NORFlash读取速度快,多用于存储操作系统等重要信息;大容量的信息通常存储在NANDFlash中,可在线擦除。

本设计中选用的程序存储器是SAMSUNG公司的32Mx8BitNANDFlashMemoryK9F5608U0A。

电路设计见下图3-7。

图3-7NANDFlash存储器电路

3.6键盘及LED显示器接口设计

设计过程中,键盘采用的控制芯片是HD7279A。

HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或独立的LED的智能显示驱动芯片。

该芯片同时还可连接多达64键的键盘矩阵,单片即可完成显示键盘接口的全部功能。

内部含有译码器可直接接受BCD码或16进制码并同时具有两种译码方式。

电路设计如图3-8所示。

图3-8键盘及LED显示器接口

3.7LCD控制器接口设计

S3C2410A与LCD液晶显示屏的连接很简单,直接将相关引脚相连即可,无需其他硬件。

本系统中选用的LCD为5.7寸,256色,640×480像素的TFT(ThinFilmTransistor,薄膜场效应晶体管)彩色显示屏。

电路设计如图3-9。

图3-9S3C2410A与LCD控制器接口TFT液晶显示屏的连接

3.8.3JTAG接口电路设计

为便于系统设计开发与系统扩展,设计了一个JTAG接口电路,方便程序的下载与联机在线调试。

其设计电路如图3-12所示。

S3C2410A采用ARM公司提供的标准20脚JTAG仿真调试接口电路,芯片内部有JTAGCORE,因此,可通过外部的JTAG调试电缆或仿真器和开发系统连接调试。

图3-12JTAG接口电路

 

第四章系统软件设计

嵌入式系统软件部分,一般是按3层划分的:

设备驱动层、实时操作系统层、应用程序层。

嵌入式系统的硬件是嵌入式系统的基础,决定了嵌入式系统的运算速度和扩展功能等,提供了嵌入式软件运行的物理平台和通信接口;嵌入式系统的软件是嵌入式系统的灵魂,包括嵌入式操作系统和嵌入式应用软件,决定了硬件的操作模式,通过操作系统和应用程序发挥硬件装置的功能。

其中,嵌入式操作系统是用来支持嵌入式应用的系统软件,通常包括与硬件相关的底层软件、系统内核、图形用户界面(GUI)、设备驱动接口等。

4.1实时操作系统μC/OS-II在S3C2410A上的移植

μC/OS-II在S3C2410A上的移植主要包括两个部分的代码配置或者编写:

第一部分与应用相关的配置,体现在对OS_CFG.H和INCLUDES.H配置上;第二部分与特定处理器(这里指S3C2410A)相关的代码编写,体现在OS_CPU.H,OSCUP_A.ASM,OS_CPU_C.C编写上。

这两部分代码的正确的配置与编写,只能确保基于S3C2410A的μC/OS-II微内核代码形成,并不能立即烧入目标板运行,要在目标板上运行,必须还要编写目标板初始化引导程序,初始化引导程序主要实现硬件初始化、内存映射(S3C2410A不支持二次映射)、中断向量初始化、系统堆栈空间的分配、等功能,以引导μC/OS-II的正确运行。

移植过程中选用的开发工具为ARM公司提供的ADS1.2集成开发环境。

移植工作主要集中在与处理器相关的3个文件:

OS_CPU.H,OS_CPU_C.C,OS_CPU_A.S。

其中OS_CPU.H文件主要包含与编译器相关的数据类型定义、堆栈类型定义、两个宏定义和几个函数说明OS_CPU_C.C包含与移植有关6个C函数,为OS2TaskStkInit(),OSTaskCreateHook(),OSTaskDelHook(),OSTaskSwHook(),OSTaskStatHook(),OSTimeTickHook()。

除第一个任务堆栈初始化函数外的5个函数为钩子函数,需要声明,没有实际内容,由系统函数调用,以便用户能在操作系统中加入自己需要的功能。

OS_CPU_A.S中包含与移植有关的4个汇编语言函数,为OSStartHighRdy(),OSCtxSw(),OSIntC2txSw(),OSTickISR()。

μC/OS-II在S3C2410A上的移植流程图如图4-1所示。

 

图4-1μC/OS-II移植流程

4.1.1 OS_CPU.H文件移植

μC/OS-II不使用C语言中short,int和long等数据类型定义,因为它们与处理器类型相关,隐含不可移植性,因此必须对其进行移植。

H文件中主要包含与编译器相关数据类型定义、堆栈类型定义、两个宏定义和几个函数说明。

数据类型定义部分代码如下:

typedefunsignedcharBOOLEAN;/*布尔变量*/

typedefunsignedcharINT8U;/*无符号8位整型变量*/

typedefsignedcharINT8S;/*有符号8位整型变量*/

typedefunsignedshortINT16U;/*无符号16位整型变量*/

typedefsignedshortINT16S;/*有符号16位整型变量*/

typedefunsignedintINT32U;/*无符号32位整型变量*/

typedefsignedintINT32S;/*有符号32位整型变量*/

typedeffloatFP32;/*单精度浮点数(32位长度)*/

typedefdoubleFP64;/*双精度浮点数(64位长度*/

typedefINT32UOSSTK;/*堆栈是32位宽度*/

另外,带T变量的ARM7处理器内核有两个指令集,用户任务可使用两种处理器模式即用户模式和系统模式,本移植使用软中断指令SWI作为底层接口,使用不同功能号区分不同函数。

在ADS中,用关键字__swi声明一个不存在的函数,则调用该函数就在调用的地方插入一条SWI指令并可指定功能号。

SWI函数部分代码如下:

__swi0x00voidOS-TASK-SWvoid;/*任务级任务切换函数*/

__swi(0x01)void-OSStartHighRdy(void);/*运行优先级最高的任务*/

__swi(0x02)voidOS-ENTER-CRITICAL(void);/*关中断*/

__swi(0x03)voidOS-EXIT-CRITICAL(void);/*开中断*/

__swi(0x42)voidOSISRBegin(void);/*中断开始处理*/

__swi0x43intOSISRNeedSwapvoid;/*判断中断是否需要切换*/

__swi(0x80)voidChangeToSYSMode(void);/*任务切换到系统模式*/

__swi(0x81)voidChangeToUSRMode(void);/*任务切换到用户模式*/

由于ADSv1.2的C语言编译器只支持满递减堆栈,所以只能定义堆栈增长方向从上向下,即#defineOS_STK_GROWTH1;

4.1.2 OS_CPU_C.C文件移植

每个任务要有自己的堆栈空间,以便进行任务切换时能将当时处理器现场保存到任务堆栈空间中,在下次执行时再恢复出来。

因此必先确定任务堆栈结构,而任务堆栈结构与CPU体系结构、编译器密切关联。

在ARM体系下,处理器现场通常指{PC,LR,R0-R12,CPSR,SPSR}。

本移植堆栈结构如图4-2所示。

任务堆栈由高到低依次将保存PC,LR,R12,R11,R10…R1,R0,CPSR等。

每个任务有独立的OSEnterSum,在任务切换时保存和恢复各自OsEnterSum值。

各个任务开关中断的状态可不同,这样实现了开关中断的嵌套。

图4-2 任务堆栈结构图

堆栈任务初始化代码即函数OSTaskStkInit(),该函数用于系统创建用户任务时,建立并初始化任务堆栈,其跟处理器硬件体系密切相关,它将所有的寄存器压栈,返回新的堆栈栈顶,并将它们保存在该任务的任务控制块OS_TCB中,最终使初始化后的堆栈跟刚发生过一次中断一样。

这样,系统无需对调度程序作特殊处理即可直接对新任务进行调度。

由于在S3C2410A中堆栈是按32位数据类型来进行操作,所以堆栈数据类型OS_STK声明为32位无符号整数。

OS2TaskStkInit()函数关键代码如下:

*stk=(OS-STK)task;/*pc*/

*__stk=(OS-STK)task;/*

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2