精华内容
下载资源
问答
  • 转载地址:... 一. 下载软件: 在www.verycd.com 中就可以找到:  [风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR...CD1 [风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR...C

    转载地址:http://hi.baidu.com/qiangjiewang/item/dcd67092a3ce8331336eeb2e

    一. 下载软件:    在www.verycd.com 中就可以找到:    [风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR...CD1    [风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR...CD2   

    二. 安装和部署:   1、 先安装daemon虚拟光盘软件;

       2、使用daemon tool映射(mount)虚拟文件(*.cue,*.bin)(如果没有这两个文件就直接添加iso的压塑包然后点对应的磁盘,进入后点setup.exe文件);

       3、一路选择默认安装,开始时的key根据DISK_ID的数值输入对应的序列号,name和company可以任意;(key附在文末,查找对应的版本对应的key,分清CD1和CD2)

             4、一直点击下一步,按默认情况安装,当出现Project Information 向导界面时,Project Name和Number of Tornado Seat 随便填写;

       5、到最后一步安装license时,选择第三项phone or fax,安装完毕;

    下面列出主要步骤:

    图一 进入启动后的界面



    图二 点右上角Accept,在点击下一步

    图三 name和company随便输入,Install输入序列号。注意不是下面显示的CD number

    图四 Project Name随便输入,Number of Tornado Seat随便输入个数字

    图五 选择安装目录



    图六




    图七 选择第三项phone or fax

    其他图片中没提的步骤选择默认即可。

       6、如果安装目录为C:\Tornado2.2,则在其目录下新建文件夹flexlm,将安装光盘下的CRACK目录下的license.dat拷贝到C:\Tornado2.2\flexlm;

       7、安装完毕后,如果从开始菜单直接运行tornado,会提示错误,这是因为安装还没有完成。这时你需要在windows里面设置一个环境变量LM_LICENSE_FILE = C:\Tornado2.2\flexlm\license.dat

    方法如下:点击我的电脑右键,选属性-高级-环境变量-新建一个环境变量名称为LM_LICENSE_FILE ,值为

    C:\Tornado2.2\flexlm\license.dat

       8、另外一种破解方法是在C盘Tornado2.2文件夹下你会发现一个setup.log文件,用ultraedit或vim打开,在最后一行你会发现一个注册表键值,进入注册表,找到这个键值HKEY_LOCAL_MACHINE\SOFTWARE\FLEXlm License Manager\LM_LICENSE_FILE,将其值修改为:C:\Tornado2.2\flexlm\license.dat

    注意上面是你软件装在C盘,如果装在D盘,对应的各个C盘改为D.

    各版本不同处理器对应的key序列号(注意查看软件对应的处理器)

    一、WINDRIVER.TORNADO.V2.2.FOR.COLDFIRE 
    CD1= Tornado 2.2/VxWorks 5.5 for ColdFire (CD1的内容)
    (DISK_ID: TDK-14627-ZC-01) (CD号)
    CD2= BSPs/Drivers for VxWorks 5.5: ColdFire (CD2的内容)

    (DISK_ID: TDK-14637-ZC-01) (CD号)

    软件大小:347M 
    CD1: A7K8B-MbE7p-9rKfE-Gz9aP-bE59C (CD1的序列号)
    CD2: A7K9e-Rb9Cp-FNB79-gzbdd-F999C(CD2的序列号)

    二、WINDRIVER.TORNADO.V2.2.FOR.SUPERH 
    CD1= Tornado 2.2/VxWorks 5.5 for SuperH 
    (DISK_ID: TDK-14625-ZC-01) 
    CD2= BSPs/Drivers for VxWorks 5.5: SuperH 
    (DISK_ID: TDK-14635-ZC-01) 
    CD1: dI&hi-qM6Ip-9rBb3-GzhsN-bE59g 
    CD2: BGphe-MbE7p-8rKf3-gzDPB-F999C 


    三、WINDRIVER.TORNADO.V2.2.FOR.XSCALE 
    CD1= Tornado 2.2/VxWorks 5.5 for SA/XScale 
    (DISK_ID: TDK-14622-ZC-01) 
    CD2= BSPs/Drivers for VxWorks 5.5: SA/XScale 
    (DISK_ID: TDK-14632-ZC-01) 
    软件大小:464M 
    CD1: dI&ge-Md37K-gPNfE-5phaS-bE59g 
    CD2: B7pge-Md3GK-gsQbE-gzDdB-F999C 

    四、WINDRIVER.TORNADO.V2.2.FOR.PENTIUM 
    CD1= Tornado 2.2/VxWorks 5.5 for PENTIUM 
    (DISK_ID: TDK-14611-ZC-01) 
    CD2= BSPs/Drivers for VxWorks 5.5: PENTIUM 
    (DISK_ID: TDK-14621-ZC-01) 
    CD1: cAQ8i-qP2I&-g$vT6-3&gjw-bEk9g 
    CD2: A7KbB-Rd37p-hNFBE-kzgaT-b9gpC 

    五、WINDRIVER.TORNADO.V2.2.FOR.68K 
    CD1= Tornado 2.2/VxWorks 5.5 for 68K 
    (DISK_ID: TDK-14626-ZC-01) 
    CD2= BSPs/Drivers for VxWorks 5.5: 68K 
    (DISK_ID: TDK-14636-ZC-01) 
    CD1: cAQ8E-uM6I&-8jsP6-AtgjP-bEk9g 
    CD2: AGK8e-RbE7p-8abA9-9UDdd-F9g9C

    六、WINDRIVER.TORNADO.V2.2.FOR.ARM 
    CD1= Tornado 2.2/VxWorks 5.5 for ARM 
    (DISK_ID: TDK-14624-ZC-00) 
    CD2= BSPs/Drivers for VxWorks 5.5: ARM 
    (DISK_ID: TDK-14634-ZC-00) 
    软件大小:500M 
    CD1: x#yyo-YVXT#-nozVy-wwoyx-VXy#o-UbFBF 
    CD2: AGpge-QbEGp-haNb3-kUhsS-bEkpC

    七、WINDRIVER.TORNADO.V2.2.FOR.POWERPC 
    CD1= Tornado 2.2/VxWorks 5.5 for PowerPC 
    (DISK_ID: TDK-14620-ZC-01) 
    CD2= BSPs/Drivers for VxWorks 5.5: PowerPC 
    (DISK_ID: TDK-14630-ZC-01) 
    软件大小:671M 
    CD1: TcS5i-Zq%J+-4XVu#-3&bjv-M63&g 
    CD2: TJS9i-uK6I&-9XsR2-AY8jv-M6n&g 

    八、WINDRIVER.TORNADO.V2.0.FOR.X86 
    CD1=Tornado 2.0 for Intel X86 
    TDK-13127-zc-00(ap) 
    CD2= Tornado 2.0 for Intel X86 
    TDK-12835-ZC-01 
    软件大小:359M 
    CD1: B7KDB-7B9Cp-DBbA9-9UKNb-79CFF 
    CD2: FCKCi-Kd67p-hdcS9-iKbNf-797KF

    九、WINDRIVER.PLATFORM.ID.V1.0 
    CD1= Tornado 2.2/VxWorks 5.5 for Pentium 
    (DISK_ID: TDK-14621-ZC-01) 
    CD2= BSPs/Drivers for VxWorks 5.5.1 
    (DISK_ID: TDK-14631-ZC-02) 
    CD3= WindML 3.0 
    (DISK_ID: TDK-14774-ZC-00) 
    CD4= PLATFORM ID Components 
    (DISK_ID: TDK-14915-ZC-01) 
    CD5= VxWorks 5.5 Core O/S Source Products 
    (DISK_ID: TDK-14628-ZC-01) 
    CD6= SNiFF+ 4.1.1 
    软件大小:1010M 
    CD1: dAQ8i-UM2I&-gisT2-nQ9Xw-bEkpg 
    CD2: B7KFB-Kb3Gp-gBfB3-5U8sP-bE9pC 
    CD3: B7KFB-7F5Cp-CBdB5-gUKPc-F99pC 
    CD4: BFKFB-7F5Cp-DBdA5-FKKNf-79gpF 
    CD5: B7K8e-KF57p-DdfA5-GU8Pc-F999C 

    十、arm.developer.suite.v1.2 (ADS1.2) 
    软件大小:422M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 文件05.29.02-arm.developer.suite.v1.2-efa .ISO 
    3)自动安装软件后到根据LICENSE安装WIZARD 
    到虚拟光驱上寻找CRACK文件夹中的LICENSE.DAT文件。 
    十一、arm.Software .Development .Toolkit (SDT) version 2.51 (SDT2.51) 
    软件大小:138M 
    安装方法:直接点击WINDOWS目录下的 SETUP.EXE 
    十二、ARM.Firmware.Suite.v1.3 (AFS1.3) 
    软件大小:619M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT目录中AFSV1_3.BIN文件 
    3)点击SETUP.EXE 开始安装 
    十三、KEIL.SOFTWARE.8051.V7.0.AND.C16X.ST10.V4.2.PRO.SDK (KEIL 7.0) 
    软件大小:704M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT目录中iso-ks72.BIN文件 
    3)在虚拟光驱中找到CRACK目录。 
    4)如果想安装8051版本,点击 .\\CRACK\\Z-C51DSK.EXE 
    如果想安装C16X版本,点击 .\\CRACK\\Z-C16DSK.EXE 
    5)放入空白软盘,生成授权软盘 
    6)点击 .\\CRACK\\KEIL2002KG.EXE ,选择With Security Key 
    7)点击 GENERATE,生成安装序列号和软盘端口号 
    8)用写字板编辑软盘上的DISK.INI 文件, 
    修改Ident=000000 行中“000000”为刚才生成的端口号,然后保存文件 
    9)点虚拟光驱中的SETUP.EXE文件,选择需要安装的版本 
    10)输入刚才生成的序列号和个人信息,放入软盘,默认安装 
    十四、Metrowerks.CodeWarrior.Development.Studio.for.Coldfire.v4.0 
    软件大小:59M 
    安装方法:1)点击SETUP.EXE 
    2)拷贝CRACK目录下的lmgr326b.dll 文件到安装目录的BIN目录下 
    3)拷贝CRACK目录下的 LICENSE.DAT文件到安装目录下 
    以上拷贝都需要覆盖原来的文件 
    十五、Metrowerks.CodeWarrior.Development.Studio.for.DSP56800.v5.1 
    软件大小:72M 
    安装方法:1)点击CW_for_DSP56800_V5.1.EXE 
    2)拷贝CRACK目录下的lmgr326b.dll 文件到安装目录的BIN目录下 
    3)拷贝CRACK目录下的 LICENSE.DAT文件到安装目录下 
    以上拷贝都需要覆盖原来的文件 
    十六、Metrowerks.CodeWarrior.Development.Studio.for.HC08.v3.0 
    软件大小:130M 
    安装方法:1)点击SETUP.EXE 
    2)拷贝CRACK目录下的lmgr326b.dll 文件到安装目录的BIN目录下 
    3)拷贝CRACK目录下的 LICENSE.DAT文件到安装目录下 
    以上拷贝都需要覆盖原来的文件 

    十七、Metrowerks.CodeWarrior.Development.Studio.for.SymbianOS7.v2.0.Personal.Edition. 
    软件大小:33M 
    安装方法:1)点击SETUP.EXE 
    2)拷贝CRACK目录下的 LICENSE.DAT文件到安装目录下 
    以上拷贝都需要覆盖原来的文件 
    十八、Microsoft.Platform Builder .4.0. NET (PB4.0) 
    软件大小:3410M 
    安装方法:1)拷贝CD1到CD6目录中的所有内容到同一目录下 
    2)点击 microsoft windows ce .net.EXE文件,开始安装PB4.0 
    3) 输入序列号 JXB7B-DTH4X-KQRKH-DRP9J-44DHT 
    4)选择要安装的选项,注意检查硬盘空间是否足够,完全安装10G以上的空间。 
    5)安装CD7中间的EVC,序列号 CD7K6-2HD72-37Y2B-K6T7V-CVXKT 

    十九、Microsoft. Platform Builder .4.2. NET (PB4.2) 
    软件大小:3450M 
    安装方法:1)将CD1到CD5中所有RAR文件拷到硬盘同一目录下,解压第一个文件 
    2)安装虚拟光驱软件DAEMON3.2 
    3)MOUNT 解压生成的ISO文件,自动安装开始 
    4)输入序列号 XVQBX JJGYD YJXGH 4TCMB G6VVQ 
    5)安装CD5中的EVC,序列号 CD7K6-2HD72-37Y2B-K6T7V-CVXKT 
    6)选择安装CD6中的EVB,序列号 TRT7H-KD36T-FRH8D-6QH8P-VFJHQ 

    二十、TI.CCS.V2.2.FOR.C6X 
    软件大小:294M 
    安装方法:直接点击SETUP.EXE 

    二十一、SDS7.4.2 FOR COLDFIRE 
    软件大小:173M 
    安装方法:1)首先点击SDS72目录下的SETUP,安装过程中选择本目录下的LICENSE.DAT 
    2)点击SDS74目录下的SETUP.EXE,安装方式选择UPDATE 
    3)将SDS742目录下的文件拷贝到SDS74的安装目录下的CMD目录下,覆盖原来的文件 

    二十二、METROWERKS.CODEWARRIOR.v8.FOR_PALM.OS.DEVELOPMENT 
    软件大小:115M 
    安装方法:直接点击SETUP.EXE 

    二十三、Emu8086.v2.57.WinALL.Incl.Keymaker 
    Emu8086.v2.05.Winall.Regged-iNFECTED 
    Emu8086.v2.12.WinALL.Incl.Keymaker 
    软件大小:8M 
    安装方法:直接安装 

    FPGA、IC设计、PCB设计软件 

    一、XILINX.FUNDATION 4.1.PC 
    软件大小:609M 
    安装方法:直接SETUP 

    二、XILINX.ISE.V5.2i.PC 
    软件大小:931M 
    安装方法:1)安装虚拟光驱软件DAEMON3.2 
    2)分别MOUNT Xilinx_CAE.ISO 
    Xilinx_PC1.ISO 
    Xilinx_PC2.ISO 
    3)序列号输入:0827-8579-8461 

    三、XILINX.ISE.V5.1i.PC 
    软件大小:822M 
    安装方法:分别安装CD1,CD2中的SETUP.EXE 
    序列号输入:1616-4274-3443 

    四、XiliNX.Embedded.Development.Kit 
    软件大小:280M 
    安装方法:1)首先安装ISE或者FUNDATION等开发环境 
    2)安装虚拟光驱软件DAEMON3.2 
    3)MOUNT文件夹内.BIN文件,自动安装 
    4)序列号输入 8666-7571-3864 或者用目录下的xilinxkg.EXE软件生成序列号 

    五、XILINX.CHIPSCOPE.PRO.V5.2i 
    软件大小:26M 
    安装方法:1)点击 ChipScope_Pro_5_2i_pc.EXE 
    2)序列号 9626-5081-0380 

    六、XILINX_FORGE_V3.2 
    软件大小:43M 
    安装方法:点击Forge32.EXE,序列号:1865-7277-7756-6718 

    七、XILINX_FORGE_V3.2_LINUX 
    软件大小:65M 
    安装方法:在LINUX下安装使用,序列号:1865-7277-7756-6718 

    八、Altera_MAX_Plus_II_v10.2 
    软件大小:336M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 目录下MPII102.BIN文件,自动安装 
    3)将目录下的LICENSE.DAT拷贝到安装目录,设置如下环境变量 LM_LICENSE_FILE 
    4)运行程序后,打开 options-->license setup 找到 license.dat 文件 

    九、ALTERA.QUARTUS.II.V3.0 
    软件大小:463M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 目录下quartus.BIN文件,自动安装 
    3)拷贝 虚拟光驱上的CRACK目录下:sys_cpt.dll 到 c:\\quartus\\bin 
    license.dat 到 c:\\quartus 
    覆盖原来的文件 
    4)运行程序后,当提示找LICENSE的时候,指向 c:\\quartus\\license.dat 
    5)进入菜单 tools->license setup,查看 system info section 
    记下 network interface card id 
    6)编辑 c:\\quartus\\license.dat 文件, 
    将 444553547777 取代为刚才的network interface card id 
    保存后重新启动软件 

    十、ALTERA.QUARTUS.II.V3.0.LINUX 
    软件大小:533M 
    安装方法:到LINUX环境下解压安装, 

    十一、Altera.Nios.Development.Kit.Incl.SOPC.Builder.Ver.2.11.For.Windows 
    软件大小:362M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 目录下RS-nios.BIN文件,自动安装 

    十二、ALDEC.ACTIVE.HDL.V6.1.RETAIL 
    软件大小:559M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 目录下alachdl61.BIN文件,自动安装 
    3)拷贝CRACK目录下 license.dat 到 
    C:\\Program Files\\Aldec\\Active-HDL 6.1\\Dat 目录下 
    4)设置环境变量 
    ALDEC_LICENSE_FILE = C:\\Program Files\\Aldec\\Active-HDL 6.1\\Dat\\license.dat 
    5)如果安装 TestBencher,按照CRACK目录下的ALDEC_INSTALL.TXT做 

    十三、ALDEC.ACTIVE.HDL.V6.1.SP1 
    软件大小:713M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 目录下aldec6sp1.BIN文件,自动安装 
    3)在安装过程中,选择 network floating licensing 
    4)安装完毕,拷贝CRACK目录下除了LICENSE.DAT文件到 Aldec/BIN/ 
    5)拷贝LICENSE.DAT到 Aldec/dat 

    十四、ALDEC_ACTIVE-HDL_V6.1.1289_LIBRARY_ADDON 
    软件大小:204M 
    安装方法:到对应的目录下,选择要安装的库,直接SETUP 

    十五、ALDEC.RIVIERA.V2003.3 
    软件大小:27M 
    安装方法:点击 Riviera-2003.03.846.EXE安装 
    将CRACK目录下的LICENSE.DAT覆盖安装目录下的文件 

    十六、Lattice.Isplever.v3.0.WiN32-oDDiTy 
    软件大小:1210M 
    安装方法:直接安装,拷贝LICENSE.DAT到安装目录下的LICENSE目录 

    十七、HDLTurboWriter.v.6.0b 
    软件大小:13M 
    安装方法:直接安装,拷贝CRACK目录下的LICENSE.DAT到c:\\flexlm\\ 

    十八、MODELSIM.SE.PLUS.V5.7C 
    软件大小:51M 
    安装方法:1)直接安装mti57cse.EXE 
    2)拷贝CRACK目录下 lmgr326b.dll 
    覆盖 windows\\system32 目录 和 C:\\Modeltech_xe\\win32xoem 目录下的原文件 
    3)运行CRACK目录下的modelsimkgv2003.EXE,生成LICENSE, 
    安装软件时候指向这个LICENSE 

    十九、MODELSIM.XILINX.EDITION.II.V5.6E 
    软件大小:78M 
    安装方法: 1)直接安装SETUP.EXE 
    2)拷贝CRACK目录下 lmgr326b.dll 
    覆盖 windows\\system32 目录 和 C:\\Modeltech_xe\\win32xoem 目录下的原文件 
    3)运行CRACK目录下的modelsimkgv2003.EXE,生成LICENSE, 
    安装软件时候指向这个LICENSE 

    二十、MODELSIM_SE_PLUS_V5.7D 
    软件大小:51M 
    安装方法:1)直接安装mti57dse.EXE 
    2)拷贝CRACK目录下 lmgr326b.dll 
    覆盖 windows\\system32 目录 和 C:\\Modeltech_xe\\win32xoem 目录下的原文件 
    3)运行CRACK目录下的modelsimkgv2003.EXE,生成LICENSE, 
    安装软件时候指向这个LICENSE 

    二十一、MODELSIM_SE_PLUS_V5.7E 
    软件大小:51M 
    安装方法:1)直接安装mti57ese.EXE 
    2)拷贝CRACK目录下 lmgr326b.dll 
    覆盖 windows\\system32 目录 和 C:\\Modeltech_xe\\win32xoem 目录下的原文件 
    3)运行CRACK目录下的modelsimkgv2003.EXE,生成LICENSE, 
    安装软件时候指向这个LICENSE 

    二十二、ModelsimSE5.7-linux 
    软件大小:38M 
    安装方法:LINUX下解压安装 

    二十三、Multisim2001_with_SP2 
    软件大小:191M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 目录下Multisim_with_SP2.BIN文件,自动安装 
    3)重新启动计算机,继续安装,输入序列号:PP-0411-48015-7464-32084 
    4)安装VERILOG和VHDL目录下的程序,如果提示输入序列号,输入以下号码: 
    vhdl:FC-6424-04180-0044-13881 
    verilog:FC-4242-10140-4408-18063 

    二十四、Synplicity.Amplify.v3.03 
    软件大小:26M 
    安装方法:1)直接安装Amplify303.EXE 
    2)启动程序,记下HOSTID, 
    3)运行licgen.EXE,输入HOSTID,生成LICENSE,拷贝到安装目录 

    二十五、Synplicity.Identify.RTL.Debugger.v1.2 
    软件大小:47M 
    安装方法:1)运行ident120.EXE 
    2)拷贝CRACK目录下所有文件到安装目录的BIN目录下 

    二十六、SYNPLICITY_SYNPLIFY_V7.3_PRO 
    软件大小:62M 
    安装方法:1)运行syn730.EXE 
    2)拷贝CRACK目录中内容覆盖安装目录BIN目录下的文件 
    3)编辑LICENSE.DAT ,将HOSTID后面的内容换成自己的HOSTID, 
    4)设置环境变量 LM_LICENSE_FILE,指向刚才修改的LICENSE.DAT 

    二十七、Synplicity.Synplify.ASIC.v2.2.1 
    软件大小:28M 
    安装方法:1)安装asic221.EXE 
    2)设置环境变量 LM_LICENSE_FILE=c:\\LICENSE.txt 
    3)运行licgen.EXE,输入1111 作为HOSTID,生成LICENSE ,拷贝到安装目录下 
    4)启动软件,当提示HOSTID错误,点OK, 
    记下正确的HOSTID,重新运行LICGEN.EXE,生成LICENSE,再次拷贝覆盖 

    二十八、SYNPLICITY_SYNPLIFY_ASIC_V2.4.1 
    软件大小:37M 
    安装方法:1)运行asic241.EXE 
    2)拷贝CRACK目录下文件覆盖安装目录 MBIN文件夹下的文件 
    3)用SynplicityGen.EXE生成LICENSE,并设置环境变量\'LM_LICENSE_FILE\' 指向这个文件 

    二十九、CADENCE.VIRTUAL.COMPONENT.CO-DESIGN.V2.2 
    软件大小:127M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 文件夹内 rorvcc22.BIN文件,自动安装 
    3)拷贝虚拟光驱内CRACK目录下LICENSE.DAT到 c:\\flexlm 
    4)设置环境变量 LM_LICENSE_FILE = c:\\flexlm\\license.dat 

    三十、CADENCE.IC.DESIGN.V5.0.LINUX 
    软件大小:951M 
    安装方法:1)首先安装虚拟光驱软件DAEMON3.2 
    2)MOUNT 文件夹内 cadidl-1.BIN,和cadidl-2.BIN文件, 
    根据CRACK目录下的ic5_install.TXT提示安装

    展开全文
  • 对于Win7操作系统:安装“registertornado.exe”过程到60%会卡住,任务管理器中把Tornado.exe这个进程杀掉,安装可以继续。安装完成之后,用“专用替换文件”替换相应文件即可。   2. Helloworld  2.1....

    【与本文相关的资源下载】

    PDF版教程及截图:http://download.csdn.net/detail/fm0517/5208419

    TornadoWin7替换文件:http://download.csdn.net/detail/fm0517/5208427


     1.    安装

     1.1. 用虚拟光驱依次加载CD1和CD2,参考截图点击下一步进行安装。

     1.2. CD1 (DISK_ID: TDK-14621-ZC-01) Installation key:cAQ8i-qP2I&-g$vT6-3&gjw-bEk9g

            CD2 (DISK_ID: TDK-14631-ZC-01) Installation key:A7KbB-Rd37p-hNFBE-kzgaT-b9gpC

     1.3. License选Phone or Fax

     1.4. 破解:CD1和CD2安装完成后,将安装目录下的Tornado2.2\SETUP\crack\license.dat文件复制到C盘根目录,设置环境变量LM_LICENSE_FILE指向该文件。

     1.5. 对于Win7操作系统:安装“registertornado.exe”过程到60%会卡住,任务管理器中把Tornado.exe这个进程杀掉,安装可以继续。安装完成之后,用“专用替换文件”替换相应文件即可。

     

    2.    Helloworld

     2.1. 新建项目:Create downloadable application modules->填写->选择A toolchain

     2.2. 打开Tornado,新建源文件:File->New->C/C++Source File

     2.3. 输入程序:

    #include <stdio.h>

    #include <vxworks.h>

    int firstTest(void)

    {

      printf("Thisis firstTest\n");

    }

    void helloWorld()

    {

      printf("Thisis helloWorld\n");

    }

    2.4. 编译:Build->Build

    2.5. 打开模拟器:Tools->Simulator

    2.6. 将程序下载至目标机:右键项目名称->Download

    2.7. 打开Shell:Tools->Shell

    2.8. 在Shell中键入函数名first_test或helloworld(函数名)

     

    [参考文献]

    HelloWorld:http://www.saltycrane.com/blog/2007/02/vxworks-simulator-hello-world-tutorial

    Win7下安装:http://www.cevx.com/bbs/thread-34545-1-1.html

     

    展开全文
  • 记录Tornado-4.0.2源码的阅读,学习,分析 options.py 1. imports 部分 1.1 __future__ 1 from __future__ import absolute_import, division, print_function, with_statement future_statement 即:from ...

    记录Tornado-4.0.2源码的阅读,学习,分析

    options.py

    1. imports 部分

    1.1 __future__

    1 from __future__ import absolute_import, division, print_function, with_statement

    future_statement 即:from __futuren import XXX. 参见 XiaoKL学Python(C)__future__

    1.2 other imports from Python Library

    1 import datetime
    2 import numbers
    3 import re
    4 import sys
    5 import os
    6 import textwrap

    1.3 other imports from tornado

    1 from tornado.escape import _unicode
    2 from tornado.log import define_logging_options
    3 from tornado import stack_context
    4 from tornado.util import basestring_type, exec_in

     

    2. 定义的类

    2.1 OptionParser类 

    该类负责解析命令行的Option, 每个option被抽象为类_Option的对象。

    2.2 _Option类

    代表命令行上的每个option,该类为内部类。

    2.3 全局的OptionParser对象

    定义了一个全局的OptionParser对象。options.py提供的接口都是在该对象上进行操作的。

    末尾调用了以下接口来将log相关的option添加到options.py模块中。

    1 define_logging_options(options)

    3. options.py对外提供的接口

    [Todo]

    3.1 define

    1 def define(name, default=None, type=None, help=None, metavar=None,
    2            multiple=False, group=None, callback=None)

     

    3.2 parse_command_line

    1 def parse_config_file(path, final=True)

     

     


    Learn From options.py

    1. sys模块

    import sys

    https://docs.python.org/2/library/sys.html?highlight=sys#module-sys

    sys._getframe([depth])

    "Return a frame object from the call stack. If optional integer depth is given, return the frame

    object that many calls below the top of the stack. If that is deeper than the call stack, ValueError 

    is raised. The default fordepth is zero, returning the frame at the top of the call stack."

    在options.py中的使用,在OptionParser类的define方法的实现中:

    1         frame = sys._getframe(0)

      

    2. inspect 模块

    https://docs.python.org/2/library/inspect.html

    "The inspect module provides several useful functions to help get information about live

    objects such as modules, classes, methods, functions, tracebacks, frame objects, and code objects. "

    该模块中包含 frame 类型(即: sys._getframe() 返回值的类型 )的说明。

     

    3. unittest.mock.patch

    mock 模块

    Python中的单元测试。

    4. 不了解的语法

    4.1 return xxxx if yyyy else zzzz  

    1     def value(self):
    2         return self.default if self._value is _Option.UNSET else self._value

     4.2 xxx for yyy, zzz in ttt

    1     _TIMEDELTA_ABBREV_DICT = dict(
    2         (abbrev, full) for full, abbrevs in _TIMEDELTA_ABBREVS
    3         for abbrev in abbrevs)

    4.3 正则表达式

    1     _FLOAT_PATTERN = r'[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?'

     

     


     

    Reference

    1. http://www.tornadoweb.org/en/stable/options.html

    转载于:https://www.cnblogs.com/cwgk/p/4433761.html

    展开全文
  • 一.Tornado 基础入门

    2019-03-27 13:46:56
    tornado入门笔记 http://www.tornadoweb.org/en/stable/ tornado 异步非阻塞IO处理方式 后续深入在进行博客...import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get...

    tornado入门笔记
    http://www.tornadoweb.org/en/stable/

    tornado 异步非阻塞IO处理方式 后续深入在进行博客记录。

    1.最简单的hello world

    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Hello, world")
    
    if __name__ == "__main__":
        application = tornado.web.Application([
            (r"/", MainHandler),
        ])
        application.listen(8888)
        tornado.ioloop.IOLoop.current().start()
    

    2.RequestHandler是非线程安全的

    write(),finish()和 flush()只能从主线程调用。
    如果使用多个线程,则必须IOLoop.add_callback 在完成请求之前将控制权转移回主线程,
    或者限制使用其他线程 IOLoop.run_in_executor并确保在执行程序中运行的回调不引用Tornado对象。
    
    #大概了解说的什么,不是很懂。 
    

    3.init和 initialize

    """
    tornado.web.RequestHandler
    不应直接构造对象,使用继承构造我们的对象。
    初始化操作 使用initialize 代替 __init__
    
    initialize子类初始化,为每一个请求调用
    通过URLSpec 字典传入
    """
    import tornado.ioloop
    from tornado.web import RequestHandler,Application
    
    class ProfileHandler(RequestHandler):
        def initialize(self, database):
            self.database = database
            print("初始化类的时候打印,为以后的请求调用,每次请求都会调用的", self.database)
        	# 不知道为啥 每一次请求都会调用?
        def get(self, username):
            print("get 调用", self.database)
            self.write(username)
    
    
    database = "这是database"
    app = Application([
        (r'/user/(.*)', ProfileHandler, dict(database=database)),
    ])
    
    if __name__ == "__main__":
        app.listen(8888)
        tornado.ioloop.IOLoop.current().start()
    

    4.其他的一些方法

    和3中类似

    RequestHandler.prepare请求开始前调用

    RequestHandler.on_finish请求结束后调用

    这两个方法是相对的。

    on_finish 重写此方法以执行清理,日志记录等。

    on_finish可能不会产生任何输出,因为它是在响应发送到客户端后调用的

    5.HTTP请求的方法

    RequestHandler.get(* args,** kwargs )
    RequestHandler.head(* args,** kwargs ) 
    RequestHandler.post(* args,** kwargs ) 
    RequestHandler.delete(* args,** kwargs ) 
    RequestHandler.patch(* args,** kwargs ) 
    RequestHandler.put(* args,** kwargs ) 
    RequestHandler.options(* args,** kwargs ) 
    
    """
    如果使用的方法不在这里,可以覆盖变量,添加自己的请求方式,虽然我们基本不会这么做。
    
    class WebDAVHandler(RequestHandler):
        SUPPORTED_METHODS = RequestHandler.SUPPORTED_METHODS + ('PROPFIND',)
    
        def propfind(self):
            pass
    """
    

    6.接收前端传来的参数

    首先了解一下,传参的一些手段

    • 藏在URL后面,如 http://localhost:8888/user/?key1=value1&key2=value2;
    • 请求体(body)中发送的数据,比如表单数据、json、xml;
    • 提取URL特定部分,URI,如/user/info/id/0001,或者,正则表达式 提取URI部分参数。
    • 在http报文的头(header)中增加自定义字段。

    1.http://localhost:8888/user/?key1=value1&key2=value2;

    # 接收url后的参数,username字段,默认为"",strip默认True,去掉两边空白字符
    username = self.get_query_argument(name, default="", strip=True)
    
    # 加了s,接收的是list,没有不设置默认值也不会报错,空列表
    # http://localhost:8888/user/?key=value1&key=value2;
    username = get_query_arguments('key', strip=True)
    

    2.获取请求体信息/form表单提交

    get_body_argument(name, default=_ARG_DEFAULT, strip=True)
    get_body_arguments(name, strip=True)
    
    说明:
    HTTP报文头Header中的"Content-Type"
    为application/x-www-form-urlencoded 或 multipart/form-data。
    对于请求体数据为json或xml的,无法通过这两个方法获取。
    

    3.前面两个方法的整合

    get_argument(name, default=_ARG_DEFAULT, strip=True) # 出现多个值,以最后的为准
    get_arguments(name, strip=True)
    

    4.其他请求信息

    RequestHandler.request 对象存储了关于请求的相关信息,具体属性有:

    • method HTTP的请求方式,如GET或POST;
    • host 被请求的主机名;
    • uri 请求的完整资源标示,包括路径和查询字符串;
    • path 请求的路径部分;
    • query 请求的查询字符串部分;
    • version 使用的HTTP版本;
    • headers 请求的协议头,是类字典型的对象,支持关键字索引的方式获取特定协议头信息,例如:request.headers[“Content-Type”]
    • body 请求体数据;
    • remote_ip 客户端的IP地址;
    • files 用户上传的文件,为字典类型

    5.获取json

    # 获取json/xml数据(没法直接获取,需要手动获取)
    print(self.request.headers.get("Content-Type")# 获取请求数据类型
    json_data = self.request.body    # 获取请求体
    json_args = json.loads(json_data)# 将json解码
    

    6.正则的参数

    (r"/sub-city/(.+)/([a-z]+)", SubjectCityHandler), # 无名方式
    (r"/sub-date/(?P<subject>.+)/(?P<date>\d+)", SubjectDateHandler), # 命名方式
    
    def get(self, date, subject)
    

    7.响应,输出。

    # write并没有直接把数据返回给前端,而是先写到缓存区,函数结束之后才会返回到前端
    self.write('hahaha')
    
    # 当调用finish之后,请求处理完成类似于函数的return(注意:请求当中不能出现 return)
    self.finish()
    
    #self.flush() 先返回缓冲区的内容,后面的运行完成后再返回
    #self.flush()就是将当前输出缓冲区刷新到网页。
    self.flush()
    
    #返回html页面
    self.render("in_out.html")
    
    #跳转路由
    self.redirect(r"/tem")
    
    
    #如果flush()已经被调用,则不可能发送错误,因此该方法将简单地终止响应。
    #如果输出已写入但尚未刷新,则将其丢弃并替换为错误页面.
    RequestHandler.send_error(status_code = 500,**kwargs)
    
    

    设置响应码

    RequestHandler.set_status(status_code,reason = None)
    
    参数:
    status_code(int) - 响应状态码。
    reason(string) - 描述状态代码的人类可读原因短语。
    self.set_status(404,'error')
    

    设置响应头

    # 设置
    self.set_header('hujing',18)
    self.set_header('changsha','hunan')
    
    #添加
    self.set_header('hujing','20')  #这里只会显示hujing:20 覆盖了前面的hujing:18
    self.add_header('hujing','19') 
    
    补充:
    set只能是一个值,add可以多个值。
    
    # 清除响应头
    self.clear_header('changsha') # 此方法只能使用set写入的响应头
    
    具体可以看官方文档的内容
    http://www.tornadoweb.org/en/stable/web.html#tornado.web.RequestHandler.prepare
    

    8.websocket

    # coding:utf-8
    """
    简单的聊天室后台
    前端请使用网页工具,如
    http://www.blue-zero.com/WebSocket/
    """
    import tornado.web
    import tornado.ioloop
    import tornado.httpserver
    import tornado.options
    import os
    import datetime
    
    from tornado.web import RequestHandler
    from tornado.options import define, options
    from tornado.websocket import WebSocketHandler
    
    define("port", default=8000, type=int)
    
    class IndexHandler(RequestHandler):
        def get(self):
            self.render("index.html")
    
    class ChatHandler(WebSocketHandler):
    
        users = set()  # 用来存放在线用户的容器
    
        def open(self):
            self.users.add(self)  # 建立连接后添加用户到容器中
            for u in self.users:  # 向已在线用户发送消息
                u.write_message(u"[%s]-[%s]-进入聊天室" % (self.request.remote_ip, datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
    
        def on_message(self, message):
            for u in self.users:  # 向在线用户广播消息
                u.write_message(u"[%s]-[%s]-说:%s" % (self.request.remote_ip, datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), message))
    
        def on_close(self):
            self.users.remove(self) # 用户关闭连接后从容器中移除用户
            for u in self.users:
                u.write_message(u"[%s]-[%s]-离开聊天室" % (self.request.remote_ip, datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
    
        def check_origin(self, origin):
            return True  # 允许WebSocket的跨域请求
    
    if __name__ == '__main__':
        tornado.options.parse_command_line()
        app = tornado.web.Application([
                (r"/", IndexHandler),
                (r"/chat", ChatHandler),
            ],
            static_path = os.path.join(os.path.dirname(__file__), "static"),
            template_path = os.path.join(os.path.dirname(__file__), "template"),
            debug = True
            )
        http_server = tornado.httpserver.HTTPServer(app)
        http_server.listen(options.port)
        tornado.ioloop.IOLoop.current().start()
    
    展开全文
  • tornado 异步非阻塞IO 尽量使用async和coroutine装饰器。 是因为async 已经变为python的关键字 tornado 提供的同步客户端 from tornado import httpclient # 同步的,基本不会使用,使用同步,不如直接使用...
  • Python.tornado.0

    2014-04-07 22:50:00
    Tornado ... http://www.tornadoweb.org/en/stable/guide/intro.html (AAAAA) Tornado文档 http://tornado.readthedocs.org/en/latest/guide/running.html http://demo.pyth...
  • 80h_tornado:www.anger6.com网站原始码
  • 实现代理的方式很多种,流行的web服务器也大都有代理的功能,比如http://www.tornadoweb.cn用的就是nginx的代理功能做的tornadoweb官网的镜像。 最近,我在开发一个移动运用(以下简称APP)的后台程序(Server),该运用...
  • settings,使用tornado.web.Application(handler, **settings),我们却不知道这个settings到底是什么,究竟有什么作用,今天就来介绍一下。 settings是一个字典,主要保存一些配置选项 debug 设置tornado是否在调...
  • tornado基本用法

    千次阅读 2018-07-03 18:53:08
    tornado.ioloop.IOLoop.current().start() 执行如下命令,开启tornado: $ python hello.py 打开浏览器,输入网址127.0.0.1:8000(或localhost:8000),查看效果:  代码讲解 1. tornado.web ...
  • tornado.httpclient.HTTPClient()的用法

    千次阅读 2020-04-08 21:52:13
    转载自: 使用tornado的httpclient模拟客户端 但是链接中的代码最早是2014年的,所以2020年...import tornado.httpclient http_client = tornado.httpclient.HTTPClient() response = http_client.fetch("http:/...
  • tornado.ioloop import IOLoop class IndexHandler (RequestHandler) : def get (self) : self.write( "hello world" ) handlers = [ ( "/" , IndexHandler), ] if __name__ == '__main__' : ...
  • 注:请参考官方:https://www.tornadoweb.org/en/stable/web.html#tornado.web.Application.settings 应用程序配置 classtornado.web.Application(handlers:List [Union [Rule,Tuple]] = None,default_host:...
  • Authentication, error handling, etc are left as an exercise for the reader :) """ import logging import tornado.escape import tornado.ioloop import tornado.options import tornado.web import tornado....
  • 什么时候需要给函数增加 @tornado.gen.coroutine 什么时候调用函数需要 yield @tornado.gen.coroutine 与 yield 是如何工作的 包含 yield 的函数是一个 generator[1]。@gen.coroutine 通过 yield 与 generator 沟通...
  • 后端报错信息WARNING:tornado.access:405 OPTIONS /add (::1) 1.00m前端报错信息2xhr.js?ec6c:172 OPTIONS http://localhost:8888/add 405 (Method Not Allowed)/#/:1 Access to XMLHttpRequest at ...
  • 以太坊混币器研究:Tornado.Cash

    千次阅读 2021-11-05 14:36:59
    Tornado.cash 在 Goerli 测试网上有部署,因此测试时切换到 Georli 测试网即可: 首先先进行存款操作,成功之后,需要留“凭证”,浏览器会自动保存这个凭证到本地的txt文件,该凭证需要提款的时候用: ...
  • tornado.web. Application ( handlers=None ,  default_host='' ,  transforms=None ,  **settings ) [source] A collection of request handlers that make up a web application. Instances of this class ...
  • tornado.gen.coroutine-协程

    千次阅读 2015-10-29 10:38:07
    tornado的coroutine装饰器,使得回调函数可以用同步的方式实现,极大提高了代码的可读性。它的实现涉及到了yield,ioloop和Future的模块。 tornado coroutine 1. yield的基本概念 2. Future的用法 3. ...
  • [风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR.ARM下载 http://115.com/file/dlfo8zpy http://115.com/file/c4r01l47 win7下安装 打开DAEMON虚拟光驱加载CD1和CD2,各自setup install填写 CD1:x#yyo-YVXT#-...
  • app = tornado.web.Application(handlers=[(r"/", IndexHandler)]) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) tornado.ioloop.IOLoop.instance().start() ...
  • 今天看tornado异步时发现的错误,查了一下,原来tornado6以后就弃用了tornado.web.asynchronous这种写法...https://www.tornadoweb.org/en/branch5.1/web.html#tornado.web.asynchronous Changed in version 3.1: Th...
  • 基于Tornado的开源CMS系统,TorCMS 是使用Python 3.5,Tornado Web框架, Peewee 开发的,数据库使用 PostgreSQL 9.4以上版本。使用MIT协议发布,目的是为了学习与交流,欢迎大家多提意见。 案例: ...
  • 1.1 Tornado是为何物 Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架在2009年9月以开源软件形式开放给...
  • Tornado中gen.coroutine详解

    千次阅读 2018-01-23 20:37:00
    from tornado.httpclient import AsyncHTTPClient from tornado.web import RequestHandler class Test1Handler(RequestHandler): def get(self, *args, **kwargs): http_client = AsyncHTTPClient() ...
  • class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") application = tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": application....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,628
精华内容 5,451
关键字:

www.tornado

友情链接: ds18b20.rar