NiosII中断简述及中断调试技巧.DOC

上传人:国*** 文档编号:782136 上传时间:2018-11-01 格式:DOC 页数:23 大小:113KB
下载 相关 举报
NiosII中断简述及中断调试技巧.DOC_第1页
第1页 / 共23页
NiosII中断简述及中断调试技巧.DOC_第2页
第2页 / 共23页
NiosII中断简述及中断调试技巧.DOC_第3页
第3页 / 共23页
NiosII中断简述及中断调试技巧.DOC_第4页
第4页 / 共23页
NiosII中断简述及中断调试技巧.DOC_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、Nios II 中断简述及中断调试技巧 发表于 2008/11/4 20:06:46 NiosII 的中断处理方式带有典型的 RISC 处理器的特征,所有的中断处理都从同一入口进入,然后由软件加以分配。负责分配工作的软件叫系统 ISR,它是由开发系统提供的,自动的连接到可执行程序上。系统 ISR 维护着一个中断向量表,表中的每一项代表着一个专项处理程序的入口。所有的专项处理程序都是由用户定义然后注册到中断向量表中的,叫做用户 ISR。系统 ISR 的入口地址是在 SOPC_Builder 中定义的,叫 Exception Address。和中断有关的 CPU 寄存器有: ctl0、ctl1 、

2、ctl3、ctl4。Ctl0 是程序状态字,它的 bit0 位是全局中断允许位,1 代表允许,0 代表禁止。Ctl1 是程序状字的堆栈,当发生中断时,由它保留一个程序状态字的备份。Ctl3 是中断允许寄存器,其中每一位控制着一个中断源,1代表允许,0 代表禁止,共计 32 位。Ctl4 是中断申请寄存器,每一位对应着一个中断源的中断请求,1 代表有中断, 0 代表没有*计 32 位。 NiosII 的中断处理过程是这样的:1、 考备一份程序状态字到 ctl1;2、 清除全局中断允许位 PIE,禁止中断;3、 将下一条将执行的指令的地址存入 R29,以便中断返回之用;4、 跳转到中断入口地址,进

3、入系统 ISR;5、 系统 ISR 保护现场;6、 系统 ISR 检测 ctl1 的 PIE 位,如为 0 则进入软中断处理程序从 11 继续,否则由 7 继续;7、 系统 ISR 检测 Ctl4,如果有中断申请,则转到硬中断处理和序,否则进入软中断处理程序;8、 硬中断处理程序将检测中断申请号,并检索中断向量表,跳转到用户中断处理程序;9、 用户中断处理程序做出具体的处理,最后返回系统 ISR;10、 系统 ISR 恢复现场,并返回;11、 软中断处理程序进行陷井指令、模拟指令判断,并做相应处理,然后返回系统 ISR;12、 系统 ISR 恢复现场并返回; 软中断处理程序是用来处理由软件发起

4、的中断事件的,包括调试指令引起的中断及未定义指令引起的中断。目前未定义指令的处理主要为乘、除法运算指令的处理,不支持用自定义的操作码,除用户自己修改系统程序。如果软中断处理程序遇到了一个不识别的操作码,将返回一个不确定的结果。与用户编程相关 API 函数有:1、 alt_irq_register();2、 alt_irq_disable();3、 alt_irq_enble();4、 alt_irq_disable_all();5、 alt_irq_enable_all();alt_irq_register()是向系统 ISR 注册用户 ISR 的 API 函数。其原形为:int alt_ir

