【详细】嵌入式软件学习问题汇总(二)何为ARM(那些你得知道的事)?

简单聊聊

  上一篇,介绍到了什么是嵌入式,以及嵌入式与单片机、PC机的区别,简单聊了聊有关嵌入式软件学习的一些内容。这一片打算接着上一篇的内容,详细的说一下现在主流的嵌入式CPU架构-ARM架构,想要进行嵌入式学习,就一定要先了解什么是ARM,以及ARM内核型号的发展历程,只有先搞清楚了这些基本问题,往后学习才能理顺思路,这里主要结合我自己学习的一些内容及从网上搜索到的一些内容综合起来,与大家详细谈谈何为ARM。好了,废话不多说,走起:

一、什么是ARM?

在这里插入图片描述
  以现在的角度去聊ARM,ARM太过于庞大,ARM你可以百度一下,讲什么的都有,ARM可以是ARM处理器,可以是ARM架构,也可以ARM公司。可以这么说,今天的ARM不只是ARM,它是一种体系,一个标准。
  但是,很多年以前ARM只是ARM,是一个逐渐发展壮大的CPU公司,接下来按时间顺序,聊聊ARM这些年发展的发展史:

(一)ARM发展史

在这里插入图片描述
1、1978年,ARM在英国剑桥并正式创立,这时的ARM还不是ARM,而是它的前身-CPU公司(Cambridge Processor Unit,字面意思是“剑桥处理器单元”,后于1979年更名为Acorn计算机公司),主要业务是为当地市场供应电子设备。

  这里插一段有意思的故事CPU公司成立之后,主要从事电子设备设计和制造的业务。他们接到的第一份订单,是制造赌博机的微控制器系统,这个微控制器系统被开发出来后,称之为Acorn System 1。(可见每一个大牛的崛起都曾经历过黑历史,哈哈哈)
在这里插入图片描述
2、1980年末,苹果公司与Acorn公司合作开发新版本的ARM核心(可见苹果与ARM从很久以前就建立了很好的合作关系)

3、1981年,公司迎来了一个难得的机遇 —— 英国广播公司BBC打算在整个英国播放一套提高电脑普及水平的节目,他们希望Acorn能生产一款与之配套的电脑。接下这个任务之后,Acorn就开始干了起来。当时,中央处理器的发展潮流,正在从8位变成16位。Acorn并没有合适的芯片可以用。于是他们打算使用美国国家半导体和摩托罗拉公司的16位芯片,但是后来发现,该芯片存在缺陷,后来又请求英特尔(Intel)的帮助,遭到拒绝。于是Acorn公司在一气之下决定自己干,自己造芯片(这就是后来一步步转变为设计芯片的主要原因)。
在这里插入图片描述
  真不想打断自己,但是这里我还是想插一段小故事,也是后来ARM崛起的重要原因,相信大家都会感兴趣:ARM公司在打算自己做芯片以后,公司一度处于焦虑状态,为什么呢,因为ARM公司资金不足的问题,传统CPU设计公司所使用的基于CISC(复杂指令集)的开发方案在ARM内部根本不可能投入研发,于是Acorn公司便派研发人员在刚刚高校寻找解决方案,最后从美国加州大学伯克利分校找到了一个关于新型处理器的研究——RISC精简指令集,恰好可以满足他们的设计要求。在此基础上,经过多年的艰苦奋斗,来自剑桥大学的计算机科学家Sophie Wilson和Steve Furber最终完成了微处理器的设计,而恰好满足了时代的需求和发展方向,RISC精简指令集CPU的出现一度将ARM推向了时代的潮流。如今ARM公司既不生产芯片也不销售芯片(这里不是ARM不想生产,是当时情势所迫,没钱生产,只好以出售芯片技术授权的形式作为自己的盈利模式,反而受到各个CPU制造商的欢迎),它只出售芯片技术授权。却做到了在手持设备市场上占有90%以上的份额。(所以你看成功有时候是悄无声息的,曾经的ARM也不可能知道RISC才是今天的时代潮流,只要坚定不移的努力,遇到问题解决问题,就会有更加美好的明天)
在这里插入图片描述
4、1982年,Acorn计算机公司推出了BBC Micro计算机,这是欧洲第一台畅销的个人计算机。

