当前位置:首页 > 扩展
  • Extjs 简单扩展 Component 实现点击刷新的验证码。

    Ext.Image=Ext.extend(Ext.Component,{ initComponent:function() { }, onRender:function(ct, position) { var a= document.createElement('A'); a.id = this.id;a.href="javascript:void(0)"; var el = document.createElement('IMG'); el.src=this.src+'?'+Math.random(); a.appendChild(el); this.el = Ext.get(ct.dom.appendChild(a)); if(this.autoRefresh) this.el.on('click', this.onClick, this); }, onClick: function(e){ this.el.first().dom.src=this.src+'?'+Math.random(); } }) Ext.reg('ximg',Ext.Image);   以下是json{ xtype:'ximg', src:'http://www.java125.cn/common/getcode.asp', autoRefresh:true }

    时间:2020-01-08 关键词: 扩展 extjs

  • Edge浏览器扩展商店正式上线:首批162款插件

    Edge浏览器扩展商店正式上线:首批162款插件

    明年1月15日,也就是Windows 7、Windows 10 Mobile系统停止服务的第二天,微软基于Chromium源码打造的多平台Edge浏览器正式版将发布下载。 换用Chromium后,形式多样的插件/扩展可以在Edge上使用了。不过出于安全考虑,微软会上线专门的扩展商店,过滤后才提供有限下载。 经查,全新的Edge扩展商店已经结束内测,开放给公众,某种形式上代表新浏览器也整装待发了。 目前,商店共计162个扩展,分为博客、开发工具、娱乐、新闻天气、图片、生产力、搜索工具、购物、社交等门类。值得一提的是,扩展商店支持搜索,便于你直达心仪的工具。 据悉,新Edge浏览器将支持Win7~Win10、macOS、Linux、Android、iOS等操作系统。

    时间:2020-01-01 关键词: 微软 扩展 插件 edge浏览器

  • malloc()和mmap()

    malloc(): 调用malloc()时,是在PCB表(进程表)结构中的堆重点内容中申请空间,若申请空间失败,即超过给定的堆最大空间时,将会调用brk()系统调用,将堆空间向未使用的区域扩展,brk()之后新增的堆空间不会自动清除,需使用相应的系统调用来清除; mmap(): 调用mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。 补充: Linux内存分配小结–malloc、brk、mmap 认真分析mmap:是什么 为什么 怎么用

    时间:2019-08-26 关键词: 扩展 malloc

  • 月活10亿的Chrome浏览器:高达87%的扩展安装量还不足1000次

    月活10亿的Chrome浏览器:高达87%的扩展安装量还不足1000次

    Chrome已经牢牢坐稳全球第一大浏览器的宝座,而其制胜IE/Edge的法宝之一就是数量众多、功能各异的扩展插件。 据统计,Chrome Web商店目前共有18.86万件扩展。 不过,最新报道称,实际上,87%的扩展总安装次数不到1000次,50%的扩展总安装次数不到16次,13%的扩展仅被安装过一次,10%的扩展零安装。 实际上,超过1000万次安装的扩展只有13件,分别是Google Translate, Adobe Acrobat, Tampermonkey, Avast Online Security, Adblock Plus, Adblock, uBlock Origin, Pinterest Save Button, Cisco Webex, Grammarly for Chrome, Skype, Avast SafePrice和Honey。 考虑到Chrome浏览器月活10亿,这也难怪,一些批评人士称Chrome Web商店实际上是一座“鬼城”。

    时间:2019-08-15 关键词: 浏览器 chrome 扩展

  • 51单片机扩展protues仿真

    在51单片机当中,一般的at89s51就是两个外部中断源,其它加强型的我想应该会多两个,但是依旧还是不是很多,某些时候需要对其进行扩展,一般用定时器/计数器作外部中断,将其设定为计数器模式,并置初始化数为0xffH,这样只要一次就会计数溢出,产生中断.一般比较实用的就是实用软件中断. 这种方法是:把各个中断源通过硬件“或非”门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样 当外部中断时,通过“或非”门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的 次序。其硬件连接如下:   注意:这里碰到一个很让人费解的问题,原来的时候我仿真的是int1,但是在实际仿真的过程当中是没有办法成功的,于是只能是采用INT0来仿真,效果正常.可能是软件的问题吧..

    时间:2019-07-05 关键词: 51单片机 扩展 protues仿真

  • 系统扩展—RAM与ROM同时扩展

    下面这个系统中,8051同时扩展片外程序存储器和数据存储器,两片存储器的片选信号都接地, 即同时有效,也就是说,这两片存储器无需选择。   51同时扩展RAM和ROM 下面来分析这个问题,该系统中虽然有两片存储器,但由于两片存储器的输入,输入允许信号不同,程序存储器没有输入允许,其输出允许由8051的引脚PSEN控制,只有当程序存储器的片选信号和输出允许信号同时有效时,程序存储器的总线才挂接到CPU总线上 。否则,程序存储器的所有总线引脚都为高阻态,即相当于存储器与CPU总线断开。 数据存储器的输入允许端为WR,受控于8051的P3.6, 输出允许信号为RD,受控于8051的P3.7,数据存储器要与8051挂接的条件是片选信号有效且输入,输出允许信号中至少有一个有效,可见,在该系统中,要使两片存储器同时有效的条件是PSEN有效且WR有效或PSEN有效且RD有效。 而这两种情况都不可能出现,因为CPU的PSEN、RD、WR这三个信号在任何时候只可能有一个有效,所以尽管该系统中两片存储器的片选都接地,但它们绝对不会同时工作,也就是说不会引起存储器访问的混乱 。正是由于8051片外数据存储器和程序存储器的输入,输出允许信号分别受控于8051的不同引脚,才导致8051片外程序存储器空间和数据存储器空间独立,各自都为64K。这个系统中,8K外部数据存储器使用8051的64K片外数据存储逻辑地址,每个物理单元有8个逻辑地址,同样,8K外部程序存储器占用8051的64K外部程序存储器逻辑地址,每个物理单元也有8个逻辑地址。

    时间:2019-06-24 关键词: RAM rom 扩展 系统扩展

  • 接口芯片如何扩展

    一般说来,可编程接口芯片都有存储器及地址线,所谓可编程就是指CPU用指令将某数据写入接口芯片的某个存储器,接口芯片在接到CPU送来的数据后,自动翻译该数据,然后执行该数据所代表的动作。 不同的CPU对接口芯片的处理方式不同,某些CPU将接口芯片的存储器和CPU本身使用的存储器区别对待,将对接口芯片存储器的操作称为I/O操作,而对CPU本身使用存储器的操作称为存储器操作,并且I/O操作和存储器操作使用不同的指令,这种方式叫I/O端口的独立编址方式。 这种方式的优点是I/O端口不占用存储器的地址空间,存储器空间和I/O空间独立 ,缺点是CPU中要单独设置I/O端口访问指令,增加CPU的复杂度,INTEL公司的8086系列就是采用的这种结构。 另一种处理方式为将接口芯片的存储器当外部数据存储器对待,而不需要单独设置I/O端口的访问指令,这种方式称为统一编址,8051就是采用的这种方式。 下面我们介绍一下接口芯片8255。 8255是一个并行接口扩展芯片。它有一个8位的待扩展并行接口D0-D7,三个扩展后的8位并行接口PA,PB,PC。四个存储器,PA口存储器,PB口存储器,PC口存储器和控制口存储器,这四个存储器由它的两条地址线AO,A1来选择。 当A1A0为00的时候,8255将D0-D7与PA接通 当A1A0为01的时候,8255将D0-D7与PB接通 当A1A0为10的时候,8255将D0-D7与PC接通 当A1A0为11的时候8255将D0-D7与内部控制寄存器接通 假设将两片8K的数据存储器和一片8255混合扩展成CPU的外部数据据存储器,它们的片选信号的接法采用译码方式 。 译码器74139的输入端接CPU的P2.5和P2.6。 当P2.6和P2.5为00时,译码器输出端YO有效,选中第一片数据存储器,可知第一片存储器的逻辑地址为0000H-1FFFH以及8000H-9FFFFH,每个物理单元有两个逻辑地址 当P2.6和P2.5为01时,译码器输出端Y1有效,选中第二片存储器,第二片存储器的地址为2000H-3FFFH以及0AOOOH-OBFFFH。 当P2.6和P2.5为10时,译码器输出端Y2有效,选中8255,,则8255的逻辑地址4000H-5FFFH,以及0C000H-0DFFFH。 当P2.6和P2.5为11时,译码器输出端Y3有效,没有存储器被选中,即这种情况下的地址为无效地址,包括6000H-7FFFH,和0E000H-OFFFFH。  

    时间:2019-06-24 关键词: 扩展 接口芯片

  • FTP协议的分析和扩展

    >>1.0<< FTP和TCP端口号 根据是使用Port模式还是Passive模式,FTP使用不同的TCP端口号,在详细描述FTP前,我们来 简单讨论一下TCP端口号的一些基本概念。TCP使用端口号来标识所发送和接收的应用,端口号 可以帮助TCP来分离字节流并且帮相应字节传递给正确的应用程序。 TCP端口号可以是半永久的和暂时的。服务器端监听在半永久的端口上来让客户端访问。客户 端使用暂时的端口在本地标识一个对话,客户端端口只在使用TCP服务时候才存在,而服务器 端口只要服务器在运行就一直在监听。 TCP端口可以归为3类: 1、众所周知的端口来标识在TCP上运行的标准服务,包括FTP、HTTP、TELNET、SMTP等,这些 端口号码范围为0-1023; 2、注册端口号用来标识那些已经向IANA(Internet Assigned Numbers Assigned Numbers Authority)注册的应用,注册端口号为1024-49151; 3、私有端口号是非注册的并且可以动态地分配给任何应用,私有端口为49152-65535; 注册的端口号本来打算只给注册的应用使用,可近年来端口号已经陷入了到达极限的困境,你可能会看到本来应该是给注册应用使用的注册端口被非注册应用用做暂时的端口。RFC1700详 细标注了众所周知的和注册的端口号。>>2.0<< FTP Port模式和FTP Passive模式 当你对一个FTP问题进行排错时候,你首先要问的一个问题是使用的是port模式的还是passive 模式。因为这两种行为迥异,所以这两种模式引起的问题也不同;在过去,客户端缺省为acti ve(port)模式;近来,由于Port模式的安全问题,许多客户端的FTP应用缺省为Passive模式。 >>2.1 FTP Port模式 Port模式的FTP步骤如下: 1、 客户端发送一个TCP SYN(TCP同步)包给服务器段众所周知的FTP控制端口21,客户端 使用暂时的端口作为它的源端口; 2、 服务器端发送SYN ACK(同步确认)包给客户端,源端口为21,目的端口为客户端上使用的暂时端口; 3、 客户端发送一个ACK(确认)包;客户端使用这个连接来发送FTP命令,服务器端使用这个连接来发送FTP应答; 4、 当用户请求一个列表(List)请求或者发起一个要求发送或者接受文件的请求,客户端软件使用PORT命令,这个命令包含了一个暂时的端口,客户端希望服务器在打开一个数据连接时候使用这个暂时端口;PORT命令也包含了一个IP地址,这个IP地址通常是客户自己的IP地址,而且FTP也支持第三方(third-party)模式,第三方模式是客户端告诉服务器端打开与另台主机的连接; 5、 服务器端发送一个SYN包给客户端的暂时端口,源端口为20,暂时端口为客户端在PORT命令中发送给服务器端的暂时端口号; 6、 客户端以源端口为暂时端口,目的端口为20发送一个SYN ACK包; 7、 服务器端发送一个ACK包; 8、 发送数据的主机以这个连接来发送数据,数据以TCP段(注:segment,第4层的PDU)形式发送(一些命令,如STOR表示客户端要发送数据,RETR表示服务器段发送数据),这些TCP段都需要对方进行ACK确认(注:因为TCP协议是一个面向连接的协议) 9、 当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一台主机以ACK确认,另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以ACK确认; 10、 客户端能在控制连接上发送更多的命令,这可以打开和关闭另外的数据连接;有时候客户端结束后,客户端以FIN命令来关闭一个控制连接,服务器端以ACK包来确认客户端的FIN,服务器同样也发送它的FIN,客户端用ACK来确认。 下图图示了FTP PORT模式前几步步骤: /====================================================================/ | | | [ ftp Client ] [ ftp Server ] | | | | (TCP:21 连接初始化,控制端口) | | SYN | | Port xxxx ----------------------> Port 21 [TCP] | | SYN+ACK | | Port xxxx <---------------------- Port 21 | | ACK | | Port xxxx ----------------------> Port 21 | | | | (控制操作: 用户列目录或传输文件) | | | | Port, IP, Port yyyy | | Port xxxx <---------------------- Port 21 | | Port Seccussful | | Port xxxx <---------------------- Port 21 | | List, Retr or Stor | | Port xxxx ----------------------> Port 21 | | | | | | (TCP:20 连接初始化,数据端口) | | SYN | | Port yyyy <---------------------- Port 20 | | SYN+ACK | | Port yyyy ----------------------> Port 20 | | ACK | | Port yyyy <---------------------- Port 20 | | | | | | (数据操作: 数据传输) | | Data + ACK | | Port yyyy s: %000010 | | 0. .... (No Urgent pointer) | | .0 .... (No Ack) | | .. 0... (No Push) | | .. .0.. (No Reset) | | .. ..1. SYN | | .. ...0 (No FIN) | | | | Window: 3731 | | Checksum: 0x8A4C | | Urgent Pointer: 0 | | No TCP Options | | | | TCP Options | | Options Type: 2 Maxinum Segment Size | | Length: 4 | | MSS: 1460 | | | | FCS - Frame Check Sequence | | FCS (Calculated): 0x5A1BD023 | /====================================================================/ 当使用FTP时候,网络中的防火墙必须要声明相应的端口,防火墙必须要跟踪FTP对话然后检查PORT命令,防火墙必须要参与从服务器端到客户端在PORT命令中指定的端口连接的建立过程。 如果网络中使用了NAT(注:网络地址翻译),那么NAT的网关同样也需要声明相应的端口,网关需要把在PORT命令中指定的IP地址翻译成分配给客户的地址,然后重新计算TCP的Checksum;如果网关没有正确地执行这个操作,FTP就失败了。 黑客可能会利用FTP支持第三方特性这一特点,在PORT命令中设置IP地址和端口号参数来指定一台目标主机的地址和端口号(有时候称这种攻击为FTP反弹攻击),例如黑客可以让一台FTP服务器不断地从它的源端口20发送TCP SYN包给一系列目的端口,让FTP服务器看起来正在进行 端口扫描,目的主机不知道攻击来自黑客的主机,看起来攻击象是来自FTP服务器。一些常用的FTP应用在PORT命令中设置地址为0.0.0.0,这样做的意图是让FTP服务器只需要与打开控制连接的相同客户进行数据连接,设置地址为0.0.0.0可能会让防火墙不知所措。例如,CISCO PIX IOS 6.0以上版本的PIX(注:CISCO硬件防火墙设备,6.0以上版本为其修正了相关的FTP协议)要求数据连接的IP地址与已经存在的控制连接的IP地址必须相同。这样做的原因是防止黑客用PORT命令来攻击别的机器,虽然一些FTP应用设置IP地址为0.0.0.0不是有意图的攻击,但在PIX修正协议环境下的确引起了一些问题,同时对其他不允许第三方模式和避免FTP反弹攻击的防火墙来说,这也会引起相同的问题。 >>2.2 FTP Passive模式 下面的列表描述了Passive模式的FTP的步骤,步骤1到3和Port模式FTP相同,步骤9到11同样与Port模式FTP最后三步相同。 1、客户端发送一个TCP SYN(TCP同步)包给服务器段众所周知的FTP控制端口21,客户端使用暂时的端口作为它的源端口; 2、服务器端发送SYN ACK(同步确认)包给客户端,源端口为21,目的端口为客户端上使用的暂时端口; 3、客户端发送一个ACK(确认)包;客户端使用这个连接来发送FTP命令,服务器端使用这个连接来发送FTP应答; 4、当用户请求一个列表(List)或者发送或接收文件时候,客户端软件发送PASV命令给服务器端表明客户端希望进入Passive模式; 5、服务器端进行应答,应答包括服务器的IP地址和一个暂时的端口,这个暂时的端口是客户端在打开数据传输连接时应该使用的端口; 6、客户端发送一个SYN包,源端口为客户端自己选择的一个暂时端口,目的端口为服务器在PASV应答命令中指定的暂时端口号; 7、服务器端发送SYN ACK包给客户端,目的端口为客户端自己选择的暂时端口,源端口为PASV应答中指定的暂时端口号; 8、客户端发送一个ACK包; 9、发送数据的主机以这个连接来发送数据,数据以TCP段(注:segment,第4层的PDU)形式发送(一些命令,如STOR表示客户端要发送数据,RETR表示服务器段发送数据),这些TCP段都需要对方进行ACK确认; 10、当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一台主机以ACK确认,另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以ACK确认; 11、客户端能在控制连接上发送更多的命令,这可以打开和关闭另外的数据连接;有时候客户端结束后,客户端以FIN命令来关闭一个控制连接,服务器端以ACK包来确认客户端的FIN,服务器同样也发送它的FIN,客户端用ACK来确认。 下图图示了Passive模式FTP的开始几个步骤: /====================================================================/ | | | [ ftp Client ] [ ftp Server ] | | | | (TCP:21 连接初始化,控制端口) | | SYN | | Port xxxx ----------------------> Port 21 [TCP] | | SYN+ACK | | Port xxxx <---------------------- Port 21 | | ACK | | Port xxxx ----------------------> Port 21 | | | | (PASV操作: 被动连接数据端口初始化) | | | | PASV | | Port xxxx ----------------------> Port 21 | | PASV OK, IP, Port yyyy | | Port xxxx <---------------------- Port 21 | | SYN | | Port zzzz ----------------------> Port yyyy | | SYN+ACK | | Port zzzz <---------------------- Port yyyy | | ACK | | Port zzzz ----------------------> Port yyyy | | | | | | (数据操作: 数据传输) | | List, Retr or Stor | | Port xxxx ----------------------> Port 21 | | Data + ACK | | Port zzzz. ...0 (No FIN) | | | | Window: 8192 | | Checksum: 0x1A57 | | Urgent Pointer: 0 | | No TCP Options | | | | TCP Options | | Options Type: 2 Maxinum Segment Size | | Length: 4 | | MSS: 1460 | | | | FCS - Frame Check Sequence | | FCS (Calculated): 0x5A1BD023 | /====================================================================/ 大多数人认为在防火墙网络环境中Passive模式比Port模式的问题小,但我们注意到在Passive模式下,客户端打开一个暂时的目的端口连接,一些防火墙或者CISCO设备的访问列表(ACL)可能会阻止这种连接,同样服务器的回应也是从一个暂时的端口到一个暂时的端口,防火墙或者CISCO的访问列表也会阻止这种连接。在CISCO路由器上你可以用访问列表关键字"established"来避免第二个问题,"established"关键字告诉路由器允许带ACK字端的包通过,服务器端的SYN ACK包带有ACK字端。在新版本PIX IOS中也可以通过fixit关键字建立针对ftp协议的深层状态检测过滤,其他大多数状态检测防火墙例如LinuxNetfilters也支持ftp协议的状态检测,进行准确的PASV动态端口过滤。 >>2.3 用户名和口令的明文传输 FTP另一个声名狼藉的问题是它以明文方式发送用户名和口令,也就是不加密地发送。任何人只要在网络中合适的位置放置一个协议分析仪就可以看到用户名和口令;FTP发送的数据也是以明文方式传输,通过对ftp连接的监控和数据收集就可以收集和重现ftp的数据传输并实现协议连接回放。事实上很多用户把相同的用户名和口令用在不同的应用中,这样这个问题可能看起来更为糟糕;如果黑客收集到FTP口令,他们也可能就得到了你在线帐号或者其他一些机密数据的口令。 下面是通过tcpdump -- 一个著名的网络协议分析程序抓取的ftp的完整通讯过程。 /=================================================================/ 21:55:36.682402 IP 192.168.0.1.2323 > 192.168.0.3.21: S 2047626269:2047626269(0) win 65535等等,但是在大多数情况下,ftp的通用性和易用性使得它在很长一段时间内必然无法被完全取代。所以如同其他一系列古董服务(例如SMTP/HTTP)一样,近年来也出现了一些不需要对ftp协议自身做完全更改的协议扩展模块,能够良好的完成兼容性和功能扩展。ftp SSL/TLS Extension就是其中一种方式。 >>3.1 SSL/TLS简介 先说一下SSL/TLS协议,SSL(Secure Socket Layer)最早是netscape公司设计的用于HTTP协议加密的安全传输协议,SSL工作于TCP协议的传 输层(TCP层)和应用程序之间。作为一个中间层,应用程序只要采用SSL提供的一套SSL套接字API来替换标准的Socket套接字,就可以把程序转换为SSL化的安全网络程序,在传输过程中将由SSL协议实现数据机密性和完整性的保证。SSL协议的当前版本为3.0,当SSL取得大规模成功后,IETF(www.ietf.org)将SSL作了标准化,规范为RFC2246,并将其称为TLS(Transport Layer Security)。从技术上讲,TLS1.0与SSL3.0的差别非常微小,SSL由于其历史应用的原因在当前的商业应用程序之中使用得更多一些。 >>3.2 数据机密性和完整性 前面多次提到了数据的机密性和完整性两个方面,在此略微解释一下。数据的机密性确保数据信息机密可靠,不会被没有权限的对象所访问和浏览到,基本的机密性保护手段就是数据加密;而数据的完整性则是指数据在传输和存储过程中将保证数据的唯一和完整,不会被恶意篡改着所修改,保证数据完整性的基本手段主要有数字签名。 这里就牵扯到数据加密领域的两类算法,加密算法和散列算法。加密算法从数学原理上看可以分为对称加密和非对称加密,从数据处理方法上可以分为流加密和分组加密,本文重点不在此,不再赘述,只举例几种常用的加密算法: DES, 3DES, AES, BlowFish,RC2-RC6等等。数据签名算法是加密领域的另一套方法,又叫数据散列算法,用于对数据进行处理生成一个唯一的等长签名字符串,原数据的长度可能是任意的,而任意两个相似但哪怕只有少许细差别的数据集,都将产生差别非常大的等长签名字符串,这个字符串在一般意义下被认为是极少会发生空间冲突(重复)的,因此数据散列算法对于确保数据的唯一性是一种必要的手段;常见的数字散列算法有MD5,SHA-1,CAST-256等等。 可以看出,面对如此多种类的加密算法,应用程序处理起来是很繁琐的。SSL在这个层次中就提供了一种自动的算法协商,密钥交换和数据加密过程。SSL协议分为两部分:Handshake Protocol和Record Protocol,HandShake部分用于处理通讯双方的算法协商和密钥交换过程,Record部分用于对数据进行加密传输。 整个的SSL基本通讯过程如下: /====================================================================/ | | | [ SSL Client ] [ SSL Server ] | | | | (TCP三步握手) | | (SSL套结字连接) | | . | | . SSLSocket() | | . Bind() | | SSLSocket() -------------------> | | <------------------- Connect | | (连接加密算法协商) | | ClientHello() -------------------> | | (服务器端算法确认和证书发送)| | ServerHello | | Certificate* | | ServerKeyExchange* | | CertificateRequest* | | <------------------- ServerHelloDone | | (客户端证书验证与密钥交换) | | Certificate* | | ClientKeyExchange | | CertificateVerify* | | [ChangeCipherSpec] | | Finished -------------------> (数据加密算法协商) | | [ChangeCipherSpec] | | <------------------- Finished | | (应用数据加密传输) | | Application Data----------------------------------------- 234 | | TLSneg()程: /======================================================================/ | WinSock 2.0 -- OpenSSL 0.9.7d 17 Mar 2004 | | [R] Connecting to 192.168.21.3 -> IP=192.168.21.3 PORT=9909 | | [R] Connected to 192.168.21.3 | | [R] Connected. Negotiating SSL/TLS session.. | | [R] SSL/TLS negotiation successful... | | [R] TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits) | | [R] 220 Please enter your login name now. | | [R] PBSZ 0 | | [R] 200 PBSZ Command OK. Protection buffer size set to 0. | | [R] USER elly | | [R] 331 Password required for elly . | | [R] PASS (hidden) | | [R] 230 User elly logged in. | | [R] SYST | | [R] 215 UNIX Type: L8 , CP:936 | | [R] PROT P | | [R] 200 PROT P accepted. | | [R] PASV | | [R] 227 Entering Passive Mode (192,168,21,3,5,122) | | [R] Opening data connection IP: 192.168.21.3 PORT: 1402 | | [R] LIST -al | | [R] Connected. Negotiating SSL/TLS session.. | | [R] 150 Opening ASCII data connection for ls / using SSL/TLS. | | [R] SSL/TLS negotiation successful... | | [R] TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits) | | [R] List Complete: 181 bytes in 0.17 seconds (1.04 KBps) | /======================================================================/ Explicit SSL模式下ftp client <-- server的通讯数据,可以看到AUTH SSL之后的指令全部都已经加密,无法看到。对应2.3节中的传统通讯过程,这确保了传输过程中数据无法被窃听到。 在Implicit SSL模式中,从初始化连接开始的数据将全部加密,无法分析,因此此处不摘录。 /======================================================================/ 21:34:22.095241 IP 192.168.0.1.2279 > 192.168.0.3.999: S 1727744887:1727744887(0) win 6553571(866) ack 141 win 65395 (DF) 0x0000 4500 038a 8dad 4000 8006 e86b c0a8 0003 E.....@....k.... 0x0010 c0a8 0001 03e7 08e7 d67d 9aa4 66fb 4c04 .........}..f.L. 0x0020 5018 ff73 e356 0000 1603 0100 4a02 0000 P..s.V......J... 0x0030 4603 0140 8283 7da1 8821 775e 7765 a9ee F..@..}..!w^we.. 0x0040 18ca e0ab 1b17 461e bf71 515f 6837 5c1a ......F..qQ_h7/. /======================================================================/ >>4.0<< 总结 FTP的替代应用 如今,如果考虑到其他一些安全的文件传输选择,可能看起来没有理由再使用FTP了,如SCP或者SFTP,与FTP应用相似但运用SSH(注:Secure Shell)来进行验证和加密,如果你使用一台基于UNIX的服务器,你可以在命令方式下调用SCP或者SFTP。如果你只是用FTP来更新你的Web页面,有别的替代应用,称为WebDAV的新的协议,WebDAV是HTTP的扩展,它允许多个用户共同编辑和维护远程WEB服务器上的文件。FTP是在70年代设计出来的,那个时候互联网还是一个封闭的网络,网络安全不是一个大的问 题。当FTP在使用NAT网关、防火墙、CISCO访问列表的现代网络环境中运用的时候,不管你使用Port模式还是Passive模式,都可能产生一些问题。

    时间:2019-04-19 关键词: 分析 扩展 ftp协议

  • 分享一些我最喜欢的 VS Code 扩展

    分享一些我最喜欢的 VS Code 扩展

    VS Code 是一个出色的代码编辑器,但真正使它强大的是它可用的扩展。 在这篇文章中,我分享了一些我最喜欢的 VS Code 扩展,同时使用 VS Code 开发 Web 应用程序。WakaTime – 根据编程活动自动生成度量标准,代码检测和时间跟踪。GitLens – GitLens 增强了 Visual Studio Code 中内置的 Git 功能。例如 commits 搜索,历史记录和和查看代码作者身份,还能通过强大的比较命令获得有价值的见解等等。REST Client – REST 客户端允许您直接发送 HTTP 请求并在 Visual Studio Code 中查看响应。Npm Intellisense – Visual Studio Code 插件,用于在 import 语句中自动填充 npm 模块。Code Spell Checker – 一个与 camelCase 代码配合使用的基本拼写检查程序。此拼写检查程序可以帮助捕获常见的拼写错误,同时保证减少误报的数量。Azure Storage – Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob、Queue、File 和 Table。按照相关教程从 VS Code 部署 Web 应用程序到 Azure 存储。Night Owl – 一个非常适合夜猫子的 VS Code 主题。像是为喜欢深夜编码的人精心设计的。Project Manager – 它可以帮助您轻松访问项目。您可以利用它定义自己的收藏项目,或选择自动检测 VSCode 项目,Git,Mercurial 和 SVN 存储库。Todo Tree – 此扩展可以快速搜索(使用 ripgrep)您的工作区以获取 TODO 和 FIXME 等注释标记,并在资源管理器窗格的树视图中显示。 单击树中的 TODO 将打开文件并将光标放在包含 TODO 的行上。Turbo Console Log – 自动执行编写日志消息的操作,此扩展使调试更加容易。你还知道哪些很酷的 VS Code 扩展插件?欢迎评论分享。

    时间:2019-01-22 关键词: vs 扩展 分享 code

  • 51单片机扩展protues仿真

      在51单片机当中,一般的at89s51就是两个外部中断源,其它加强型的我想应该会多两个,但是依旧还是不是很多,某些时候需要对其进行扩展,一般用定时器/计数器作外部中断,将其设定为计数器模式,并置初始化数为0xffH,这样只要一次就会计数溢出,产生中断.一般比较实用的就是实用软件中断.  这种方法是:把各个中断源通过硬件“或非”门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样 当外部中断时,通过“或非”门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的 次序。其硬件连接如下:注意:这里碰到一个很让人费解的问题,原来的时候我仿真的是int1,但是在实际仿真的过程当中是没有办法成功的,于是只能是采用INT0来仿真,效果正常.可能是软件的问题吧..

    时间:2018-12-31 关键词: 51单片机 扩展 protues仿真

  • SQL SERVER中扩展存储过程大全

    --获得MS SQL的版本号 execute master..sp_msgetversion--得到硬盘文件信息 --参数说明:目录名,目录深度,是否显示文件 execute master..xp_dirtree 'c:' execute master..xp_dirtree 'c:',1 execute master..xp_dirtree 'c:',1,1--列出服务器上安装的所有OLEDB提供的程序 execute master..xp_enum_oledb_providers--列出服务器上安装的所有代码页 execute master..xp_enumcodepages--列出服务器上配置的dsn execute master..xp_enumdsn--列出sql server错误日志列表,最后更新时间 execute master..xp_enumerrorlogs--列出服务器上所有windows本地组 execute master..xp_enumgroups--检测文件存在性 execute master..xp_fileexist 'c:/a.bak'declare @flag intexec master..xp_fileexist 'c:/abc.bak',@flag outif @flag=1 begin print 'exist' end else begin print 'no exist' end--列出服务器上固定驱动器,以及每个驱动器的可用空间 execute master..xp_fixeddrives--得到当前sql server服务器的计算机名称 execute master..xp_getnetname--列出当前错误日志的具体内容 EXEC [master].[dbo].[xp_readerrorlog]--列出指定目录的所有下一级子目录 EXEC [master].[dbo].[xp_subdirs] 'c:/WINNT'---列出驱动器的名称 --以字节为单位的空闲空间(low free) --以驱动器类型:软驱(1),硬盘(2),cd-rom(8) EXEC [master].[dbo].[xp_availablemedia] --效果如下:name low free high free media type C:/ 1270386688 0 2 D:/ 1726824448 2 2 E:/ 875053056 10 2 F:/ 0 0 8还有在[master].[dbo].[sp_addlogin]里面有加密函数pwdencrypt,大家感兴趣可以试试

    时间:2018-11-15 关键词: sql server 扩展

  • 将DSP设计扩展为异构硬件平台

    视频、影像和电信市场的标准推动了异构可重配置 DSP 硬件平台的使用。就本文而言,这些平台包括 DSP 处理器和 FPGA,它们提供的现成硬件解决方案可以解决视频、影像和电信设计中的重大难题,但仍不失产品差异化所需的足够的可定制性。据市场研究公司 Forward Concepts 于 2005 年发表的一则调查报告称,选择处理器和 FPGA 的主要标准不是器件本身,而是开发它们的工具。这一概念对于包含 FPGA 和 DSP 处理器的平台亦应成立。在 DSP 处理器和 FPGA 之间,传统的 DSP 开发者通常选择前者,因为设计流程是已知的,而异构系统的优点则难于评价。可重新配置的硬件平台限制了硬件自由度,设计流程因此而具有较高的自动化程度。这种自动化排除了设计的复杂性,从而在 DSP 设计界进一步推广了硬件解决方案的优势。DSP 硬件平台的优点FPGA 和 DSP 处理器具有截然不同的架构。在一种器件上非常有效的算法,在另一种器件上却可能效率非常低。如果目标应用要求大量的并行处理或最大的多通道流量,那么单纯基于 DSP 处理器的硬件系统就可能需要更大的面积、成本或功耗。一个 FPGA 协处理器仅在一个器件上就能提供多达 550 个并行乘法和累加运算,从而以较少的器件和较低的功耗为许多应用提供同样的性能。尽管 FPGA 在处理大量并行数据方面出类拔萃,但对于定期系数更新、决策控制任务或高速串行数学运算这类任务来说,它们的优化程度比不上处理器。正是 FPGA 和 DSP 处理器的结合为广泛的应用提供了制胜的解决方案。例如,对于采用模式识别技术的智能摄像机来说,异构可重配置 DSP 平台可以作为理想的选择。FPGA 的并行处理能力非常适用于图像分割和特征提取,而视频和影像 DSP 处理器则更适合统计模式分类等数学密集型任务。异构系统可以更好地利用流水线和并行处理,这对于获得高帧速率和低延迟来说至关重要。基于异构平台的设计流程的优点基于异构平台的设计流程把单独处理器和 FPGA 设计流程采用的设计自动化概念扩展到整个平台。基于平台设计的基本原则是剔除基于硬件系统和基于软件系统的“中间件”。这样就可以让缺乏或完全没有 FPGA 设计经验的 DSP 设计者能够评估和利用 FPGA 协处理器的性能、成本和功耗优势。基于平台的设计流程应能自动生成内存映射、软件接口的头文件和驱动程序文件以及硬件的接口和中断逻辑。整体系统的改动对单个软件和硬件组件的影响有限。通过这种自动化,开发者个人不必再掌握设计 FPGA 硬件、DSP 处理器应用代码以及接口逻辑和软件所需的庞杂技术。设计 FPGA 协处理器任何给定的技术中都有多种方法可以实现信号处理算法。算法步骤常常受到目标硬件的影响。当目标是异构 DSP 硬件平台时,实现方法的选择就成了一个二步过程。您必须首先选择最合适的硬件器件,然后再确定哪种实现方法适合该器件。在可重新配置的 DSP 硬件平台上,处理器将作为主处理单元并且控制 FPGA。而 FPGA 则用作协处理器(其中,数据传入 DSP 处理器进行同步,然后传出),或者用作预处理器或后处理器(其中,数据从高速接口传入)。FPGA 的最佳用法取决于系统数据速率、格式和运行参数。像德州仪器公司 DSP 的 Code Composer Studio 这类工具包含代码分析器,用来识别可以下载到 FPGA 的软件“热点”。20% 应用代码占用 80% 可用处理器 MIPS 的情况并不罕见。需要一个接口将 FPGA 连接到硬件平台上独立的 DSP 处理器。可重新配置的 DSP 平台通常能支持较多通用接口(如德州仪器公司的 16/32/64 位 Tic6x DSP 扩展存储器接口 (EMIF),适用于系统控制和协处理任务)和较多高速串行接口(如 SRIO 或视频接口,用于预处理和后处理操作)。系统中加入 FPGA 协处理器后,软件实现就将由算法描述转变为数据传递与函数控制。对于应用软件开发者来说,FPGA 协处理器将显示为一个硬件加速器,可以通过函数调用对其进行访问。Xilinx 解决方案在MathWorks 的 Simulink 和 MATLAB 建模环境的基础上,Xilinx 为 FPGA 提供了一个完整的 DSP 开发环境。浮点 MATLAB 中所描述的算法可以用 AccelDSP 合成到 Xilinx? FPGA 的 DSP 功能模块中。System Generator 允许用 Simulink 将这些模块与一个由 90 多个经 Xilinx 优化的 DSP 模块组成的库结合起来,从而形成完整的基于 FPGA 的 DSP 系统。System Generator 支持硬件协同验证,用硬件上运行的实现过程取代部分软件模拟。这样,您就可以验证硬件中的实现过程并且加速 Simulink 的模拟。现在的 System Generator 在 FPGA 协处理器与德州仪器的 DSP 处理器之间自动生成基础架构,以这种方式支持基于平台的设计。这种支持针对平台,最初是为 Xilinx 视频协处理套件提供的。System Generator 将来的版本将包括对其他平台的支持。用这种新型的自动方法,System Generator 通过一些叫做“共享存储器”的特殊模块在软硬件之间提供一个抽象层。对于硬件开发者来说,这种共享存储器的作用相当于 FIFO、RAM 或寄存器的一个端口。数据传入和传出 FPGA 的操作是通过对应用软件中的共享寄存器之一执行一个简单函数调用来完成的,此函数调用在 System Generator 自动生成的驱动程序文件中予以定义。这个流程还支持中断生成,以实现处理器和协处理器之间的有效执行。结论FPGA 的并行处理能力可大大改善视频、影像和电信应用的性能、成本效率和功耗,这些应用或者已经受益于并行 DSP 处理,或者需要优化的多通道处理。依托基于平台设计方法的异构可重配置 DSP 平台使不熟悉 FPGA 设计的传统 DSP 设计者能够快速评估 FPGA 协处理器为其特定应用带来的好处。

    时间:2018-06-18 关键词: DSP 平台 嵌入式处理器 扩展 异构硬件

  • Android OS的扩展库支持

    在Android OS上有很多的扩展库,也有许多是特别优秀的,大部分IT公司在移动领域上都投入比较大的一部分,除了Open Handset Alliance、Symbian Foundation、LiMo Foundation外还有其下: 一、Microsoft Silverlight Microsoft Silverlight是微软最新的UI技术,号称Flash杀手,主要使用WPF,可以很好的实现富客户端的支持,但同Flash一样也需要插件的支持方能显示,将来会采用跨平台的方式来支持Windows Mobile、Symbian,但从Android平台给出的Java构架来看是无缘了。 二、Sun JavaFx for Mobile Sun公司的J2ME似乎被遗忘了,但J2ME还是可以跨多个系统平台,这点和Dalvik有很大的区别,从目前的情况来看Dalvik向要在其他移动平台运行几乎是不可能的事,而Sun又为RIA时代做了很多的UI组件JavaFX和F3无任何关系,JavaFx可以运行在J2ME和Android平台上,目前来看兼容性是最好的,如果可以J2ME也可以运行在Android上的话,但这已经不需要了,J2ME和Android之间的移植不是很困难。 三、Trolltech QT QT对于在Liunx开发平台下的开发者应该不会陌生,但QT是作为一个C++库,就已经和Android无缘了,但是如果Google和Trolltech合作,做一个中间层框架,可以类似Webkit或OpenGL的迅速高效。 四、Adobe Flash Lite Adobe Flash Lite作为移动设备中的必要的一个插件,Android系统通过安装Flash Lite插件可以支持Flash视频、Flash游戏,从Android手机中内置了Youtube客户端来看预装了Flash Lite插件也是必然的。 Flash Lite 1.1 类似 Flash 4 :播放动画、简单游戏和屏幕保护 Flash Lite 2.1 类似 Flash 7 :支持Flv视频解码、小型游戏和程序、高级面向对象编程方式 Flash Lite 3 类似Flash 8 :丰富的游戏、Youtube在线视频和音乐等,支持RIA特性,但不属于Flex范畴。 当然还有很多MID设备支持完成的Flash如Nokia N810就做到了,但使用的并不是Android平台,而是Nokia Maemo Linux。 五、Adobe Open Screen Adobe Open Screen是一种UI层技术,如果Android平台拥有它,开发者可以以此编写更高级的用户界面,传说中的TAT主题大量的使用了OpenGL ES来加速,但用Open Screen一样可以胜任。

    时间:2018-04-12 关键词: Android microsoft 扩展

  • 52单片机存储器的扩展

    52单片机存储器的扩展

    STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 52单片机存储器的扩展----系统扩展结构   为减少连线,简化组成结构,可把具有共阳性的连线归并成一组公共连线,即总线--传送信息的公共通道(BUS)。 STC98C52单片机属于总线型结构,片内各功能部件都是按总线关系设计并集成为整体的。 三总线:地址总线(AB)、数据总线(DB)、控制总线(CB)。 单片机系统扩展主要包括存储器扩展和I/O接线部件扩展。 STC89C52单片机的存储器扩展包括程序存储器扩展又包括数据存储器扩展。 52单片机存储器的扩展----程序存储器的扩展 外部程序存储器的种类单一,常采用只读存储器。只读存储器简称ROM。ROM中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容。ROM在电源关闭后仍能保存程序,在系统上电后,CPU可取出这些指令重新执行。 52单片机存储器的扩展----数据存储器的扩展 STC89C52内部仅有512B的数据存储器,可用于存放程序执行的中间结果和过程数据。这512B的数据存储器包含256B的内部RAM和256B的内部扩展RAM。内部扩展的256B RAM在物理上属于内部,在逻辑上属于外部。在系统需要大量数据缓冲的场合中,可以通过在外部扩展较大容量的静态随机存储器或者Flash ROM扩充系统的数据存储能力,扩展的最大容量为64KB,地址为0000H-FFFFH。

    时间:2017-12-27 关键词: 存储器 扩展 存储技术 52单片机

  • Mentor Graphics扩展Mentor Embedded Linux功能

    Mentor Graphics公司(纳斯达克代码:MENT)今日宣布,即将推出可兼容 AMD 嵌入式 R 系列处理器的 Mentor® Embedded Linux®运行软件和开发工具。第二代 AMD 嵌入式 R 系列设备包括:AMD Radeon™ R7 Graphics(原代号:“Merlin Falcon”)和 AMD 嵌入式 R 系列 APU(原代号:“Bald Eagle”),两者均支持异构系统架构,具有较高的处理性能、极佳的功率效率以及逼真的多媒体展现。Mentor Embedded Linux运行软件和开发工具同样还支持 AMD 嵌入式 G 系列处理器。 嵌入式开发人员现可免费下载兼容最新AMD嵌入式处理器的Mentor Embedded Linux Lite 和 Sourcery™ CodeBench Lite 工具,然后利用此工具进行评估、样机制作和开发。此外,开发人员还可通过用于生产平台的 Sourcery CodeBench 工具,继续实现向新商用版本 Mentor Embedded Linux 环境的无缝迁移。AMD 嵌入式处理器与 Mentor Embedded Linux 处理器相结合,形成一个功能强大的硬件/软件平台解决方案。借助该解决方案,开发人员可以开发面向数字游戏、销售终端 (POS) 和电子标牌/显示屏等市场的动态应用程序。 AMD 公司副总裁兼嵌入式解决方案部门总经理 Scott Aylor 表示:“AMD 嵌入式 R 系列 SoC 可提供业内领先的性能,适用于需要高性能、低功耗架构以及绝佳图形和计算功能的各类市场。随着新产品的发布,其产品系列就更加丰富,其中包括免费的 Mentor Embedded Linux Lite 和稳健而又可提供商业支持的 Mentor Embedded Linux,不一而足。这样一来,AMD 嵌入式客户在 Linux 开发方面可使用的解决方案变得更多了,也就更利于攻克其设计难题。” 嵌入式 Linux 平台和开发工具 AMD 嵌入式客户可下载 最新的的 Mentor Embedded Linux 和Sourcery CodeBench Lite 工具,结合该工具并利用 Yocto™ 项目的技术为基础,用户可快速从源代码构建基于 Linux 的定制平台。借助 Mentor Embedded Sourcery CodeBench 和屡获殊荣的 Sourcery™ Analyzer 技术,嵌入式 C/C+ 开发人员可通过可视的调试框架来识别功能、时序和性能瓶颈,从而获得有关系统行为和时序的关键信息。 商用版产品中新增了一项功能,即通过 Qt Creator 开发和调试基于 Qt® 的用户界面 (UI)。最新商用版 Mentor Embedded Linux 平台还对集成式 Qt 5.3.2 加速图形框架进行了升级。除 Qt 库模块外,开发人员还可利用独特的系统级追踪和分析可视化功能,轻松地对帧速率等 UI 性能指标进行优化,从而开发出反应灵敏的图形密集型应用程序。 适用于 AMD G 系列和 R 系列设备的 Mentor Embedded Linux 商用平台的其他特性和功能包括: • 加速的 Qt 5.3.2 图形 • 加速的 GStreamer 1.0 多媒体协议栈 •Sourcery CodeBench 基于 Eclipse 的 IDE,用于应用程序开发、调试和分析 • 通过 Qt Creator 开发和调试图形用户界面 • 定制服务 • 技术支持 Mentor Graphics 嵌入式系统部平台业务单元的总经理 Scot Morrison 表示:“我们与 AMD 在技术上的持续合作,可帮助双方客户开发出全新的卓越产品,包括基于最新 AMD R 系列和 G 系列处理器的高性能用户界面。与 AMD Embedded 的合作促进了产品创新,降低了开发嵌入式 Linux 和 UI 的风险,同时实现了更高用户生产率。”

    时间:2015-11-13 关键词: mentor 功能 扩展 graphics 驱动开发

  • FCI宣布推出100安培 Pwr TwinBlade® 热插拔电缆连接器

    21ic讯 领先的连接器和互连系统供应商 FCI,于今日发布了其扩展PwrBlade ULTRA™ 系列的新产品,其中现已涵盖直角和共面结构。 凭借其独特的硬公制兼容性设计,该垂直插座连接器允许将 PwrBlade ULTRA™ 用于传统的背板应用。此外,直角插座可供薄型共面应用使用。该连接器每个触点的额定电流为 65 安培,并在保留相同的较高额定电流和电流密度的同时,还提供您理想中 PwrBlade ULTRA™ 的较小尺寸和薄型特性。 该产品备有各种配置,可在电源和信号触点的数量和布局方面提供良好的灵活性。 PwrBlade ULTRA™ 是新一代高效背板和共面配电应用的理想解决方案。其特点包括无卤素外壳、压接或焊接尾选项以及仅 0.4 毫欧的超低触点阻抗。 PwrBlade ULTRA™ 垂直插座的样品现已开始提供。如需有关 FCI 的 PwrBlade ULTRA™ 垂直插座或其他配电解决方案的更多信息,请点击此处或通过communications@fci.com与我们联系。

    时间:2015-03-11 关键词: fci 扩展 pwr twinblade®

  • μC/OS的应用和扩展

    摘要:本文介绍了μC/OS在ColdFire为核心系统上的具体应用,并在此基础上做了扩展,在μC/OS的核心上实现了RAM盘和文件系统。为了方便应用和调试,还实现了用户Shell程序,可以接受并执行用户命令,扩展并丰富了μC/OS的功能。 关键词:μC/OS μCLinux 嵌入式系统 ColdFire 一、 概述 近年来,随着微控制器性能的不断提高,嵌入式应用越来越广泛。目前市场上的大型商用嵌入式实时系统,如VERTEX,VXWORK,PSOS等等,已经十分成熟,并为用户提供了强有力的开发和调试工具。但商用嵌入式实时系统价格昂贵,而且都针对特定的硬件平台。对于国内中小型系统的开发,购买商用实时系统并不划算。此时,采用免费软件和开放代码不失为一种选择。目前源码开放(C代码)的嵌入式系统有μC/OS的uCLinux。μC/OS简单易学,提供了嵌入式系统的基本功能,其核心代码短小精悍,如果针对硬件进行优化,还可以获得更高的执行效率。但是μC/OS相对商用嵌入式系统来说还是过于简单,而且存在开发调试困难的问题。UCLinux是免费软件运动的产物,包含丰富的功能,包括文件系统、各种外调驱动程序、通讯模块、TCP/IP、PPP、HTTP,甚至WEB服务器的代码。在INTERNET上流传的uCLinux已经被移植到当前几乎所有的硬件平台上,功能与PC机上运行的Linux不相上下,其代码也十分复杂。完全移植没有必要也十分困难,但uCLinux的代码经过世界范围内的优化,稳定可靠而且高效,所有模块的代码都可以从INTERNET上获得,可以进行模块移植。在本例应用中,笔者在ColdFire硬件平台上运行了μC/OS的核心,并实现了uCLinux的文件系统,使得在嵌入式应用中可以进行文件操作。同时针对μC/OS调试困难的问题。还移植了 uCLinux的用户Shell,使得用户可以用命令行方式进行程序的调试和开发。 二、 硬件平台 本系统的硬件平台采用GPFC(General Purpose Fieldbus Controller)数据采集系统。该系统是由德国汉堡国家同步辐射实验实(DESY)Dr.Matthias Clausen领导的研究小组开发,采用Motorola公司的ColdFire MCF5206处理器为核心。ColdFire MCF5206处理器属于Motorola 32位MCU家族,在源码上与68K系列兼容。全静态设计,在33MHz的工作频率下可达最大17MIPS的处理能力。除了具有68K系统的通用功能模块外,片内还带有DRAM控制模块,可以直接外接DRAM芯片。由于ColdFire将片选逻辑电路、总线控制器、DRAM控制模块等全部集成在MCU内部,使得外围电路变得十分简单。 在笔者所用的GPFC系统中,ColdFire工作在32MHz,外围电路包括两片DEAM芯片,共计4M的RAM,一片128K的FLASH,用于存放引导程序。其余为I/O电路。系统通过RS-232串口与PC机相连。 三、 软件设计 本系统的软件采用μC/OS为嵌入式平台。在应用中切实感到了开放源代码的无可替代的优点。首先是可以根据自己的需要对源代码进行取舍,去掉不需要的变量和不使用的函数,甚至可以根据需要改写相关函数。在μC/OS的源代码中,函数执行中有许多条件判断,作用是防止参数的错误传递。例如,与信号量有关的函数在执行前都会检查一下传递给函数的指针是不是一个有效的信号量指针。作为通用系统,这些条件判断是完全必要的,避免出现错误时系统崩溃。但作为具体的应用,只要在程序设计时保证参数传递的正确性,完全可以不用条件判断,就能提高函数的执行速度,尤其一些频繁调用的函数,或当MCU速率不高的时候,重写部分函数往往可以显著提高系统性能。另外,由于用户对系统有源码级的了解,可以添加自己编写的模块,与原系统兼容,使系统具有可扩展性。 正是由于μC/OS的可扩展性,笔者将uCLinux的RAM盘、文件系统和用户Shell移植到了μC/OS上,在用户程序中可以进行文件操作,文件系统可以为任务保存数据,并提供了统一的接口函数。用户编制的单个任务也可以保存在RAM盘上,可以在终端上用命令方式执行运行、监控、删除任务。 四、 文件系统 uCLinux的文件系统与Linux的基本相同,文件以树型目录组织。由于篇幅所限,关于文件系统的细节,读者可参考Linux和Unix的相关资料,本例中将RAM中高端的1M分配给文件系统,建立了容量为1M的RAM盘。 UCLinux的文件系统由逻辑块组成,如果是磁盘文件系统,对应为磁盘块;RAM盘则对应为内存块,每个块为512字节。一个标准的逻辑盘划分成几个部分:引导块、超级块、索引节点区和数据区。 引导块超级块索引节点区数据区 引导块在文件系统的开头,通常为一个逻辑块、存放引导程序,用于启动和引导操作系统。在我们的RAM文件系统中由于不需要RAM盘引导,所以不分配引导块。超级块记录文件系统当前状态,盘有多大,能存放多少文件,何处可以找到空闲空间和用于文件系统管理的信息。索引节点区紧接在超级块后面,存放文件系统的索引节点表。在文件系统中每一个文件(包含目录)占据一个索引节点表项。索引节点是一个记录文件信息的数据结构: struct dinode{ short di-mode; /*文件模式:是文件还是目录,是可读、可写还是可执行*/ short di-nlink; /*和文件相关的链接数*/ short di-uid; /*文件所有者的标示*/ short di-gid; /*文件所有者的组标示*/ long di-size; /*文件大小*/ char di-addr[ ]; /*文件数据所在的逻辑块编号*/ time-t di-atime; /*文件最后一次访问的时间*/ time-t di-mtime; /*文件最后一次修改的时间*/ time-t di-ctime; /*文件建立的时间*/ } 其中的数组di-addr[ ]记录文件数据所在的逻辑块号。本例中RAM盘为1M,每个逻辑块512字节,共2048个逻辑块,所以每个逻辑块的编号要用两个字节表示。为了记录足够长的文件,di-addr[ ]中逻辑块可分为直接块和间接块。关于直接块和间接块的概念,请读者参考Linux的相关文档。分析索引节点可知,通过索引节点就可以完全确定一个文件。索引节点表中的第一项就是根目录。索引节点区的大小决定了文件系统中最多能有多少个文件(包括目录)。在本例中,笔者设定为128项。在索引节点区后就是数据区,数据区以逻辑块为单位按次序编号。如果要访问某个文件,只要找到该文件对应的索引节点表项,从di-addr[ ]项中就可以查出文件数据所在的逻辑块。文件的访问需要通过fread()或fwrite()函数,其细节不再复述。 添加了文件系统后,任务的运行将和文件相关,所以TCB(任务控制块)要做相应的修改。需要添加任务所在目录项和任务打开文件项。当一个任务调用OSTaskCreate创立新的任务的时候,子任务应该继承先前任务的目录项和任务打开文件项。 五、 用户Shell 用户Shell实际上是一个在μC/OS下独立运行的任务,处于最低的优先级。 Shell启动后,进入睡眼状态,等待用户输入。用户从终端上输入命令后将唤醒Shell,Shell首先检测输入命令是不是内部命令,如果不是,则在 TCB中查询当前所在文件目录,然后在目录中查询是否有与输入匹配的文件,如果有且文件属性为可执行时,则调用OSTaskCreate创立一个新的任务。由于Shell优先级为最低,新创建的任务将马上运行。新任务执行完后可以用OSTaskDel删除自己。如果在当前目录中找不到匹配项,则返回错误信息。 在本例中,Shell中包含的内部命令为cd(改变当前目录),pwd(显示当前工作目录),mkdir,rmdir(创立删除目录),ps(显示当前系统中的任务),kill(删除任务)。 由于μC/OS中的OSTaskCreate不能动态分配堆栈空间,OSTaskDel也能释放任务的堆栈空间。为了实现Shell的加载和删除任务的功能,笔者对上述两个函数进行了改写,添加了内存管理函数 malloc()和mfree()。为了简间起见,以8k为单位申请和释放内存块。系统的内存资源由一个双向链表进行管理。在OSTaskCreate中调用malloc(),参数为希望分配的内存块数,malloc()将检索内存管理的双向链表,返回空闲块地址。而OSTaskDel中将调用 mfree()释放内存,重新加入双向链表。为了避免内存空洞,在Shell中启动的任务采用相同大小的堆栈。 通过用户Shell,单独的任务可以保存在RAM盘上,通过命令方式运行、监控,查看任务状态、删除任务,作为一种有力的开发和调试手段。 六、 结语 μC/OS的出现和应用也只是近年来的事,其迅猛的发展证明了开放源码软件的巨大生命力。相信经过广大用户的不断丰富和完善,μC/OS的功能将日趋成熟,应用也会更加广阔。

    时间:2014-05-25 关键词: 应用 扩展 驱动开发 μc/os

  • 飞思卡尔推出Kinetis KW2x无线MCU 进一步扩展其MCU产品组合

    21ic讯:2013年12月5日,飞思卡尔半导体公司推出并发售一流的802.15.4/ZigBee® 无线解决方案,进一步扩展了其Kinetis 微控制器产品组合。该解决方案适用于广泛应用,包括智能能源、家庭/楼宇自动化及家庭娱乐等,现已供货。飞思卡尔推出Kinetis KW2x无线MCU系列,目的是满足与未来ZigBee 智能能源2.0和互联网协议规范息息相关的、不断增加的处理和存储器需求。新一代世界级Kinetis 无线解决方案的问世,通过对飞思卡尔广泛的物联网产品组合的扩展,进一步增强了飞思卡尔的连接能力。Kinetis KW2x无线平台集成了一个ARM? Cortex? M4处理器和一个符合802.15.4标准的 RF收发器,并包含一个强大的功能集,是一款可靠、安全、低功耗的2.4GHz平台。无线连接的演进随着物联网迅速成为现实,除了提供更强的处理能力和更高的存储器容量外,越来越多的器件还内置了无线连接,以满足市场需求。与市场上的同类器件相比,KW2x 无线平台可提供更强大的处理性能以及更大的闪存和RAM选项,可防止当标准规范发生变化时最终应用被淘汰。借助Kinetis KW2x无线平台提供的512KB闪存和64KB RAM,设计人员无需回看绘图板便可快速升级特性。为了满足客户的灵活性要求,KW2x 还可提供64K的 FlexMemory 进行额外配置。飞思卡尔KW2x无线平台可降低功耗并增加链路预算,提供业界领先的RF性能。该收发器配备天线分集,可增强RF可靠性,特别是在存在多路径干扰的情况下更是如此。802.15.4收发器可降低发射和接受功率,此外,其低功耗运行模式可优化能源使用。KW2x无线MCU拥有独特的硬件辅助型双个人局域网 (PAN) 支持,使一个器件能够在两个ZigBee 网络间进行无线通信。该功能可消除对多个电台的需求,过去需要使用多个电台连接不同的家庭自动化和智能能源网络。此外,飞思卡尔还集成了通常在高端处理器中才提供的高级安全特性,可满足用户对高级加密方法(包括密钥生成、安全存储器和篡改检测功能)的需求。安全闪存可防止非法访问或修改代码和数据,同时篡改检测功能可识别事件并异步清除安全RAM,生成中断,从而让应用固件能够执行包括系统复位在内的其他操作。加密加速单元可执行一组专门运算,提高加密/解密运算及消息摘要函数的吞吐量。Kinetis KW2x无线MCU的特性:● 采用50 MHz ARM Cortex-M4内核● 低功耗● 高达512 KB的闪存和64 KB的SRAM● FlexMemory选项,配备高达64 KB的 FlexNVM和4 KB的FlexRAM● 加密加速器和高级篡改检测功能● 集成了符合IEEE? 802.15.4标准的一流的电台无线电收发器的特性:● 符合IEEE 802.15.4 2006标准的电台● 支持2.4 GHs ISM频段,以及2.36至2.4 GHz 医疗频段(MBAN)● 低RF功耗● 一流的的链路预算● 增强型特性,包括快速天线分集和双PAN支持全面的支持套件无论选择哪款Kinetis KW2x无线MCU,嵌入式产品设计人员都可使用Kinetis MCU产品组合共用的工具和软件。ZigBee 协议软件无缝集成到Kinetis 开发工具中,可进一步加快产品开发速度。我们提供全面的支持套件,包括BeeKit 无线连接工具包、Freescale MQX软件解决方案及相关中间件,以及用于快速原型设计的塔式系统模块化开发平台。,此外,我们广泛的ARM生态合作体系还提供IAR、IDE等第三方开发支持。供货情况飞思卡尔Kinetis KW2x 无线MCU现已供货。

    时间:2014-04-11 关键词: MCU 扩展 进一步 卡尔

  • 宸鸿看好触控业:守稳高阶扩展中低阶

    受到触控面板快速跌价、苹果Apple智能型手机iPhone5订单流失、触控市场技术变迁等等因素影响,触控面板大厂F-TPK宸鸿2013年营运历经调整、获利衰退。展望2014年,F-TPK宸鸿董事长江朝瑞指出,今年营运展望是保守审慎,但对于触控产业发展的看法依然乐观。因为F-TPK宸鸿已经做好准备,在这一波触控趋势绝对不会缺席。问:F-TPK宸鸿2014年展望如何?答:今年营运展望是保守审慎,但对于触控产业发展的看法依然乐观。现在市场上(触控)技术很多,从G/G、G/F/F、incell、oncell、MetalMesh、纳米银,充满竞争。大家都有希望,但大家都没把握。TPK宸鸿在这一波触控趋势绝对不会缺席,因为TPK已经做好准备。触控应用全面化,大中小尺寸应用都很热,以前F-TPK宸鸿从高阶产品做起,现在除了高阶市场、也会往中低阶产品加强。例如F-TPK今年会推出新一代TOL2(第二代TouchonLens)(主攻高阶)、纳米银触控面板(主攻中低阶),来冲刺新的市场。虽然市面上有很多技术,各种技术在触控领域都可以得到一些机会,但要强调的是、没有一个技术可以支配整个市场。而F-TPK宸鸿目前除了incell、oncell外,其它触控技术都可以做到(G/G双层玻璃、G/F薄膜结构、OGS单片玻璃、TOL(TouchonLens)、纳米银)。股价没有所谓委不委屈,投资必有风险。但是第四季不好,将来不见得不好。而现在好的,以后也不一定好。(企业)经营总有些时候会比较惨淡一点,但是公司对于未来是很有信心。问:触控笔记型计算机今年渗透率如何?F-TPK宸鸿客户结构如何?答:触控笔记型计算机NB今年(渗透率)情况可能还是要看NB品牌厂商的推展速度而定,目前还不是那么明朗。基本上(渗透率)还是在增加,只是(渗透率提升速度)没那么快。F-TPK宸鸿去年达到客户家数超过40家的目标,并且除了欧美客户外,其他地区(中国大陆等等)客户也有。今年(客户规模)还是会拚(增加)新的客人。至于各区域客户比重,基本上可能不会有太大变化,因为强的还是很强,不强的还是不强。问:F-TPK宸鸿去年第四季估亏损,今年股利发放如何?答:其实F-TPK宸鸿去年营业利益(本业营运)还是赚钱的,但是触控技术转得很快,有些技术已经转移了,就要(针对闲置产能)提列资产减损。另外,就是来自转投资事业(达鸿)的商誉减损等等,才会造成第四季不好。股利方面,还要等董事会决议通过。但过去两年(F-TPK宸鸿股利发放)都是以配现金为主,今年配股方向应该还是会以现金为主。问:F-TPK宸鸿去年发生数波裁员、是否还有调整? 12答:这是因为人力调整,有些地方(工厂)人多,有些地方(工厂)人不够。不讳言,微软Touch触控笔记型计算机推展速度不如预期是事实,而(触控业界)厂商产能扩充很多也是事实。基本上TPK今年还是维持3%加薪幅度。问:外传F-TPK宸鸿控告欧菲光等触控同业侵权等专利诉讼,可能和解收场。对于触控业界诉讼的看法?答:只要双方达到互相尊重、就好了。(触控面板)业界窃取商业机密情况蛮严重的,但这是市场必然的现象。虽然公司有做防范措施,但偷的是有心人。希望能够达到人家不侵犯我们、我们不侵犯别人就好了。 12

    时间:2014-03-21 关键词: 扩展 看好 高阶 低阶

  • OpenFlow扩展移动网络应用

    21ic通信网讯,为了使移动网络实现最佳化的软件定义网络(SDN),业界60多家公司以及260位代表共同参与投入一项新的合作计划,目标在于扩展 OpenFlow 协议于电信厂商回程网络与核心网络的利用,以及为企业导入校园无线网络业务。“这项工作可望补强 IEEE 和 3GPP 的工作进展,”负责 OpenFlow 协议的“开放网络基金会” (Open Networking Foundation;ONF)新成立的无线与移动网络工作组主席Serge Manning表示,“我们想要提高性能,而不至于混乱现有的任何界面。”相关的讨论从一年多以前即已展开,同时已为 OpenFlow 定义出17种应用情境。该工作小组成员最初包括中国移动(China Mobile)、华为(Huawei)、法国Orange、西班牙电信(Telefonica)以及Goldman Sachs等公司,目前其它成员还包括思科(Cisco Systems)、NEC、诺基亚(Nokia)以及中兴通讯(ZTE)等。Serge Manning同时也是华为企业标准资深经理。他指出,该工作小组计划在一年内扩展 OpenFlow 协议至移动回程网络、核心网络以及企业网络;为相关应用起草最佳实践;以及展示原型网络。例如,该工作小组期望能为 OpenFlow 找到可动态调整毫米波无线电的方式,从而提升回程网络的性能或能效。而在蜂巢式核心网络,该工作小组计划缓解划分数据与控制流量的工作负载。此外,其目标还包括让企业能以更核心的方式管理有线与无线网络的身份认证等功能。业界电信厂商对于软件定义网络的兴趣正逐渐增加中,美国AT&T公司在去年夏天宣布的采购策略中,有一部份即以采用 SDN 技术为基础。此外,该公司还将参与今年三月举办的Open Networking Summit,该公司技术与网络事业部资深执行副总裁John Donovan将在会中发表专题演讲。“他们没并未对 OpenFlow 特别表达什么意见,但很显然地,他们将以全新的方式进行网络设备采购──这正是我们目前努力的方向,”开放网络基金会执行总监Dan Pitt强调。

    时间:2014-01-26 关键词: 移动 网络应用 openflow 扩展

首页  上一页  1 2 3 4 5 6 7 8 下一页 尾页
发布文章

技术子站

更多

项目外包