5、q_register( alt_u32 id,void *context,void (* isr)(void *, alt_u32)id 代表被服务的中断向量号;context 是运行参数指针,将来作为第一个参数传给用户 ISR;Isr 是一个函数指针,指向用户 ISR 入口;如果注册成功,函数返回 0,并允许全局中断及被服务中断;不成功返回非 0 值。Alt_irq_disable()用来禁止某个中断服务。原形为:Int alt_irq_disable(alt_u32 id)Id 为对应的中断号;返回值为 0;alt_irq_enable()与 alt_irq_disable()对应,用来开

6、启某个中断服务。原形为:int alt_irq_enable(alt_u32 id)alt_irq_disable_all()用于关闭全局中断,原形为:alt_irq_context alt_irq_disable_all(void)返回值为中断控制寄存器的值。Alt_irq_enable_all()用于开启全局中断,原形为:void alt_irq_enable_all( alt_irq_context context)context 代表中断控制寄存器的值。用户定义的用户 ISR 程序要符合统一的原形定义,即:void isr(void * context, alt_u32 id)函数名没

7、特别的要求,与一般函数一样。入口参数与返回值要严格按标准形式定义,否则系统 ISR 将不能正确的对其调用。 系统分类: 嵌入式 用户分类: NIOS | 标签: 无标签 来源: 转贴 发表评论 阅读全文(300) | 回复(0) 0 NIOS II 开发常见问题 发表于 2008/9/26 14:34:45 1. 怎样在 TCL 脚本分配管脚 source .tcl 有点问题:# source stratix_pin_assign.tclcouldnt read file “stratix_pin_assign.tcl“: no such file or directory答: From th

8、e Tools menu select Tcl s cripts, and then from the project folder choose the setup s cript for your particular development board, and click Run. 2D:TEST ios_sst60 下载时出现错误:Error: Cant configure device. Expected JTAG ID code 0x020010DD for device 1, but found JTAG ID code 0x020B40DD.答: SOPC 所选器件和开发板上

9、的不一致。 3在 NOIS II 中 Bulid 例程 hello_world 都出现了错误,错误提示为:gdrive/c/altera/kits/nios2/components/altera_nios2/HAL/src/alt_busy_sleep.c:68: error: parse error before / token 等错误全部由 alt_busy_sleep.c 引起,都是关于括号不匹配的问题,而 alt_busy_sleep.c 是 IDE 中的一个默认程序。这个错误同样出现在D:TESTDE2Projectsoftware ios2 ,培训用的一个简单实验。答:找到 sys

10、tem.h 文件,里面有个关于系统时钟频率的设置项,应该是没有赋值,你手动赋值。比如你用 50MHZ 的时钟,就设成 50000000。如果总是出现上述问题,可能和软件有关系,建议重新安装软件。注意 quartus 和 NIOS 安装版本一定要相同, 不能混装。 4这个错误是什么原因引起,把那个 sdk_arm 删除后,又提示另一个地方出错。答:运行 NIOS II IDE,点 Project-Clear,重新 Builde,应该可以解决问题。 5在 SOPC 中 Generate 出现如下错误是怎么回事? Error: Generator program for module epcs_co

11、ntroller did NOT run successfully. 只要在 SOPC 中加入epcs_controller 就会出现此错误,无法生成一个元件。答:可能和软件有关系,建议重新安装软件(这个问题是我刚学 NIOS 遇到的最头痛的一个问题,问题的原因是 Quartus 和 Nios 安装的版本不一致)。 6在 Nios II IDE 中,怎样打开一个已经存在的工程?每次新建工程比较麻烦。答:指定一个 Nios II IDE 的工作目录,就打开了那个目录下存在的工程。另外,在Nios II 中是可以建立多个工程的。 7在 Quartus II 中编译出现如下错误怎么办?Error:

12、Cant place pins assigned to pin location Pin_AE24 (IOC_X65_Y2_N2)答:按 F1 可以查看帮助,出现这样的错误的原因是:CAUSE: You assigned two or more pins to the specified location, but the Fitter cannot place all the pins in that location.删除这个管脚即可。有一种比较简便的方法,就是在工程目录中找到一个后缀为 QSF 的管脚配置文件,查找 Pin_AE24 删除那行语句就行了。 8.如何在 NIOS II ID

13、E 下跟踪查看变量的定义或者函数的定义?答:按住 CTRL 键,鼠标移动到变量或者函数名的地方,就可以发现这些地方高亮显示,单击就可以进入到变量或者函数定义的地方。 9. 在 count_binary.c 有这样一段程序,它是如何操作的? unsigned int data = segmentshex 来向该组件写入数据,就会导致上述错误。解决办法:1.可以修改 sopc 系统,为该 PIO 改名为 LED_PIO ;2.在 hello_led.c的前面给 LED_PIO_BASE 赋值,如#define LED_PIO_BASE 0x00001800,后面的这个地址要与 SOPC 中的地址对

14、应。 11. 如何在 NIOS II 中驱动外部芯片或设备?答:在开发过程中,我们经常会使用外接一些芯片,或外接一些实用电路,比如 AD 芯片、串并转换芯片等等,那么如何在 NIOS II 中去使用这些芯片呢? 我们在开发中会有多个选择:1如果这个芯片是使用数据和地址总线的,并且补线时没有足够的单独引脚,那么这个芯片必须挂接在 tri_stat 总线上,这种用法和我们以往单片机或 MCU 类似,在 SOPC Builder 中直接定义用户逻辑,如果有额外的控制引脚,就需要用 PIO 来驱动,虽然公用数据地址线节省了引脚,但做控制时序费劲了。2如果这个芯片单独使用数据和地址,那么我们会直接做成

15、Avalone 总线的 Slave 设备,在 Sopc Builder 中自己定义 component。需要写 HDL 模块,自己定控制、状态、数据寄存器和控制位定义,这种方式控制灵活,易于实现复杂的控制时序。3在 Quartus II 工程中画电路模块(或用 HDL 写电路模块),这种方式是独立于SOPC 定义的模块之外的,做一个纯电路的处理模块,有时候会比较容易实现某些灵活的处理。 12.在 SOPC 添加 Avalon Trisatate Bridge 时,提示有如下错误,该如何解决?Tri state bridge/tristate master requires a slave of

16、 type Avalon tristate.Please add a slave of type Avalon tristate.Generate 按钮为灰色,无法 Generate答:需要一个专门接三台桥的设备, 把 flash 添加到 sopc 中就可以了。 13. 在做 count_binary 这个例子时,出现一个错误: error: BUTTON_PIO_IRQ undeclared (first use in this function) BUTTON_PIO_IRQ 的值如何给他定义?答:这个错误可能是在 sopc builder 中定制的 pio 端口名称是否与程序中用的不一致

17、,要和程序里的一致,把 pio 组件的名称就改为 button_pio。 14.在 Quartus II 中编译时出现如下错误:Error: Node instance “cpu_bht“ instantiates undefined entity “cpu_bht_module“点击错误的地方弹出一个对话框这个错误是怎么回事?怎样解决?答:可能是在 SOPC 中所选的 CPU 型号不正确,换一个试试。 15.怎样自动分配管脚?答:在 Quartus II 自动分配管脚有一个方法,点击 Assignments-Import Assginments,导入一个管脚分配文件,后缀为.csv .txt

18、 等,前提是在顶层原理图中各个输入输出的名称要和这个文件中的名称一致。 16.在 NIOS II 中编译时出现如下错误怎么解决?错误是不是由 SOPC 中的 RAM 引起?region ram is full (count_binary.elf section .text). Region needs to be 24672 bytes larger.address 0x80c1f8 of count_binary.elf section .rwdata is not within region ramUnable to reach edge_capture (at 0x00800024) f

19、rom the global pointer (at 0x0081419c) because the offset (-82296) is out of the allowed range, -32678 to 32767.答:可能时 RAM 的大小不够,也有可能是中断地址(exception address) 的偏余量不够,设置大些就可以了。如果还是出现这个问题,加一个 SDRAM 试试。 17在 Quartus II 中,为什么编译一些样板工程都会出错?Error: DDR timing cannot be verified until project has been successfu

20、lly compiled.Error: Evaluation of Tcl s cript auto_verify_ddr_timing.tcl unsuccessfulError: Quartus II Shell was unsuccessful. 2 errors, 1 warning答:在做样板工程时要注意一个问题:Due to the library paths that are coded into the Quartus settings for this project, if a user wishes to modify the hardware design they m

21、ust first strip out any old paths from within the project settings file (qsf)在 qsf 文件中找到类似语句set_global_assignment-nameVHDL_FILE C:/MegaCore/ddr_ddr2_sdram-v3.2.0/lib/auk_ddr_tb_functions.vhd“这里的目录是初始的目录,把它改为正确的目录。 18.在 NIOS II IDE 编译时出现如下错误是怎么回事?system_des cription/alt_sys_init.c:75: error: ONCHIP_M

22、EMORY_BASE undeclared here (not in a function)system_des cription/alt_sys_init.c:75: error: initializer element is not constantsystem_des cription/alt_sys_init.c:75: error: (near initialization for ext_flash.dev.write)system_des cription/alt_sys_init.c:75: error: initializer element is not constants

23、ystem_des cription/alt_sys_init.c:75: error: (near initialization for ext_flash.dev.read)答: ONCHIP_MEMORY_BASE 没有赋值,在 alt_sys_init.c 程序的开头加上#define ONCHIP_MEMORY_BASE 0x00000000 后面的这个地址要与 SOPC 中的对应。 19. 在 NIOS II IDE 编译时出现如下错误是怎么回事?Pausing target processor: not responding.Resetting and trying again:

24、 FAILEDLeaving target processor paused答:以下是一位 FAE 的回答:1. 关于 USB-Blaster 在 Nios II IDE 下载时会发生偶发性错误,这种现象主要是 IDE software 与 Nios II CPU 透过 USB-Blaster 在做通讯时发生错误,若是确认 FPG 上配置没有错误,连续发生错误的机率应该是相当的低,您只需要重新下载即可。2. 若您使用 Nios II IDE 6.0,请尽量配合 SOPC Builder 6.0 重新 build 您的 system,并且使用 Quartus II 6.0 重新 compile

25、您的 project,以减少 CPU 与 IDE software 不兼容的情形。 20.在 NIOS II IDE 中工程的 System Library 选项中的这几个选项代表什么意思?.text .rodata .rwdata 与 reset .exception 这几个地址之间的关系是什么?答: .text : 代码区 .rodata:只读数据区,一般存放静态全局变量 .rwdata:可读写变量数据区另外还有.bss:存放未被初始化的变量。 .text the actual executable code .rodata any read only data used in the e

26、xecution of the code .rwdata where read/write variables and pointers are stored heap where dynamically allocated memory is located stack where function call parameters and other temporary data is stored 21. 怎样在 NIOS II 中操作 PIO,提供一种参考方法。答: hello_led.c 是这样写 IO 口的:IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BA

27、SE, led);首先在 altera_avalon_pio_regs.h 找到定义i nclude #define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0)#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data)因此在 NIOSII 中可以调用i nclude 库函数 IORD/IOWR 来操作 PIO。在 smallsoftwarehello_led_0_syslibDebugsystem_des cription 下的 system.h中,有以下内容:#de