5、1985年开发出了第一款商用的RISC(精简指令集)处理器(即ARM1),对于这块芯片,Acorn给它命名为Acorn RISC Machine(这就是大名鼎鼎的ARM三个字母的由来),并以此作为其未来个人计算机的中枢,当时大型的CPU开发公司用的处理器都是CISC(复杂指令集)。然而1985年10月,英特尔发布了80386。在80386面前,ARM1就只有被吊打的份了。(让ARM直接在性能上和x86系列硬杠,显然是不现实的。ARM有意无意地选择了与Intel不同的设计路线——Intel持续迈向x86高效能设计,ARM则专注于低成本、低功耗的研发方向,当然这就是ARM后来成功的一大原因)

6、在ARM1之后,Acorn陆续推出了好几个系列,例如ARM2,ARM3。

7、1990年Acorn公司出现财务危机,经过一系列的争论后接受苹果与VLSI的投资,并分割出子公司ARM(Advanced RISC Machines),ARM终于面世(苹果公司出资150万英镑,芯片厂商VLSI出资25万英镑,Acorn本身则以150万英镑的知识产权和12名工程师入股),当然几遍前期投入资金不菲,ARM的起步还是比较寒酸。他们最开始的办公地点,是一个谷仓。
在这里插入图片描述
8、ARM成立后的几年,内部商议决定改变他们的产品策略——他们不再生产芯片,转而以授权的方式,将芯片设计方案转让给其他公司,即“Partnership”开放模式(正是这种模式,开创了属于ARM的全新时代)。

5、20世纪90年代,ARM 将32位嵌入式RISC处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。(当然要了解ARM公司的商业模式:既不生产芯片也不销售芯片,它只出售芯片技术授权。等下会单独详细介绍)

6、1991年ARM推出了第一款嵌入式RISC处理器,ARM6,并将产品授权给英国GEC Plessey半导体公司。(“Partnership”开放模式后的尝试开始)PS一下:在93年苹果公司推出了一款新型掌上电脑产品——Newton。ARM公司开发的ARM6芯片就是被用于该产品之中。(苹果与ARM两大巨头屹立不倒,两者的合作也是起到了重要的作用呀)

7、1993年,发布ARM7,并将ARM产品授权给Cirrus Logic和德州仪器(Texas Instruments,TI)。与TI的合作,又是ARM公司的一大新开端,这给ARM公司带来了重要的突破。而且,也给ARM公司树立了声誉,证实了授权模式的可行性。此后,越来越多的公司参与到这种授权模式中,与ARM建立了合作关系。其中就包括三星、夏普等公司。在此基础上,ARM坚定了授权模式的决心,并着手设计更多性价比高的产品。
在这里插入图片描述
8、就在这几年ARM迎来了自己的黄金机遇——移动电话时代来临了。ARM首先迎来了一个大客户——诺基亚Nokia。当时,诺基亚被建议在即将推出的GSM手机上使用德州仪器的系统设计,而这个设计是基于ARM芯片的。因为内存空间的问题,诺基亚一开始对ARM是拒绝的。为此,ARM专门开发出16位的定制指令集,缩减了占用的内存空间。就这样,诺基亚6110成为了第一部采用ARM处理器的GSM手机,上市后获得了极大的成功。(遇到问题解决问题,一切都不是问题)ARM后来又跟着推出了ARM7等一系列芯片,授权给超过165家公司。随着移动手机的井喷式普及,ARM赚得盆满钵满,不亦乐乎。

8、1997年,ARM公司在CPU研发方面再次取得了新的突破,更进一步推动了ARM时代的到来,发布ARM9TDMI。
在这里插入图片描述
9、1998年诺基亚基于ARM设计的畅销帮助它成了全世界最大的手机生产商。并在这一年4月17日,业务飞速发展的ARM控股公司,同时在伦敦证交所和纳斯达克上市。在ARM公司上市之后,处于后乔布斯时代的苹果公司,逐步卖掉了所持有的ARM股票,把资金投入到ipod产品的开发上鉴于苹果研究人员对ARM芯片架构非常熟悉,ipod也继续使用了ARM芯片。(散买卖不散交情,股票卖了,感情还在那里,两个巨头之间的暧昧关系依然保持着)
在这里插入图片描述
10、再后来ARM一路开挂,一步一步迈向属于自己的未来:
1999年,发布ARM9E
2001年,发布ARMv6架构
2002年,发布ARM11微架构
2004年,发布ARMv7架构的Cortex系列处理器,同时推出Cortex-M3
2005年,发布Cortex-A8处理器
2007年,发布Cortex-M1和Cortex-A9
2009年,实现Cortex-A9、发布Cortex-M0 (注意:Cortex-M0 比 Cortex-M3 后面推出)
2010年,推出Cortex-M4、成立Linaro,推出Cortex-A15 MPcore高性能处理器
2011年,推出Cortex-A7,ARMv8发布
2012年,开始64位处理器进程