28、fine LED_PIO_TYPE “altera_avalon_pio“#define LED_PIO_BASE 0x00004000其中 LED_PIO_BASE(IO 寄存器地址?)为 0x00004000 同 SopcBuilder 中设置一致!(其实在 SopcBuilder 中有关 NiosII 的配置,就是通过 system.h 来传送给 IDE 的!)最后用 IOWR(0x00004000, 0, led);替代IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);编译,下载到开发板上, 运行成功! 22.怎样让 SDRAM 和 FLAS

29、H,SRAM 的地址公用?答: sdram 可以和 sram,flash 共用数据总线和地址总线. 在 sopc builder 中添加SDRAM 控制器时,在其 share pins via tristate 选择项上勾上 Controller shares dq/dqm/addr IO pins 选项,这样 sdram 可以和 sram,flash 共用数据总线和地址总线.但是ATERA 不推荐这样做,因为这样会降低 SDRAM 控制器的性能,在 FPGA 芯片管脚资源比较紧张的时候迫不得已才这样做。23.怎样使用 DE2 板上的数码管,绑定管脚时需要注意什么?请举一个例子说明。答: DE

30、2 板上的数码管只用了 7 位,小数点位默认为高电平。例如,在做例程count_binary 时,需要用到两个数码管,以实现 00 到 FF 的计数,在 SOPC 添加一个 16位的 PIO SEVEN_SEG15.0,绑定管脚时注意:使 SEVEN_SEG0.6帮定到数码管HEX06.0位,SEVEN_SEG8. 14绑定到数码管 HEX16.0位,SEVEN_SEG7 和SEVEN_SEG15直接接 VCC,这样才能让两个数码管正常显示并计数。 24. 在 NIOS II IDE 中调试,编译通过的软件时,出现了下面的提示,是什么原因?Using cable “ByteBlasterII