11、目光回到2008年,谷歌推出了Android(安卓)系统,也是基于ARM指令集。(这点对我们嵌入式开发来说重中之重),智能手机进入了飞速发展阶段,ARM也因此奠定了在智能手机市场的霸主地位。同年,ARM芯片的出货量达到了一百亿颗。

12、2010年6月中,苹果公司向ARM董事会表示有意以85亿美元的价格收购ARM公司,但遭到ARM董事会的拒绝。

13、2011年巨头微软公司正式宣布,下一版的Windows也将正式支持ARM处理器。这是计算机工业发展历史上的一件大事,标识着x86处理器的主导地位发生动摇(想必英特尔一定是连肠子都悔青了)。其实,正是英特尔一步一步将ARM送上了如今无法取代的位置。90年代,高通想和英特尔合作,英特尔认为手机市场太小,拒绝了合作。后来,苹果的第一代iPhone一开始也想和英特尔合作,英特尔还是以相同的理由拒绝了。结果,移动设备市场被英特尔拱手让人,现在想追也追不回来了。

14、2016年7月18日,曾经投资阿里巴巴的孙正义和他的日本软银集团,以320亿美元收购了ARM集团。至此,ARM成为软银集团旗下的全资子公司。(可见孙正义真的才是商业大圈的顶级幕后玩家,拥有着卓越的眼光)
在这里插入图片描述

(二)ARM的商业模式与生态系统

在这里插入图片描述
  先来看一下ARM之前的半导体圈是什么样的:在没有ARM之前,像Intel、AMD、Motorola、Zilog、VIA等公司,一向都是自己设计IC,自己生产芯片,自己销售产品,换句话说自给自足,这就出现了一个问题,那时候的大多数芯片在各个方面都是不兼容的,各用各的,代码、硬件、CPU一个公司一个样,这在咱们现在的时代是不可想想的,所以ARM的出现是历史必然的选择。与Intel这些大公司不同,ARM公司自己不生产任何形式的处理器,主要是提供IP授权给半导体合作伙伴(高通、苹果、AMD及三星等),后者使用ARM的架构、设计以及开发工具推出自己的处理器,然后再供应给OEM客户(各种手机、平板厂商就是这样的)。
  ARM的收入就源于这个循环,合作伙伴购买ARM的IP授权需要交技术授权费(license fee),还会根据厂商的处理器价格抽取一定的版税(ongoing royalTIes,也可以说是提成、特许费之类的),这可能涉及芯片的各个环节。 简单来说,ARM的商业模型就是“你交钱,我授权”,对处理器设计研发是“包教包会”,会提供一系列工具帮助客户简化开发。
  那么ARM如何收益呢?Intel、AMD和NVIDIA都是靠出售处理器过日子的,ARM不出售任何处理器,靠的主要是技术授权费和版税提成,厂商都要交这两笔费用,这二者在不同的处理器架构中的比例也不同。

二、ARM的各种版本号

ARM各个版本:

总体来看ARM分为以下八个版本:
在这里插入图片描述

V1版架构

  该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。其基本性能有:
  1、基本的数据处理指令(无乘法);
  2、基于字节、半字和字的Load/Store指令;
  3、转移指令,包括子程序调用及链接指令;
  4、供操作系统使用的软件中断指令SWI;
  5、寻址空间:64MB(226)。

V2版架构

  该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。 版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。V2版架构与版本V1相比,增加了以下功能:
  1、乘法和乘加指令;
  2、支持协处理器操作指令;
  3、快速中断模式;
  4、SWP/SWPB的最基本存储器与寄存器交换指令;
  5、寻址空间:64MB。

V3版架构

  ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6。它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。 变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。 V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动:
  1、寻址空间增至32位(4GB);
  2、当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register);
  3、增加了程序状态保存寄存器SPSR(Saved Program Status Register);
  4、增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预- - 取中止异常和未定义指令异常。;
  5、增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;
  6、增加了从异常处理返回的指令功能。

V4版架构

  V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。 V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。指令集中增加了以下功能:
  1、符号化和非符号化半字及符号化字节的存/取指令;
  2、增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;
  3、完善了软件中断SWI指令的功能;
  4、处理器系统模式引进特权方式时使用用户寄存器操作;
  5、把一些未使用的指令空间捕获为未定义指令