31、LPT1“, device 1, instance 0x00Processor is already pausedDownloading 00000000 ( 0%)Downloaded 57KB in 1.2s (47.5KB/s)Verifying 00000000 ( 0%)Verify failedLeaving target processor paused答: Verify failed 这个问题说明板子的复位电路可能有问题,或装载程序的外部 SRAM或 SDRAM 和 CPU 的连接或时序有问题,也有可能是软件偶尔的错误。若是软件偶尔的错误,可以先复位一下 CPU,然后再下载程序

32、;或者断电后重新下载.sof 和 NIOS II 程序 25.在练习 C:alterakits ios2_51examplesverilog niosII_cycloneII_2c35 的工程时,里面有很多元件 DE2 板上都没有对应的管脚,比如网络元件 lan91c111,使用的 IP 核,还有 24 位的 ext_flash,而 DE2 板上的 FLASH 只有 22 位。是不是 SOPC 中只能让DE2 板上有对应管脚的元件存在,其它的只能删除?答:这个目录下的 example 是针对 altera 自己的板子的,和 DE2 硬件不能对应,只能作为参考,或者做一些修改后用。 26.在 S

33、OPC 中加了一个 200KB 的 onchip_memory ,为什么在 Quartus II 编译时出现这个错误?Error: Selected device has 105 RAM location(s) of type M4K RAM. However, the current design needs more than 105 to successfully fit答: SOPC 中的 onchip_memory 和 M4K RAM 根本就不是一个概念。Quartus II 中编译出现这个错误,是由于设计中用到了太多的 M4K。 27. 关于 sopc-builder 中 rese