V5版架构

  V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。这些新增命令有:
  1、带有链接和交换的转移BLX指令;
  2、计数前导零CLZ指令; BRK中断指令;
  3、增加了数字信号处理指令(V5TE版);
  4、为协处理器增加更多可选择的指令;
  5、改进了ARM/Thumb状态之间的切换效率;
  6、E—增强型DSP指令集,包括全部算法操作和16位乘法操作;
  7、J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。

V6版架构

  V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD(Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。此架构在V5版基础上增加了以下功能:
  1、THUMBTM:35%代码压缩;
  2、DSP扩充:高性能定点DSP功能;
  3、JazelleTM:Java性能优化,可提高8倍;
  4、Media扩充:音/视频性能优化,可提高4倍

V7版架构

  V7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的, 并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。
  ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。此外,ARMv7还支持改良的运行环境,以迎合不断增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技术的使用。

V8版架构

  v8架构是在32位ARM架构上进行开发的,将被首先用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。ARMv8架构包含两个执行状态:AArch64和AArch32。AArch64执行状态针对64位处理技术,引入了一个全新指令集A64;而AArch32执行状态将支持现有的ARM指令集。目前的ARMv7架构的主要特性都将在ARMv8架构中得以保留或进一步拓展,如:TrustZone技术、虚拟化技术及NEON advanced SIMD技术等。
在这里插入图片描述
1.ARM7处理器
  ARM7处理器采用了ARMV4T(冯·诺依曼)体系结构,这种体系结构将程序指令存储器和数据存储器合并在 一起。主要特点就是程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序指令和 数据的宽度相同。这样,处理器在执行指令时,必须先从存储器中取出指令进行译码,再取操作数执行运算。
  总体来说ARM7体系结构具有三级流水、空间统一的 指令与数据Cache、平均功耗为0.6mW/MHz、时钟速度为66MHz、每条指令平均执行1.9个时钟周期等特性。其中的ARM710、ARM720和ARM740为内带Cache的ARM核。
  ARM7指令集同Thumb指令集扩展组合在一起,可以减少内存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。ARM7体系结构是小型、快速、低能耗、集成式的RISC内核结构。该产品的典型用途是数字蜂窝电话和硬盘驱动器等,目前主流的ARM7内核是ARM7TDMI、ARM7TDMI-S、ARM7EJ-S、ARM720T。
  现在市场上 用得最多的ARM7处理器有Samsung公司的S3C44BOX与S3C4510处理器、Atmel公司的AT91FR40162系列处理器、Cirrus公司的EP73xx系列等。通常来说前两三年大部分手机基带部分的应用处理器基本上都以ARM7为主。还有很多的通信模块,如CDMA模块、GPRS模块和GPS模块中都含有ARM7处理器。
2.ARM9、ARM9E处理器
  ARM9处理器采用ARMV4T(哈佛)体系结构。这种体系结构是一种将程序指令存储和数据存储分开的存储器 结构,是一种并行体系结构。其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器。它们是两个相互独立的存储器,每个存储器独立编 址、独立访问。与两个存储器相对应的是系统中的4套总线,程序的数据总线和地址总线,数据的数据总线和地址总线。这种分离的程序总线和数据总线可允许在一 个机器周期内同时获取指令字和操作数,从而提高了执行速度,使数据的吞吐量提高了一倍。又由于程序和数据存储器在两个分开的物理空间中,因而取指和执行能 完全重叠。
  ARM9采用五级流水处理及分离的Cache结构,平均功耗为0.7mW/MHz。时钟速度为120MHz~200MHz,每条指令平均执行1.5个时钟周期。与ARM7处理器系列相似,其中的ARM920、ARM940和ARM9E处理器均为含有Cache的CPU核,性能为132MIPS(120MHz时钟,3.3V供电)或220MIPS(200MHz时钟)。
  ARM9处理器同时也配备Thumb指令扩展、调试和Harvard总线。在生产工艺相同的情况下,性能是ARM7TDMI处理器的两倍之多。常用于无线设备、仪器仪表、联网设备、机顶盒设备、高端打印机及 数码相机应用中。
  ARM9E内核是在ARM9内核的基础上增加了紧密耦合存储器TCM及DSP部分。目前主流的ARM9内核是ARM920T、ARM922T、ARM940。相关的处理器芯片有Samsung公司的S3C2510、Cirrus公司的EP93xx系列等。主流的ARM9E内核是ARM926EJ-S、ARM946E-S、ARM966E-S等。目前市场上常见的PDA,比如说PocketPC中一般都是用ARM9处理器,其中以Samsung公司的S3C2410处理器居多。
3.ARM10E处理器
  ARM10E处理器采用ARMVST体系结构,可以分为六级流水处理,采用指令与数据分离的Cache结构, 平均功耗1000mW,时钟速度为300MHz,每条指令平均执行1.2个时钟周期。ARM10TDMI与所有ARM核在二进制级代码中兼容,内带高速32×16 MAC,预留DSP协处理器接口。其中的VFP10(向量浮点单元)为七级流水结构。其中的ARM1020T处理器则是由ARMl0TDMI、32KB指 令、数据Caches及MMU部分构成的。其系统时钟高达300MHz时钟,指令Cache和数据Cache分别为32KB,数据宽度为64位,能够支持 多种商用操作系统,适用于下一代高性能手持式因特网设备及数字式消费类应用。主流的ARM10内核是ARM1020E、ARM1022E、ARM1026EJ-S等。
4.SecurCore处理器
  SecurCore系列处理器提供了基于高性能的32位RISC技术的安全解决方案,该系列处理器具有体积 小、功耗低、代码密度大和性能高等特点。另外最为特别的就是该系列处理器提供了安全解决方案的支持。采用软内核技术,以提供最大限度的灵活性,以及防止外 部对其进行扫描探测,提供面向智能卡的和低成本的存储保护单元MPU,可以灵活地集成用户自己的安全特性和其他的协处理器,目前含有SC100、SC110、SC200、SC210 4种产品。
5.StrongARM处理器
  StrongARM处理器采用ARMV4T的五级流水体系结构。目前有SA110、SA1100、SA1110等3个版本。另外Intel公司的基于ARMv5TE体系结构的XScale PXA27x系列处理器,与StrongARM相比增加了I/D Cache,并且加入了部分DSP功能,更适合于移动多媒体应用。目前市场上的大部分智能手机的核心处理器就是XScale系列处理器。
6.ARM11处理器
  ARM11系列微处理器是ARM公司近年推出的新一代RISC处理器,它是ARM新指令架构——ARMv6的第一代设计实现。该系列主要有ARM1136J,ARM1156T2和ARM1176JZ三个内核型号,分别针对不同应用领域。
  ARM11处理器系列可以在使用130nm代工厂技术、小至2.2mm2芯片面积和低 至0.24mW/MHz的前提下达到高达500MHz的性能表现。ARM11处理器系列以众多消费产品市场为目标,推出了许多新的技术,包括针对媒体处理 的SIMD,用以提高安全性能的TrustZone技术,智能能源管理(IEM),以及需要非常高的、可升级的超过2600 Dhrystone 2.1 MIPS性能的系统多处理技术。主要的ARM11处理器有ARM1136JF-S、ARM1156T2F-S、ARM1176JZF-S、ARM11 MCORE等多种。
7.Cortex系列处理器
  ARM Cortex-M系列支持Thumb-2指令集(Thumb指令集的扩展集),可以执行所有已存的为早期处理器编写的代码。通过一个前向的转换方式, 为ARM Cortex-M系列处理器所写的用户代码可以与ARM Cortex-R系列微处理器完全兼容。
  ARMCortex-M系列系统代码(如实时操作系统)可以很容易地移植到基于ARM Cortex-R系列的系统上。ARMCortex-A和Cortex-R系列处理器还支持ARM 32位指令集,向后完全兼容早期的ARM处理器,包括从1995年发布的ARM7TDMI处理器到2002年发布的ARMll处理器系列。

最后:

  ARM在低功耗方面发展方向,刚好赶上了移动设备爆发式发展的时代,最终造就了它的辉煌。ARM公司的高性能、低耗能的RISC微处理器目前占据了手机处理器90%的市场份额,平板电脑处理器80%的市场份额,上网本处理器30%的市场份额。
  ARM成为主流,恐怕指日可待。难怪有人惊呼,Intel公司将被击败!ARM微处理器核技术广泛应用于便携式通信产品、手持运算、多媒体和嵌入式解决方案等领域,已成为RISC的标准。

结束语:

  文章是作者从各个网络平台上搜集资料加载自己对ARM的理解汇聚而成,其中ARM发展史参考自ZEM&博客园,ARM版本号的描述参考自韦东山老师的微博,如果你看完觉的有一点点的收获,麻烦朋友可以为我点个赞,已让更过的朋友可以看到。有问题可以在评论区评论,我懂的地方会单独做些文章来解释,或者直接在评论区恢复,希望各路朋友多多支持,身为一个刚刚接触嵌入式软件学习不久的小白,希望能通过这个平台寻找更多志同道合的朋友前辈。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值