34、t address 的设置,一直搞得不是很明白。答: SOPC 中的 reset address 指定的是最终全部软件程序代码下载到的地方,并且程序从 reset address 启动。SOPC 中的 exception address 指定的是系统异常处理代码存放的地方。如果 exception address 和 reset address 不一样,那么程序从 reset address 启动后将把放在 reset address 处的系统异常处理代码拷贝到 exception address 。NIOS II 软件中的 text address 指定的是程序运行的地方。如果 text a

35、ddress 和 reset address 不一样,那么程序从 reset address 启动后将把放在 reset address 处的普通只读程序代码拷贝到 text address 。NIOS II 软件中的 rodata address 指定的是只读数据的存放地方。如果 rodata address 和 reset address 不一样,那么程序从 reset address 启动后将把放在 reset address 处的只读数据拷贝到 rodata address 。NIOS II 软件中的 rwdata address 指定的是可读写数据的存放地方。如果 rwdata ad

36、dress和 reset address 不一样,那么程序从 reset address 启动后将初始化 rwdata address 处的可读写数据。 28. 如何提高 NIOS II 系统的性能?答:主要可以从这几个方面入手:1、使用 fast CPU 类型。2、提高系统主频。3、优先在 SRAM 中运行程序,SDRAM 次之,最后选择 FLASH 中运行。4、使用片内 RAM 作为数据缓冲,片外 SRAM 次之,最后选 SDRAM。5、IO 数据传输尽可能采用 DMA。6、对能并行处理的数据考虑使用多 CPU 协同处理。7、典型算法做成用户指令,有 256 条可以做,足够你用的。8、能用

37、 HDL 模块来完成工作吗?能,就用 HDL 模块做成外设来完成吧9、采用 C2H。 29.如何优化 NIOS II 里的应用工程?答: Optimize your Nios II application design!1.Creat an Blank Project:Select Altera Nios II “ C/C+ Application“2. In main.cyour main fuctional c/c+ file:i nclude “system.h“i nclude “alt_types.h“#.int main (void) _attribute_ (weak, alia

38、s (“alt_main“);int alt_main (void).return 0;3.“System Library Properties“ OptionsSelect “Clean EXIT“Select “Small C Library“Select “Reduced Device Drivers“Spicify linker s cript position, to ext_flash, ext_ram or on-chip-ram 30. 关于 verify failed 的总结1. SDRAM 的时序不对有时候不正确的 pll clock phase shift for sdr

39、am_clk_out 就会导致 SDRAM 不能正常工作:2. SDRAM 的连线不对,物理板子的连线问题3. 在调试的时候, 程序下载的空间不是非易丢失存储器(non-volatile memory)或者存储器的空间不够也会导致这个错误4. QuartusII 的默认设置导致的错误QuartusII 默认将所有没有使用的 IO 口接地,这种时候可能导致某些元器件工作不正常;最好将不用的 IO 口设置为三态5. USB-blaster 坏了,或者 JTAG 通信的信号噪声太大JTAG 的端口需要一个弱上拉电阻来抗干扰6. 确保你的 sdram 既连接到 CPU 的指令总线也连接到 CPU 的数

40、据总线 31.关于 DMA 传输的几点说明:1memory 到 外设的传输,调用 alt_dma_txchan_ioctl()时,有一个参数为alt_dma_tx_only_on 等2调用 alt_dma_txchan_send 函数时,在传输结束前就返回一个值,如果此值为负的话,说明发送请求失败。正确传输结束后,调用 done 函数。3 接收函数 alt_dma_rxthan_prepare 类似上面的 1 和 24传输结束,有两种可能:数据传完或者 end of packet(要预先使能)5Sopc builder 中例化时要制定哪些可以访问 DMA 的主端口,DMA 的 avalon s

41、lave 端口要接 cpu。实际传输的最大数可以帮助确定设置的位数6alt_dma_txchan_ioctl 用于控制 dma 的一些工作性质,使用多的话可以用信号量等来“ 抢占”7dma 传输最小应该传 4 字或者其倍数。 32. 1. 建立 CPU 时,下面的那个 HardWare Multiply 里面可以选Embedded Multipliers,Logic Elements,None,这三个选项有什么区别呀?答: Embedded Multipliers,使用专门的内嵌硬件乘法单元(不可编程,仅能做乘法,且乘法速度最快),不是 RAM。 Logic Elements,使用逻辑单元也就

42、是 FPGA 中的查找表(速度较慢)。None, 那就是不要声长硬件乘法器了,这是只能通过软件模拟乘法,速度最慢。 33.下载是出现“not responding”错误的又一点发现:答:在设计的过程中,经常使用板子上内部的两个晶振作为 CPU 或者有些信号的时钟,而且习惯用 osc_27 和 osc_50 命名。在绑定管脚时又经常导入一个 CSV 文件,没有手动一一绑定,而在那个 CSV 文件中晶振管脚名分别为 CLOCK_27,CLOCK_50,这样系统的 CPU根本就没有绑定管脚,不出错才怪。把名称改为 CLOCK_27,CLOCK_50,重新编译下载就可以了。 34. 安装了 nios2

43、linux-1.4 之后,为什么在 New-Project 时并没有出现 Microtronx NIOS II 选项呢?答:这个问题好像难倒过很多人,其实在运行 nios2linux-1.4 安装的第一步,里面有个提示:Information Regarding the Installation ProcedureIMPORTANT: Please ensure that you specify the correct path for the Altera Nios II Kit installation directory and the Cygwin root directory. Th

44、e typical Altera Nios II Kit directory is:c:alterakits ios2The typical Cygwin root directory is:c:alteraquartus50incygwin问题的关键就是上面的路径不正确。对于 Nios 5.1 和 6.0 的路径分别为 nios_51 和nios_60,都不是 nios2,所以安装后找不到模板工程很正常。但它的一些必要文件又确实是安装在了 nios_51 或 nios_60 中。我也遇到了过同样的问题,想到了一个简单的方法可以解决:1.把文件夹 nios_51 或 nios_60 改为 ni

45、os2,启动 Nios II,就可以看到所需模板工程。2.退出 Nios II,把文件夹名还原。3.再次启动 Nios II,你会发现模板工程依然还在。 35Nios II 汉化解决方案答: NIOS II IDE 实际上是在 eclipse 平台上的一个应用插件,而 Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。可访问如下网站:1.Eclipse 官方网站 http:/www.eclipse.org/2.中国 Eclipse 社区 http:/www.eclipseworld.org/bbs/index.php下面介绍如何汉化 NIOS II(实际上只是汉化了 eclipse)1.打开 NIOS II,点 help-about NIOS II IDE,会看到有关 NIOS 的版权信息。可以看到NIOS II 5.1 的版本上的 Eclipse 版本是 Eclipse 3.0.12.在 Eclipse 官方网站上找到 Eclipse 3.0.1 多国语言包 NLpack-eclipse-SDK-3.0.x-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。