• 浅析arm历史和交叉编译链选择

    浅析arm历史和交叉编译链选择

    众所周知ARM的设计是艾康计算机公司于1983年开始的开发项目。这个团队由RogerWilson和SteveFurber带领,着手开发一种类似高级6502架构的处理器。Acorn计算机有一大堆建构在6502处理器上的计算机,因此能设计出一颗类似的芯片即意味着对公司有很大的优势。 AcornRISCMachine:ARM2 用在BBCMicro上的ARM1secondprocessor 团队在1985年时开发出样本“ARM1”,而首颗真正能量产的“ARM2”于次年投产。ARM2具有32位的数据总线、26位的定址空间,并提供64Mbyte的定址范围与16个32-bit的寄存器。寄存器中有一个作为程序计数器,其前面6位和后面2位用来保存处理器状态标记。ARM2可能是全世界最简单实用的32位微处理器,仅容纳了30,000个晶体管(六年后的摩托罗拉68000包含了70,000颗)。之所以精简的原因在于它不含微码(这大概占了68000的晶体管数约1/4至1/3);而且与当时大多数的处理器相同,它没有包含任何的高速缓存。这个精简的特色使它只需消耗很少的电能,却能发挥比Intel80286更好的性能[10]。后继的处理器“ARM3”则备有4KB的高速缓存,使它能发挥更佳的性能。 Apple、DEC、Intel、Marvell:ARM6、StrongARM、XScale[编辑] 在1980年代晚期,苹果计算机开始与艾康计算机合作开发新版的ARM核心。由于这项目非常重要,艾康计算机甚至于1990年将设计团队另组成一间名为安谋国际科技(AdvancedRISCMachinesLtd.)的新公司。也基于这原因,使得ARM有时候反而称作AdvancedRISCMachine而不是AcornRISCMachine。由于其母公司ARMHoldingsplc于1998年在伦敦证券交易所和NASDAQ挂牌上市[11],使得AdvancedRISCMachines成了ARMLtd旗下拥有的产品[12]。 这个项目到后来进入“ARM6”,首版的样品在1991年发布,然后苹果计算机使用ARM6架构的ARM610来当作他们AppleNewton产品的处理器。在1994年,艾康计算机使用ARM610做为他们个人计算机产品的处理器。 在这些变革之后,内核部分却大多维持一样的大小——ARM2有30,000颗晶体管,但ARM6却也只增长到35,000颗。主要概念是以ODM的方式,使ARM核心能搭配一些选配的零件而制成一颗完整的CPU,而且可在现有的晶圆厂里制作并以低成本的方式达到很大的性能。 ARM的经营模式在于出售其IP核,授权厂家依照设计制作出建构于此核的微控制器和中央处理器。最成功的实现案例属ARM7TDMI,几乎卖出了数亿套内置微控制器的设备。 Digital曾购买这个架构的产权并研发出“StrongARM”。在233MHz的频率下,这颗CPU只消耗1瓦特的电能(后来的芯片消耗得更少)。这项设计后来为了和英特尔的控诉和解而技术移转,英特尔因而利用StrongARM架构补强他们老旧的i960产品。英特尔后来开发出他们自有的高性能架构产品XScale,之后卖给了迈威尔科技。 支持智能手机、个人数码助理和其他手持设备最常见的架构是“ARMv4”。XScale和ARM926处理器是“ARMv5TE”,而且比起建构在ARMv4的StrongARM、ARM925T和ARM7TDMI等处理器还更常见于许多高端设备上[来源请求]。 内核种类 ARMv1ARM1 ARMv2ARM2、ARM3 ARMv3ARM6、ARM7 ARMv4StrongARM、ARM7TDMI、ARM9TDMI ARMv5ARM7EJ、ARM9E、ARM10E、XScale ARMv6ARM11、ARMCortex-M ARMv7ARMCortex-A、ARMCortex-M、ARMCortex-R ARMv8(A)Cortex-A35、Cortex-A50系列[13]、Cortex-A72、Cortex-A73、Cortex-A75、Cortex-A76 架构 从1995年开始,《ARM体系结构参考手册》是ARM文档的主要来源,提供了关于ARM处理器架构和指令集,区分接口,所有的ARM处理器的支持(如指令语义)的实现细节可能会有所不同。该体系结构随着时间的演变,并与Cortex系列的核心开始,存在三个“配置”的定义如下: "应用"配置:Cortex-A系列 "嵌入式"配置:Cortex-R系列 "微处理器"配置:ARMCortex-M系列。 每个配置允许有其子集的架构。 CPU模式 CPUARM架构指定了以下的CPU模式。在任何时刻,CPU只可处于某一种模式,但可由于外部事件(中断)或编程方式进行模式切换。 用户模式仅非特权模式。 系统模式仅无需例外进入的特权模式。仅以执行明确写入CPSR的模式位的指令进入。Supervisor(svc)模式在CPU被重置或者SWI指令被执行时进入的特权模式。 Abort模式预读取中断或数据中断异常发生时进入的特权模式。 未定义模式未定义指令异常发生时进入的特权模式。 干预模式处理器接受一条IRQ干预时进入的特权模式。 快速干预模式处理器接受一条IRQ干预时进入的特权模式。 Hyp模式armv-7a为cortex-A15处理器提供硬件虚拟化引进的管理模式。 最新的armv8Aarm64与aarch64 在找交叉编译链过程中被这三个困惑好久,在选择之前一定要先搞明白这三者的关系 ARM在2007年已着手设计工作,并于2011年11月公报ARMv8A64bit指令集架构,耗用了4年的研发时间。 ARMv8A分为A64及A32两个部分,A64顾名思义属于64bit的部份,主要存在于AARCH64的状态。而A32又称AARCH32状态,用作支持现有A32ARM指令集。ARM并没有采用AMDx86-64及IntelEM64T扩充32bit指令做法,而是选择全新开发专用的64bit指令。据ARM方面表示,这一做法与省电的考虑有关,当运行64biTISA时,ARMv7电路可处于闲置状态,节省功耗。同A64ISA也移除了作用不大的LDM/STM(load/storemulTIple)指令,改为LD/ST’P’指令,以降低复杂性及功耗,与此同时,32bit到64bit状态转换采用Inter-processing的做法,确保32bit到64bit指令皆可顺利执行。 armv8A架构又细分为armv8.2a、armv8.3a、armv8.4a、armv8.5a。 在今年的Computex上arm公布了2018年的Cortex-A旗舰CPU,Cortex-A76.这个CPU的微构架做了彻底的重新设计,它重点提高了峰值性能,同时良好地保持了性能功耗比。Cortex-A76将armCPU的性能推上了一个新高度。Cortex-A76还是armv8.2-a构架实现,与现有的处理兼容,还是使用DSU技术,到时微构架的重新设计使得它比Cortex-A75平均有35%的性能提升,且有40%的能耗比提升。对浮点数和机器学习运算任务提升最大。麒麟980用的性能核心就是公版Cortex-A76. Cortex-A76是第一个开始逐渐去除32bit支持的CPU。A76还是支持aarch32,但是只是在最低特权级的EL0支持,而aarch64在EL0-EL3都支持-从OS到底层的固件。在将来某个时候,arm非常有可能完全只支持64bit,这取决于arm生态系统的发展。 arm授权方式 ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架构授权给有兴趣的厂家。ARM提供了多样的授权条款,包括售价与散播性等项目。对于授权方来说,ARM提供了ARM内核的集成硬件叙述,包含完整的软件开发工具(编译器、debugger、SDK),以及针对内含ARMCPU硅芯片的销售权。对于无晶圆厂的授权方来说,其希望能将ARM内核集成到他们自行研发的芯片设计中,通常就仅针对获取一份生产就绪的智财核心技术(IPCore)认证。 许多半导体公司持有ARM授权:Atmel、Broadcom、CirrusLogic、Freescale(于2004从摩托罗拉公司独立出来)、富士通、英特尔(借由和Digital的控诉调停)、IBM、NVIDIA、台湾新唐科技(NuvotonTechnology)、英飞凌、任天堂、恩智浦半导体(于2006年从飞利浦独立出来)、OKI电气工业、三星电子、Sharp、STMicroelectronics、德州仪器和VLSI等许多这些公司均拥有各个不同形式的ARM授权。虽然ARM的授权项目由保密合约所涵盖,在知识产权工业,ARM是广为人知最昂贵的CPU内核之一。单一的客户产品包含一个基本的ARM内核可能就需索取一次高达美金20万的授权费用。而若是牵涉到大量架构上修改,则费用就可能超过千万美元。 交叉编译链选择 以上都是废话,重点关注armv8a即可。armv8a分为aarch32与aarch64两种模式。因此在选择交叉编译链时一定要确定自己运行的arm设备是什么架构,什么模式。 从授权上,交叉编译链分为免费授权版和付费授权版。 免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译制作),第二是Codesourcery,第三是Linora。 收费版有ARM原厂提供的armcc、IAR提供的编译器等等,因为这些价格都比较昂贵,不适合学习用户使用,所以不做讲述。 arm-none-linux-gnueabi-gcc:是Codesourcery公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linuxkernel、filesystem和App应用程序。 arm-linux-gnueabihf-gcc:是由Linaro公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linuxkernel、filesystem和App应用程序。 aarch64-linux-gnu-gcc:是由Linaro公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARMv864位目标中的裸机程序、u-boot、Linuxkernel、filesystem和App应用程序。 arm-none-elf-gcc:是Codesourcery公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARMMCU(32位)芯片,如ARM7、ARM9、Cortex-M/R芯片程序。 arm-none-eabi-gcc:是GNU推出的的ARM交叉编译工具。可用于交叉编译ARMMCU(32位)芯片,如ARM7、ARM9、Cortex-M/R芯片程序。 命名规则 交叉编译工具链的命名规则为:arch[-vendor][-os][-(gnu)eabi] arch–体系架构,如ARM,MIPS(通过交叉编译工具生成的可执行文件或系统镜像的运行平台或环境) vendor–工具链提供商 os–目标操作系统(host主要操作平台,也就是编译时的系统) eabi–嵌入式应用二进制接口(EmbeddedApplicaTIonBinaryInterface) 根据对操作系统的支持与否,ARMGCC可分为支持和不支持操作系统,如 arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌入式系统的C库。 arm-none-linux-eabi:用于Linux的,使用Glibc linaro交叉编译链简介 以下面的链接为例,分析下各个文件的作用。http://releases.linaro.org/components/toolchain/binaries/5.5-2017.10/aarch64-linux-gnu/。该目录下面列出了一些列的交叉编译工具: gcc-linaro-5.5.0-2017.10-i686-mingw32_aarch64-linux-gnu.tar.xz27-Feb-201800:17234.0Mopen 运行在32位x86windows主机的aarch64支持linux系统的交叉编译链。 gcc-linaro-5.5.0-2017.10-i686_aarch64-linux-gnu.tar.xz27-Feb-201800:1789.0Mopen 运行在32位x86linux主机的aarch64位支持linux系统的交叉编译链。 gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz27-Feb-201800:1789.9Mopen 运行在64位linux主机的aarch64位支持linux系统的交叉编译链。这个正是我要找的交叉编译链。 runTIme-gcc-linaro-5.5.0-2017.10-aarch64-linux-gnu.tar.xz28-Jan-201817:326.2Mopen runtime-gcc-linaro-5.5.0-2017.10-aarch64-linux-gnu.tar.xz.asc28-Jan-201817:3292open sysroot-glibc-linaro-2.21-2017.10-aarch64-linux-gnu.tar.xz27-Feb-201800:1833.6Mopen sysroot-glibc-linaro-2.21-2017.10-aarch64-linux-gnu.tar.xz.asc 这个runtime以及sysroot-glibc暂时不确定是做什么用的。 再补充点交叉编译链的东西: 实例 1、arm-none-eabi-gcc (ARMarchitecture,novendor,nottargetanoperatingsystem,complieswiththeARMEABI) 用于编译ARM架构的裸机系统(包括ARMLinux的boot、kernel,不适用编译Linux应用Application),一般适合ARM7、Cortex-M和Cortex-R内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是newlib这个专用于嵌入式系统的C库。 2、arm-none-linux-gnueabi-gcc (ARMarchitecture,novendor,createsbinariesthatrunontheLinuxoperatingsystem,andusestheGNUEABI) 主要用于基于ARM架构的Linux系统,可用于编译ARM架构的u-boot、Linux内核、linux应用等。arm-none-linux-gnueabi基于GCC,使用Glibc库,经过Codesourcery公司优化过推出的编译器。arm-none-linux-gnueabi-xxx交叉编译工具的浮点运算非常优秀。一般ARM9、ARM11、Cortex-A内核,带有Linux操作系统的会用到。 3、arm-eabi-gcc AndroidARM编译器。 4、armcc ARM公司推出的编译工具,功能和arm-none-eabi类似,可以编译裸机程序(u-boot、kernel),但是不能编译Linux应用程序。armcc一般和ARM开发工具一起,KeilMDK、ADS、RVDS和DS-5中的编译器都是armcc,所以armcc编译器都是收费的(爱国版除外,呵呵~~)。 5、arm-none-uclinuxeabi-gcc和arm-none-symbianelf-gcc arm-none-uclinuxeabi用于uCLinux,使用Glibc。 arm-none-symbianelf用于symbian,没用过,不知道C库是什么。 Codesourcery Codesourcery推出的产品叫SourceryG++LiteEdition,其中基于command-line的编译器是免费的,在官网上可以下载,而其中包含的IDE和debug工具是收费的,当然也有30天试用版本的。 目前CodeSourcery已经由明导国际(MentorGraphics)收购,所以原本的网站风格已经全部变为Mentor样式,但是SourceryG++LiteEdition同样可以注册后免费下载。 Codesourcery一直是在做ARM目标GCC的开发和优化,它的ARMGCC在目前在市场上非常优秀,很多patch可能还没被gcc接受,所以还是应该直接用它的(而且他提供Windows下[mingw交叉编译的]和Linux下的二进制版本,比较方便;如果不是很有时间和兴趣,不建议下载src源码包自己编译,很麻烦,Codesourcery给的shell脚本很多时候根本没办法直接用,得自行提取关键的部分手工执行,又费精力又费时间,如果想知道细节,其实不用自己编译一遍,看看他是用什么步骤构建的即可,如果你对交叉编译器感兴趣的话。 ABI和EABI ABI:二进制应用程序接口(ApplicationBinaryInterface(ABI)fortheARMArchitecture)。在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口。 EABI:嵌入式ABI。嵌入式应用二进制接口指定了文件格式、数据类型、寄存器使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定。开发者使用自己的汇编语言也可以使用EABI作为与兼容的编译器生成的汇编语言的接口。 两者主要区别是,ABI是计算机上的,EABI是嵌入式平台上(如ARM,MIPS等)。 arm-linux-gnueabi-gcc和arm-linux-gnueabihf-gcc 两个交叉编译器分别适用于armel和armhf两个不同的架构,armel和armhf这两种架构在对待浮点运算采取了不同的策略(有fpu的arm才能支持这两种浮点运算策略)。 其实这两个交叉编译器只不过是gcc的选项-mfloat-abi的默认值不同。gcc的选项-mfloat-abi有三种值soft、softfp、hard(其中后两者都要求arm里有fpu浮点运算单元,soft与后两者是兼容的,但softfp和hard两种模式互不兼容): soft:不用fpu进行浮点计算,即使有fpu浮点运算单元也不用,而是使用软件模式。 softfp:armel架构(对应的编译器为arm-linux-gnueabi-gcc)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。 hard:armhf架构(对应的编译器arm-linux-gnueabihf-gcc)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换,性能最好,但是中断负荷高。 把以下测试使用的C文件内容保存成mfloat.c: #include intmain(void) { doublea,b,c; a=23.543; b=323.234; c=b/a; printf(“the13/2=%f\n”,c); printf(“helloworld!\n”); return0; } 1、使用arm-linux-gnueabihf-gcc编译,使用“-v”选项以获取更详细的信息: arm-linux-gnueabihf-gcc-vmfloat.c COLLECT_GCC_OPTIONS=’-v’‘-march=armv7-a’‘-mfloat-abi=hard’‘-mfpu=vfpv3-d16′‘-mthumb’-mfloat-abi=hard 可看出使用hard硬件浮点模式。 2、使用arm-linux-gnueabi-gcc编译: arm-linux-gnueabi-gcc-vmfloat.c COLLECT_GCC_OPTIONS=’-v’‘-march=armv7-a’‘-mfloat-abi=softfp’‘-mfpu=vfpv3-d16′‘-mthumb’-mfloat-abi=softfp 可看出使用softfp模式。

    时间:2020-10-22 关键词: ARM 交叉编译链

  • 唯一5nm 5G SoC、150亿晶体管举世无双!麒麟9000震撼来袭!

    唯一5nm 5G SoC、150亿晶体管举世无双!麒麟9000震撼来袭!

    终于来了!Mate 40系列来了,麒麟9000也终于来了! 这是全球第一颗、也是唯一一颗5nm工艺制造的5G SoC,集成多达153亿个晶体管,首次突破150亿大关,是目前晶体管最多、功能最完整的5G SoC。 CPU部分为八核心,包括一个3.13GHz A77大核心、三个2.54GHz A77中核心、四个2.04GHz A55小核心,略微超过骁龙865 Plus 3.1GHz,是目前频率最高的手机处理器。 同时集成24核心的Mali-G78 GPU,世界第一次,架构超过麒麟990 Mali-G76,核心数也多了一半,性能提升60%。 AI方面集成两个大核、一个微核的NPU,性能提升100%,还有四核心ISP。 5G方面业界首创四网协同技术,可将Wi-Fi 2.4GHz、Wi-Fi 5Ghz、主卡5G、副卡4G进行高效融合,在多变的网络条件下带来聚合高网速、稳定低时延,实现网络优选或并发下载。 安全方面,麒麟9000芯片是全球首个通过国际CC EAL5+的移动终端芯片,HarmonyOS微内核则获得了商用OS内核最高安全认证等级——国际信息技术安全评估标准CC EAL5+认证,还通过了移动金融芯片和载体认证(国内)、国际FIDO身份验证标准、ePrivacyseal等国际权威安全隐私认证。 另外还有一颗“麒麟9000E”,GPU核心数降至22个,其他变化暂时不详。具体还等官方消息。

    时间:2020-10-22 关键词: SoC 麒麟9000

  • 突破!Arm通过64位计算,突破移动终端的性能与安全局限

    突破!Arm通过64位计算,突破移动终端的性能与安全局限

    2020年10月份,为了推动移动创新的进一步发展,Arm近日宣布从2022年开始,所有面向市场的Cortex-A大核都将仅支持64位。这项计划作为Arm专注于“全面计算(TotalCompute)”的一部分,旨在突破计算性能、安全性和优化开发者的资源访问,以打造最引人入胜和沉浸式的应用程序。 如果你熟悉 Markdown 和终端,使用 Present 对你来说并不困难。 你不能把它和常规的用 Impress、MS Office 等制作的幻灯片相比,但偶尔使用,它是一个很酷的工具。如果你是计算机科学/网络专业的学生,或者是开发人员或系统管理员,你的同事一定会觉得很有趣。 系统级芯片设计的变革方法 Arm在去年推出“全面计算”,目的是通过改进设计方法,以超越原始CPU的性能,并采用更全面的方式,可以根据实际用例分析改变系统设计,进而满足由移动驱动的新现实需求。这个方法确认了通过超越内核和技术的界限,并将整个系统视为一个有机整体,突破性的性能是可以被实现的。 “全面计算”战略的三个关键原则分别是:提高系统的计算性能,通过Arm的软件和工具确保开发者更好地取用该性能,以及贯通整个生态系统的安全保护。这三个原则中的任意一条对于Arm的未来计算愿景都至关重要,而这个计算愿景就是通过新的功能,解锁创新,实现最高水平的创造力,进而扩展开发者的无限可能。其中,将应用程序迁移到64位是实现这一未来愿景的重要组成部分。 64位提供更快、更先进的移动体验的未来 如果开发者要因应消费者的需求打造出新的、复杂的数字化沉浸式体验,其应用程序则必须持续向64位迁移。64位指令集提供了性能的提升(在某些工作负载中提高了20%)以及硬件中的计算功能,让这些体验可以更快速、响应速度更及时。相比于32位处理器,64位CPU可以处理内存中更大的数据量,满足新的计算密集型工作负载的需求,例如未来的人工智能(AI)、XR(增强现实和虚拟现实)和高保真移动游戏等体验。 Arm终端事业部副总裁兼总经理PaulWilliamson表示:“通过向64位的迁移,开发者能够在应用程序上获取更好的安全性和性能,同时也能顺应移动设备预计从2023年起仅支持64位的趋势。从2022年开始,Arm推出的Cortex-A大核都将仅支持64位,为开发者设计和部署下一代用户体验节省成本并缩短上市时间。” 来自Arm合作伙伴的支持 目前中国国内市场计划或正在销售的仅支持32位的智能手机不到1%;换言之,现在国内市场上的绝大多数智能手机都是兼容64位。市场领先的手机制造商与应用商店也支持向64位迁移的计划。 OPPO表示:“64位架构是全球安卓生态系统的未来,能够在系统性能和安全方面带来更好的表现。我们支持移动终端向64位架构迁移的计划,并鼓励开发者尽快启动64位应用开发。这样,一方面可以确保整个生态系统为‘更高效率64位’设备的到来做好准备,另一方面开发者也能持续将其应用程序及时提供给用户。” 小米表示:“基于64位架构更高计算性能的沉浸式移动体验已经到来,并将持续引领未来。这样的体验需要整个生态系统的齐力合作。我们与Arm和其生态系统紧密携手,为中国开发者提供向64位迁移的必要支持,助力当今和未来的创新。” 对于游戏开发者来说,64位的优势尤为重要,它能为游戏应用提供更快的加载时间、更流畅的图形表现和更好的整体游戏体验。游戏引擎领导商Unity也支持64位的迁移。 Unity大中华区总裁张俊波表示:“中国Unity期待64位架构所带来的优化和性能。专注于单个指令集将使我们得以更有效地优化代码,进而大幅地帮助中国开发者及其应用程序。” 进一步推动性能和安全 Arm对64位的承诺也反映在其终端产品路线图的更新上,其产品路线图揭示下两代CPU,代号Matterhorn和Makalu。对比当前的Cortex-A78,这两款CPU性能提升高达30%,并引入了内存标签扩展(MemoryTaggingExtension,MTE)的新安全功能,用以加强内存子系统中可能出现的安全漏洞防范。 关于Arm在64位的资源 对于大多数开发者而言,迁移至64位应用程序的过程并不复杂。通过极术社区,中国开发者可以获取由Arm提供的相关转移资源。其中包括 详述有关64位优势的博客 详述开发者如何实现64位的迁移,并最大限度地提高其性能和安全性所需要采取的措施的白皮书 开发者还可以报名参加11月4-5日ArmDevSummit线上大会中国场,了解Arm在64位移动终端领域的更多资讯。

    时间:2020-10-22 关键词: 移动终端 ARM

  • 如何在Linux终端虚拟机中进行幻灯片展示,来看干货!

    如何在Linux终端虚拟机中进行幻灯片展示,来看干货!

    我们平常做很多的一项就是演示文稿,演示文稿往往是枯燥的。这就是为什么有些人会添加动画或漫画/meme 来增加一些幽默和风格来打破单调。 如果你需要在你的大学或公司的演示文稿中加入一些独特的风格,那么使用 Linux 终端怎么样?想象一下,这将是多么酷的事情啊! Present:Linux 终端中进行演示 在终端中可以做很多有趣好玩的事情。制作和展示幻灯片只是其中之一。 这个基于 Python 的应用名为 Present,它可以让你创建基于 Markdown 和 YML 的幻灯片,你可以在你的大学或公司里演讲,并以真正的极客风格取悦人们。 我制作了一个视频,展示了在 Linux 终端中用 Present 演示一些东西的样子。 Present 的功能 你可以用 Present 做以下事情: 使用 Markdown 语法在幻灯片中添加文本 用箭头或 PgUp/Down 键控制幻灯片 改变前景和背景颜色 在幻灯片中添加图像 增加代码块 播放模拟代码,并用 codio YML 文件输出 在 Linux 上安装 Present Present 是一个基于 Python 的工具,你可以使用 PIP 来安装它。你应该确保用这个命令在 Ubuntu 上安装 Pip: sudo apt install python3-pip 如果你使用的是其他发行版,请检查你的包管理器来安装 PIP3。 安装 PIP 后,你就可以以这种方式全局安装 Present: sudo pip3 install present 你也可以只为当前用户安装,但你也必须将 ~/.local/bin 添加到你的 PATH 环境变量。 在 Linux 终端中使用 Present 来创建和展示幻灯片 由于 Present 使用了 Markdown 语法,你应该用它来创建自己的幻灯片。在这里使用 Markdown 编辑器会有帮助。 Present 需要一个 Markdown 文件来读取和播放幻灯片。你可以下载这个示例幻灯片,但你需要单独下载嵌入的图像,并将它放在图像文件夹内。 在 Markdown 文件中使用 — 来分隔幻灯片。 使用 Markdown 语法在幻灯片中添加文本。 使用以下语法添加图片 ![RC] (images/name.png)。 通过添加像 《!– fg=white bg=red –》 这样的语法来改变幻灯片的颜色。 使用像 《!– effect=fireworks –》 这样的语法来添加带有效果的幻灯片。 使用 codio 语法 添加代码运行模拟。 使用 q 退出演示,并用左/右箭头或 PgUp/Down 键控制幻灯片。 请记住,在演示时调整终端窗口的大小会把东西搞乱,按回车键也是如此。 总结 如果你熟悉 Markdown 和终端,使用 Present 对你来说并不困难。 你不能把它和常规的用 Impress、MS Office 等制作的幻灯片相比,但偶尔使用,它是一个很酷的工具。如果你是计算机科学/网络专业的学生,或者是开发人员或系统管理员,你的同事一定会觉得很有趣。

    时间:2020-10-22 关键词: Linux 终端虚拟机

  • 浅谈单片机的嵌入式系统加密算法的分类

    浅谈单片机的嵌入式系统加密算法的分类

    在现代社会中,信息安全所占据的地位越来越重要。但不幸的是,信息安全问题[1]正变得越来越突出。加密算法是解决上述问题的有效方法。除了消息传输的接收者之外,即使外界非法拦截密文,它也只会产生一些无意义的乱码。有许多类型的加密算法,它们适应的地方通常是不同的。在单片机和嵌入式系统中,信息的传输非常频繁,甚至没有很多机密信息。因此,信息传输的安全性变得越来越重要。 一、单片机加密的必要性 自单片机诞生以来,由于其成本低,环境适应性强,可靠性高,结构灵活,易于生产,引起了人们的广泛关注。凭借其卓越的性能,它已广泛应用于各种行业,如机器人,航空航天,仪器仪表,工业和电信。单片机的普及也对促进各个领域的技术改造起到了很好的作用。然而,在通过MCU传输信息的过程中,它经常遭受非法入侵者的各种攻击,例如伪造,篡改和盗版。但无论你攻击哪种方式,这无疑会在各个方面给用户造成无法估量的损失。在信息传输中,发送信息的一方称为发送方,信息发送的预定目标称为接收方。然而,在实际传输过程中,除了接收者之外,还有一些未知的非法拦截器将通过诸如窃听之类的各种手段获得传输的信息。更重要的是,他们会篡改,伪造,然后将收到的信息传送给收件人。如果信息被归类为机密信息,则由此产生的损失是不可想象的。因此,在发送信息之前处理该信息。要传输的信息称为明文,明文通过一组规则转换的信息称为密文。密文本是随机的,无序的,看似毫无意义的信息,所以即使密文是由拦截器获得的,也不需要担心信息泄露。当接收到密文时,需要恢复明文,并将密文恢复规则称为解密算法。通常,加密和解密算法需要一对密钥,它们可以相同或不同,并且这两种情况对应于两个不同的密码系统。 二、单片机的嵌入式系统加密算法分类 随着微型计算机的快速发展,微控制器和嵌入式系统已经渗透到人们的日常生活中。但微型计算机的信息安全问题引起了人们的担忧,在信息传递的过程中,经常会受到非法入侵者的攻击,导致信息被截取、篡改甚至伪造,从而造成巨大的损失。加密算法是保障信息安全的有效措施之一,而且加密算法还具有良好的可修改性和移植性,有关加密算法的研究及应用是极其广泛的。现代加密算法主要分为4大类:对称式加密算法、非对称式加密算法、Hash算法以及轻量级密码算法。本文就其中的2类进行分析和研究,对称式加密算法以DES算法(三重)和AES算法为代表,非对称式加密算法以RSA算法和ECC算法为代表,通过详细研究上述加密算法的加解密过程,结合各自的优缺点及适用场所,最终选取AES算法作为单片机及嵌入式系统的加密算法。 (一)公钥加密算法 公钥密码系统的概念[2]于1976年首次提到。最初提出解决私钥密码系统中的两个众所周知的问题(数字签名和密钥分发)。在此之前,几乎所有加密算法,加密过程无非就是两种基本方式-替换和替换,与公钥加密不同,它使用数学函数。可以说,公钥加密算法的出现给密码学带来了新的方向。公钥加密算法的最大特点是加密和解密使用一对不同但相关的密钥,因此公钥加密算法也称为双密钥加密算法。在这对密钥中,加密密钥是公共的,并且解密密钥对用户是私有的。这意味着在不知道解密密钥的情况下,知道密文想要恢复明文是不可行的。 (二)DES算法 数据加密标准DES算法[3]是世界上最具影响力的数据包加密算法之一。DES算法是由一种称为Lucifer算法修改以及发展而来,它有很多的优点:比如密钥容易生成,加解密速度比较理想,在软件上也易于实现。但是随着密码分析学的发展,人们发现,过去被认为足够安全的DES算法已被证明不够安全。另一方面,DES算法的密钥长度仅为56Bit,这似乎太短。由于计算机计算能力的逐年增加,DES算法终于在1998年宣布。后来,一些学者提出DES算法可以用于多个密钥的情况,这是三重DES的起源。三重DES对密码分析有着很强的抵抗能力,但是,正由于多重使用所以产生了一个难以克服的缺点,那就是实现算法的速度较慢。此外,三重DES的分组长度跟先前一样,还是短了些。尽管TripleDES的复杂性,但它越来越显示出下降的迹象。新数据加密标准最基本的要求如下:首先,必须比三重DES加解密速度快;其次,最少要与三重DES安全性一样;最后,数据包长度和密钥长度就足够了。最后,Rijndael算法在许多候选算法中成功地作为新的数据加密标准。虽说DES算法已不可避免地走向衰亡,但它的出现对密码学的发展有着很大的推动作用,对于学习分组加密算法还是有着重要的参考意义。 (三)AES算法 根据AES加密算法密钥安全性不足、加解密轮变换不对称以及S盒存在安全隐患的缺点,针对性地对密钥扩展算法、加解密算法结构以及S盒进行了改进。对于加解密算法结构,在加密算法轮变换中合并了行移位和列混合,精简了轮函数的计算部件;在解密算法中首先调整了轮函数的变换顺序,使其与加密轮变换顺序保持了一致,之后再套用加密算法中的改进,合并了逆行移位和逆列混合,使得算法结构进一步得到了优化。对于原S盒的不足,笔者提出了一种新S盒的构造,经测试证明新S盒比原S盒有着更好的密码性质,有效地提高了AES算法的安全性。现代社会越来越多地走向信息社会,信息的作用变得越来越重要。随着微型计算机进一步的智能化、微型化,人们的日常生活也越来越离不开它。但在微型计算机的应用中,如果不能保证信息传输的安全性,则无法保证。们的重视。因此,微控制器和嵌入式系统的数据加密研究是必要的,并且有关这方面的研究在今后也必定会更加广泛和深入。 这样你了解了吗?

    时间:2020-10-22 关键词: 嵌入式 嵌入式系统 单片机

  • 小心! APT组织对Linux设备的攻击越来越多

    小心! APT组织对Linux设备的攻击越来越多

    根据近期的一项调查,APT组织开始越来越多地对Linux设备执行有针对性的攻击,并开发了更多针对Linux的工具。 APT对Linux的重视并不让人意外,因为越来越多的企业和组织选择Linux而不是Windows来运行具有战略意义的关键业务服务器和系统。此外,人们通常认为Linux操作系统更安全,不是很流行因而不太可能成为恶意软件的攻击目标。 但是,据观察APT攻击者正在利用Linux用户的这种想当然和麻痹大意。报告指出,“过去八年来,已经观察到十几个APT组织使用Linux恶意软件或某些基于Linux的模块”。 其中包括臭名昭著的团体,例如图拉(Turla)、拉撒路(Lazarus)、钡(Barium)、索法西(Sofacy)、朗伯(Lamberts)和方程式(EquaTIon)等。报告重点介绍了俄语APT小组Turla的例子,该小组近年来使用Linux后门作为其不断变化的工具集的一部分。 虽然目前针对性的基于Linux的系统仍然不常见,但已经有不少针对Linux的恶意软件,包括webshell、后门程序、rootkit甚至定制的漏洞利用程序。 这意味着企业应当开始重视Linux系统的安全性,Linux服务器被攻击往往会造成严重后果,除了受感染的设备之外,攻击者还可以访问运行Windows或macOS的端点。 卡巴斯基俄罗斯全球研究与分析团队(GReAT)负责人YuryNamestnikov表示:“过去,我们的专家多次确认APT工具集日益增强的趋势,而以Linux为重点的工具也不例外。为了提高IT系统安全性,IT和安全部门比以前更频繁地使用Linux。而攻击者正在加紧开发针对Linux系统的复杂攻击工具来对此做出响应。我们建议网络安全专家认识到这一趋势,并采取其他措施来保护其服务器和工作站。” Synopsys的高级安全工程师BorisCipot评论道:“Linux的系统也有漏洞并容易受到攻击,这并不令人感到震惊。人们普遍存在一种误解,以为Linux系统或Mac不会受到恶意软件的影响。不幸的是,这是致命的错误想法。” 今天早些时候,ESET刚刚宣布发现一种全新的Linux恶意软件——CDRThief,能够攻击中国厂商Linknat的VOS2009和VOS3000软交换机使用的特定VoIP平台。

    时间:2020-10-22 关键词: Linux apt

  • 嵌入式系统的设计和开发资料大全

    嵌入式系统的设计和开发资料大全

    现在嵌入式系统时相当火爆的,嵌入式系统设计方法变化的背景。 嵌入式系统设计方法的演化总的来说是因为应用需求的牵引和IT技术的推动,随着微电子技术的不断创新和发展,大规模集成电路的集成度和工艺水平不断提高。硅材料与人类智慧的结合,生产出大批量的低成本、高可靠性和高精度的微电子结构模块,推动了一个全新的技术领域和产业的发展。 在此基础上发展起来的器件可编程思想和微处理(器)技术可以用软件来改变和实现硬件的功能。微处理器和各种可编程大规模集成专用电路、半定制器件的大量应用,开创了一个崭新的应用世界,以至广泛影响着并在逐步改变着人类的生产、生活和学习等社会活动。 计算机硬件平台性能的大幅度提高,使很多复杂算法和方便使用的界面得以实现,大大提高了工作效率,给复杂嵌入式系统辅助设计提供了物理基础。 高性能的EDA综合开发工具(平台)得到长足发展,而且其自动化和智能化程度不断提高,为复杂的嵌入式系统设计提供了不同用途和不同级别集编辑、布局、布线、编译、综合、模拟、测试、验证和器件编程等一体化的易于学习和方便使用的开发集成环境。 硬件描述语言HDL(HardwareDescrIPTIonLanguage)的发展为复杂电子系统设计提供了建立各种硬件模型的工作媒介。它的描述能力和抽象能力强,给硬件电路,特别是半定制大规模集成电路设计带来了重大的变革。目前,用得较多的有已成为IEEE为STD1076标准的VHDL、IEEESTD1364标准的VerilogHDL和Altera公司企业标准的AHDL等。由于HDL的发展和标准化,世界上出现了一批利用HDL进行各种集成电路功能模块专业设计的公司。其任务是按常用或专用功能,用HDL来描述集成电路的功能和结构,并经过不同级别的验证形成不同级别的IP内核模块,供芯片设计人员装配或集成选用。IP(IntellectualProperty)内核模块是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路、器件或部件。它有几种不同形式。IP内核模块有行为(behavior)、结构(structure)和物理(physical)3级不同程度的设计,对应有主要描述功能行为的“软IP内核(sofTIPcore)”、完成结构描述的“固IP内核(firmIPcore)”和基于物理描述并经过工艺验证的“硬IP内核(hardIPcore)”3个层次。这相当于集成电路(器件或部件)的毛坯、半成品和成品的设计技术。软IP内核通常是用某种HDL文本提交用户,它已经过行为级设计优化和功能验证,但其中不含有任何具体的物理信息。据此,用户可以综合出正确的门电路级网表,并可以进行后续结构设计,具有最大的灵活性,可以很容易地借助于EDA综合工具与其他外部逻辑电路结合成一体,根据各种不同的半导体工艺,设计成具有不同性能的器件。可以商品化的软IP内核一般电路结构总门数都在5000门以上。但是,如果后续设计不当,有可能导致整个结果失败。软IP内核又称作虚拟器件。硬IP内核是基于某种半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。固IP内核的设计深度则是介于软IP内核和硬IP内核之间,除了完成硬IP内核所有的设计外,还完成了门电路级综合和时序仿真等设计环节。一般以门电路级网表形式提交用户使用。 TI,Philips和Atmel等厂商就是通过Intel授权,用其MCS51的IP内核模块结合自己的特长开发出有个性的与IntelMCS51兼容的单片机。 常用的IP内核模块有各种不同的CPU(32/64位CISC/RISC结构的CPU或8/16位微控制器/单片机)、32/64位DSP、DRAM、SRAM、MRAM、EEPROM、Flashmemory、A/D、D/A、MPEG/JPEG、USB、PCIe、、MIPI、标准接口、网络单元、编译器、编码/解码器和模拟器件模块等。丰富的IP内核模块库为快速地设计专用集成电路和单片系统以及尽快占领市场提供了基本保证。 软件技术的进步,特别是嵌入式实时操作系统EOS(EmbeddedOperaTIonSystem)和RTOS的推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台。 02 嵌入式系统设计方法的变化 过去擅长于软件设计的编程人员一般对硬件电路设计“敬而远之”,硬件设计和软件设计被认为是性质完全不同的技术。 随着电子信息技术的发展,电子工程出身的设计人员,往往还逐步涉足软件编程。其主要形式是通过微控制器(国内习惯称作单片机)的应用,学会相应的汇编语言编程。在设计规模更大的集散控制系统时,必然要用到已普及的PC++机,以其为上端机,从而进一步学习使用C、C++、Python等高级语言编程作系统程序,设计系统界面,通过与单片机控制的前端机进行多机通信构成集中分布控制系统。 软件编程出身的设计人员则很少有兴趣去学习应用电路设计。但是,随着计算机技术的飞速发展,特别是硬件描述语言HDL的发明,系统硬件设计方法发生了变化,数字系统的硬件组成及其行为完全可以用HDL来描述和仿真。在这种情况下,设计硬件电路不再是硬件设计工程师的专利,擅长软件编程的设计人员可以借助于HDL工具来描述硬件电路的行为、功能、结构、数据流、信号连接关系和定时关系,设计出满足各种要求的硬件系统。EDA工具允许有两种设计输入工具,分别适应硬件电路设计人员和软件编程人员两种不同背景的需要。让具有硬件背景的设计人员用已习惯的原理图输入方式,而让具有软件背景的设计人员用硬件描述语言输入方式。由于用HDL描述进行输入,因而与系统行为描述更接近,且更便于综合、时域传递和修改,还能建立独立于工艺的设计文件,所以,擅长软件编程的人一旦掌握了HDL和一些必要的硬件知识,往往可以比习惯于传统设计的工程师设计出更好的硬件电路和系统。所以,习惯于传统设计的工程师应该学会用HDL来描述和编程。 为什么在大部分毕业生眼中,只有嵌入式、单片机、ARM、FPGA才是技术呢?现在的高校,几乎都开设这方面的专业,这方面固然有很多高层次人才,高待遇的,但这个东西并不是适合所有人的,大部分起点低的,或者年级偏大的,其实不应该去做这些东西。 现在的嵌入式都是快餐,随着大学生的不停涌入,价值越来越低,并且这些群体大部分都能做出东西来,却就是做不稳定,最后就是白菜价格也卖不出去,而根本点在于缺少对生产、质量、售后、测试、模拟基础功底的漠视。 中国发展这么多年,本质上讲,真正赚钱的,还是这帮搞生产,抓质量,懂销售的群体赚钱,绝对不是研发技术人员。但技术人员,总是把技术举得高高的,而支撑技术变成产品再销售出去的环节,则非常漠视,最后一辈子只能打工。相反,若抓其他几个环节,则完全可以发展出来当老板,自己聘请技术人员即可。 到今天为止,一个公司的倒闭,没有几个是因为技术问题导致的,大多数都是因为其他原因,比如市场、生产、品质等等。赚钱是一个体系,研发只是其中一块。 可以说,对于国内大部分公司来说,就今天来说,贸、工、技路线远比技、工、贸容易成功的多。 21ic援引一位标准的技术人员的话:现在我教给我同事的,大部分都是工厂的东西:一看、二想、三做、四检查。其次就是基于事实,用常理去推理分析,让他们舍去所谓的高科技,把常理用好。通过这两点来做各种事情,而不仅仅限于技术。同时,尽可能避开大家做的东西,大家都喜欢做嵌入式,那我们就做给嵌入式配套的设备,或者嵌入式群体做不了的设备,只有这样,才能获得高额的利润。 03 嵌入式系统设计的3个层次 21ic家了解到,嵌入式系统设计有3个不同层次: 第1层次:以PCBCAD软件和ICE为主要工具的设计方法 这是过去直至现在我国单片机应用系统设计人员一直沿用的方法,其步骤是先抽象后具体。抽象设计主要是根据嵌入式应用系统要实现的功能要求,对系统功能细化,分成若干功能模块,画出系统功能框图,再对功能模块进行硬件和软件功能实现的分配。具体设计包括硬件设计和软件设计。硬件设计主要是根据性能参数要求对各功能模块所需要使用的元器件进行选择和组合,其选择的基本原则就是市场上可以购买到的性价比最高的通用元器件。必要时,须分别对各个没有把握的部分进行搭试、功能检验和性能测试,从模块到系统找到相对优化的方案,画出电路原理图。硬件设计的关键一步就是利用印制板(PCB)计算机辅助设计(CAD)软件对系统的元器件进行布局和布线,接着是印制板加工、装配和硬件调试。工作量最大的部分是软件设计。软件设计贯穿整个系统的设计过程,主要包括任务分析、资源分配、模块划分、流程设计和细化、编码调试等。软件设计的工作量主要集中在程序调试,所以软件调试工具就是关键。最常用和最有效的工具是在线仿真器(ICE)。第2层次:以EDA工具软件和EOS为开发平台的设计方法 随着微电子工艺技术的发展,各种通用的可编程半定制逻辑器件应运而生。在硬件设计时,设计师可以利用这些半定制器件,逐步把原先要通过印制板线路互连的若干标准逻辑器件自制成专用集成电路(ASIC)使用,这样,就把印制板布局和布线的复杂性转换成半定制器件内配置的复杂性。 然而,半定制器件的设计并不需要设计人员有半导体工艺和片内集成电路布局和布线的知识和经验。随着半定制器件的规模越来越大,可集成的器件越来越多,使印制板上互连器件的线路、装配和调试费用越来越少,不仅大大减少了印制板的面积和接插件的数量,降低了系统综合成本,增加了可编程应用的灵活性,更重要的是降低了系统功耗,提高了系统工作速度,大大提高了系统的可靠性和安全性。这样,硬件设计人员从过去选择和使用标准通用集成电路器件,逐步转向自己设计和制作部分专用的集成电路器件,而这些技术是由各种EDA工具软件提供支持的。半定制逻辑器件经历了可编程逻辑阵列PLA、可编程阵列逻辑PAL、通用阵列逻辑GAL、复杂可编程逻辑器件CPLD和现场可编程门阵列FPGA的发展过程。其趋势是集成度和速度不断提高,功能不断增强,结构趋于更合理,使用变得更灵活和方便。设计人员可以利用各种EDA工具和标准的CPLD和FPGA等,设计和自制用户专用的大规模集成电路。然后再通过自下而上的设计方法,把用半定制器件设计自制的集成电路、可编程外围器件、所选择的ASIC与嵌入式微处理器或微控制器在印制板上布局、布线构成系统。第3层次:以IP内核库为设计基础,用软硬件协同设计技术的设计方法 20世纪90年代后,进一步开始了从“集成电路”级设计不断转向“集成系统”级设计。目前已进入单片系统SOC(Systemo-nachip)设计阶段,并开始进入实用阶段。这种设计方法不是把系统所需要用到的所有集成电路简单地二次集成到1个芯片上,如果这样实现单片系统,是不可能达到单片系统所要求的高密度、高速度、高性能、小体积、低电压、低功耗等指标的,特别是低功耗要求。 单片系统设计要从整个系统性能要求出发,把微处理器、模型算法、芯片结构、外围器件各层次电路直至器件的设计紧密结合起来,并通过建立在全新理念上的系统软件和硬件的协同设计,在单个芯片上完成整个系统的功能。有时也可能把系统做在几个芯片上。因为,实际上并不是所有的系统都能在一个芯片上实现的;还可能因为实现某种单片系统的工艺成本太高,以至于失去商业价值。目前,进入实用的单片系统还属简单的单片系统,如智能IC卡等。但几个着名的半导体厂商正在紧锣密鼓地研制和开发像单片PC这样的复杂单片系统。单片系统的设计如果从零开始,这既不现实也无必要。因为除了设计不成熟、未经过时间考验,其系统性能和质量得不到保证外,还会因为设计周期太长而失去商业价值。为了加快单片系统设计周期和提高系统的可靠性,目前最有效的一个途径就是通过授权,使用成熟优化的IP内核模块来进行设计集成和二次开发,利用胶粘逻辑技术GLT(GlueLogicTechnology),把这些IP内核模块嵌入到SoC中。IP内核模块是单片系统设计的基础,究竟购买哪一级IP内核模块,要根据现有基础、时间、资金和其他条件权衡确定。 购买硬IP内核模块风险最小,但付出最大,这是必然的。但总的来说,通过购买IP内核模块不仅可以降低开发风险,还能节省开发费用,因为一般购买IP内核模块的费用要低于自己单独设计和验证的费用。当然,并不是所需要的IP内核模块都可以从市场上买得到。为了垄断市场,有一些公司开发出来的关键IP内核模块(至少暂时)是不愿意授权转让使用的。像这样的IP内核模块就不得不自己组织力量来开发。这3个层次各有各的应用范围。从应用开发角度看,在相当长的一段时间内,都是采用前2种方法。第3层次设计方法对一般具体应用人员来说,只能用来设计简单的单片系统。而复杂的单片系统则是某些大的半导体厂商才能设计和实现的,并且用这种方法实现的单片系统,只可能是那些广泛使用、具有一定规模的应用系统才值得投入研制。还有些应用系统,因为技术问题或商业价值问题并不适宜用单片实现。当它们以商品形式推出相应单片系统后,应用人员只要会选用即可。 所以,3个层次的设计方法会并存,并不会简单地用后者取代前者。初级应用设计人员会以第1种方法为主;富有经验的设计人员会以第2种方法为主;很专业的设计人员会用第3种方法进行简单单片系统的设计和应用。但所有的设计人员都可以应用半导体大厂商推出的用第3种方法设计的专用单片系统。 04 嵌入式硬件系统设计 嵌入式设计是个庞大的工程,在软件方面嵌入式ARM已经有了多次介绍,具体可以观看《深度:嵌入式系统的软件架构设计!》一文。在硬件电路设计方面,21ic家了解到有几个注意事项,首先,咱们了解下嵌入式的硬件构架。 我们知道,CPU是这个系统的灵魂,所有的外围配置都与其相关联,这也突出了嵌入式设计的一个特点硬件可剪裁。在做嵌入式硬件设计中,以下几点需要关注。 第一、电源确定 电源对于嵌入式系统中的作用可以看做是空气对人体的作用,甚至更重要:人呼吸的空气中有氧气、二氧化碳和氮气等但是含量稳定,这就相当于电源系统中各种杂波,我们希望得到纯净和稳定符合要求的电源,但由于各种因素制约,只是我们的梦想。这个要关注两个方面: a、电压嵌入式系统需要各种量级的电源比如常见的5v、3.3v、1.8v等,为尽量减小电源的纹波,在嵌入式系统中使用LDO器件。如果采用DCDC不仅个头大,其纹波也是一个很头疼的问题。 b、电流嵌入式系统的正常运行不但需要稳定足够的电源,还要有足够的电流,因此在选择电源器件的时候需要考虑其负载,我设计时一般留有30%的余量。 如果是多层板,电源部分在layout的时候需电源分割,这时需要注意分割路径,尽量将一定量的电源放置在一起。如果是双面板,则走线宽度需要注意,在板子允许的情况下尽量加宽。合适的退耦电容尽量靠近电源管脚。 第二、晶振确定 晶振相当于嵌入式系统的心脏,其稳定与否直接关系其运行状态和通讯性能。常见的振有无源晶振,有源晶振,首先要确定其振荡频率,其次要确定晶振类型。 a、无源晶振其匹配电容和匹配电阻的选择,这部分一般依据参考手册。在单片机设计中,经常使用插件晶振配合瓷片电容。在ARM中,为了减少空间和便于布线,经常使用四角无源晶振配合贴片电容。虽然我们对于固定晶振的匹配电路比较熟悉,但是为了达到万无一失,还是要看参考手册确定电容大小,是否需要匹配电阻等细节。 b、有源晶振具有更好的更准确的时钟信号,但是相比之下,比无缘晶振价格高,因此这也是在硬件电路设计中需要关注的成本。 在做电路板设计时需要注意晶振走线尽量靠近芯片,关键信号远离时钟走线。在条件允许的情况下增加接地保护环。如果是多层板,也要讲关键信号远离晶振的走线。 第三、预留测试IO口 在嵌入式调试阶段,在管脚资源丰富的情况下,我通常预留一个IO口连接led或者喇叭,为下一步软件的编写做铺垫。在嵌入式系统运行过程中适当控制该IO接口,从而判断系统是否正常运行。 第四、外扩存储设备 一个嵌入式系统如果有电源、晶振和CPU,那么这就是我们熟悉的最小系统。如果该嵌入式系统需要运行大点的操作系统,那么不但需要CPU具有MMU,CPU还需要外接SDRAM和NANDFLASH。如果该cpu具有SDRAM和NANDFLASH控制器,那么在硬件设计上不用过多的考虑地址线的使用。如果没有相关的控制器,那么需要注意地址线的使用。 这部分在LAYOUT的时候是一个重点,究其原因就是要使相关信号线等长以确保信号的延时相等,时钟和DQS的差分信号线走线。在布线的时候各种布线技巧需要综合使用,例如与cpu对称分布,菊花链布线、T型布线,这都需要依据内存的个数多少来进行选择,一般来说个数越多,布线越复杂,但是知道其关键点,一切迎刃而解。 第五、功能接口 一个嵌入式系统最重要的就是通过各种接口来控制外围模块,达到设计者预设的目的。常用的接口有串口(可用来连接蓝牙,wifi和3G等模块),USB接口、网络接口、JTAG接口、音视频接口、HDMI接口等等。由于这些接口与外部模块连接,做好电磁兼容设计是重要的一项工作。除此之外,在LAYOUT的时候注意差分线的使用。 第六、屏幕 这个功能之所以单独列出来,是由于其可有可无。如果一个嵌入式系统只是作为一个连接器连接外围设备模块,通过相关接口连接到电脑主机或者直接挂在网络上,那么屏幕就不需要了。但是如果做出来的是一个消费类产品,与用户交互频繁,这就不得不唠叨几句。 电容屏幕是嵌入式屏幕的首选,在电路设计中需要注意触屏连接线和显示屏连接线的布局。在走线的过程中尽量短的靠近主控cpu,同时注意配对信号走差分线,RGB控制信号走等长。各种信号走线间距遵循3W规则,避免相互干扰。在屏幕的设计中,一定要确保功率和防止干扰,以防屏幕闪屏和花屏现象的出现。 06 嵌入式产品开发流程 嵌入式产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细设计到最后产品完成的过程。但是,与普通电子产品相比,嵌入式产品的开发流程又有其特殊之处。它包含嵌入式软件和嵌入式硬件两大部分,针对嵌入式硬件和软件的开发,在普通的电子产品开发过程中,是不需要涉及的。21ic家了解到嵌入式产品的研发流程具体如下图: 下面,针对嵌入式产品的开发过程中的各个阶段,我们进行详细探讨。 阶段1:产品需求 在这一个阶段,我们需要弄清楚的是产品的需求从何而来,一个成功的产品,我们需要满足哪些需求。只有需求明确了,我们的产品开发目标才能明确。在产品需求分析阶段,我们可以通过以下这些途径获取产品需求: 1)市场分析与调研,主要是看市场有什么需求,还有就是前沿的技术是什么(站在做一款产品的角度);2)客户调研和用户定位,从市场广大客户那获取最准确的产品需求(要注意分析市场,产品生命周期,升级是否方便);3)利润导向(成本预算);4)如果是外包项目,则需要我们的客户提供产品的需求(直接从客户那获取,让客户签协议); 当一个项目做完的时候,如果客户突然又增加需求,增加功能,将导致你的项目周期严重拖延,成本剧烈上升,并且测试好的产品可能要全部重新测试,原本的设计可能将不会满足当前的要求,所以做项目之前,最好要跟客户把需求确定下来,并且签定一份协议,否则,你辛苦多少个日日夜夜,得到的将是一个无法收拾的烂摊子! 阶段2:产品规格说明 在前一个阶段,我们搜集了产品的所有需求。那么在产品规格说明阶段,我们的任务是将所有的需求,细化成产品的具体的规格,就比如一个简单的USB转串口线,我们需要确定产品的规格,包括: 1)产品的外观;2)产品支持的操作系统;3)产品的接口形式和支持的规范; 等等诸如此类,切记,在形成了产品的规格说明后,在后续的开发过程中,我们必须严格的遵守,没有200%的理由,不能随意更改产品的需求。否则,产品的开发过程必将是一个反复无期的过程。 《产品规格说明》主要从以下方面进行考虑: 1)考虑该产品需要哪些硬件接口;2)产品用在哪些环境下,要做多大,耗电量如何。如果是消费类产品,还跟设计美观,产品是否便于携带,以确定板子大小的需求,是否防水;3)产品成本要求;4)产品性能参数的说明(例如交换机,如果是百兆的速率,用于家庭和一般公司;如果是用于整个省的交换,那设计的速率肯定数十万兆以上了)所以说,产品性能参数的不同,就会影响到我们设计考虑的不同,那么产品的规格自然就不同了;5)需要适应和符合的国家标准,国际标准,或行业标准; 阶段3:产品总体设计方案 在完成了产品规格说明以后,我们需要针对这一产品,了解当前有哪些可行的方案,通过几个方案进行对比,包括从成本、性能、开发周期、开发难度等多方面进行考虑,最终选择一个最适合自己的产品总体设计方案。 在这一阶段,我们除了确定具体实现的方案外,我们还需要综合考虑,产品开发周期,多少人月的工作量,需要哪些资源或者外部协助,以及开发过程中可能遇到的风险及应对措施,形成整个项目的项目计划,指导我们的整个开发过程。 阶段4:产品概要设计 产品概要设计主要是在总体设计方案的基础上进一步的细化,具体从硬件和软件两方面入手: 硬件模块概要设计 硬件模块概要设计,主要从硬件的角度出发,确认整个系统的架构,并按功能来划分各个模块,确定各个模块的的大概实现。首先要依据我们到底要哪些外围功能以及产品要完成的工作,来进行CPU选型(注意:CPU一旦确定,那么你的周围硬件电路,就要参考该CPU厂家提供的方案电路来设计)。然后再根据产品的功能需求选芯片,比如是外接AD还是用片内AD,采用什么样的通讯方式,有什么外部接口,还有最重要的是要考虑电磁兼容。 一般一款CPU的生存周期是5-8年,你考虑选型的时候要注意,不要选用快停产的CPU,以免出现这样的结局:产品辛辛苦苦开发了1到2年,刚开发出来,还没赚钱,CPU又停产了,又得要重新开发。很多公司就死在这个上面。 软件模块概要设计 软件模块概要设计阶段,主要是依据系统的要求,将整个系统按功能进行模块划分,定义好各个功能模块之间的接口,以及模块内主要的数据结构等。 阶段5:产品详细设计 硬件模块详细设计 主要是具体的电路图和一些具体要求,包括PCB和外壳相互设计,尺寸这些参数。接下来,我们就需要依据硬件模块详细设计文档的指导,完成整个硬件的设计。包括原理图、PCB的绘制。软件模块详细设计 功能函数接口定义,该函数功能接口完成功能,数据结构,全局变量,完成任务时各个功能函数接口调用流程。在完成了软件模块详细设计以后,就进入具体的编码阶段,在软件模块详细设计的指导下,完成整个系统的软件编码。 一定要注意需要先完成模块详细设计文档以后,软件才进入实际的编码阶段,硬件进入具体的原理图、PCB实现阶段,这样才能尽量在设计之初就考虑周全,避免在设计过程中反复修改。提高开发效率,不要为了图一时之快,没有完成详细设计,就开始实际的设计步骤。 阶段6&7:产品调试与验证 该阶段主要是调整硬件或代码,修正其中存在的问题和BUG,使之能正常运行,并尽量使产品的功能达到产品需求规格说明要求。 硬件部分: 1)目测加工会得PCB板是否存在短路,器件是否焊错,或漏焊接;2)测试各电源对地电阻是否正常;3)上电,测试电源是否正常;4)分模块调试硬件模块,可借助示波器、逻辑分析仪等根据。 软件部分: 验证软件单个功能是否实现,验证软件整个产品功能是否实现。 阶段8:测试 功能测试(测试不通过,可能是有BUG); 压力测试(测试不通过,可能是有BUG或哪里参数设计不合理); 性能测试(产品性能参数要提炼出来,供将来客户参考,这个就是你的产品特征的一部分); 其他专业测试:包括工业级的测试,例如含抗干扰测试,产品寿命测试,防潮湿测试,高温和低温测试(有的产品有很高的温度或很低的温度工作不正常,甚至停止工作)。 有的设备电子元器件在特殊温度下,参数就会异常,导致整个产品出现故障或失灵现象的出现;有的设备,零下几十度的情况下,根本就启动不了,开不了机;有的设备在高温下,电容或电阻值就会产生物理的变化,这些都会影响到产品的质量。这里要引出一个话题,工业级产品与消费类产品有什么区别呢?工业级的产品就要避免这些异常和特殊问题,有的产品是在很深的海里工作,或者在严寒的山洞工作,或者火热沙漠工作,或者颠簸的设备上,比如汽车;或者是需要防止雷击;所以这就是工业级产品跟消费类产品的区别,消费类的产品就不需要做这么多的测试。 阶段9:产品 通过上一阶段完整测试验证,在此阶段,即得到我们开发成功的产品。在此阶段,可以比较实际的产品和最初的形成的产品规格说明,看经过一个完整的开发过程,是否产品完全符合最初的产品规格说明,又或者,中途发现产品规格说明存在问题,对它进行了多少修改呢? 附录:嵌入式硬件开发流程 之前,我们详细讲述了嵌入式产品的研发流程,那么在这一节,我们具体以嵌入式产品的硬件部分为例,再次讲解其开发过程,希望通过这一节,大家能对嵌入式硬件开发流程有更深刻的认识,在以后的学习和工作中,更加规范化和标准化,提高开发技能。嵌入式硬件开发流程一般如下图,分为8个阶段: 嵌入式产品的硬件形态各异,CPU从简单的4位/8位单片机到32位的ARM处理器,以及其他专用IC。另外,依据产品的不同需求,外围电路也各不相同。每一次硬件开发过程,都需要依据实际的需求,考虑多方面的因素,选择最合适的方案来。 硬件阶段1:硬件产品需求 和普通的嵌入式产品需求一样。阶段1:产品需求。 硬件阶段2:硬件总体设计方案 一个硬件开发项目,它的需求可能来自很多方面,比如市场产品的需要或性能提升的要求等,因此,作为一个硬件设计人员,我们需要主动去了解各个方面的需求并分析,根据系统所要完成的功能,选择最合适的硬件方案。 在这一阶段,我们需要分析整个系统设计的可行性,包括方案中主要器件的可采购性,产品开发投入,项目开发周期预计,开发风险评估等,并针对开发过程中可能遇到的问题,提前选择应对方案,保证硬件的顺利完成。 硬件阶段3:硬件电路原理图设计 在系统方案确定后,我们即可以开展相关的设计工作,原理设计主要包括系统总体设计和详细设计,最终产生详细的设计文档和硬件原理图。 原理设计和PCB设计是设计人员最主要的两个工作之一,在原理设计过程中,我们需要规划硬件内部资源,如系统存储空间,以及各个外围电路模块的实现。另外,对系统主要的外围电路,如电源、复位等也需要仔细的考虑,在一些高速设计或特殊应用场合,还需要考虑EMC/EMI等。 电源是保证硬件系统正常工作的基础,设计中要详细的分析:系统能够提供的电源输入;单板需要产生的电源输出;各个电源需要提供的电流大小;电源电路效率;各个电源能够允许的波动范围;整个电源系统需要的上电顺序等等。 为了系统稳定可靠的工作,复位电路的设计也非常重要,如何保证系统不会在外界干扰的情况下异常复位,如何保证在系统运行异常的时候能够及时复位,以及如何合理的复位,才能保证系统完整的复位后,这些也都是我们在原理设计的时候需要考虑的。 同样的,时钟电路的设计也是非常重要的一个方面,一个不好的时钟电路设计,可能会引起通信产品的数据丢包,产生大的EMI,甚至导致系统不稳定。原理图设计中要有“拿来主义”!现在的芯片厂家一般都可以提供参考设计的原理图,所以要尽量的借助这些资源,在充分理解参考设计的基础上,做一些自己的发挥。 硬件阶段4:PCB图设计 PCB设计阶段,即是将原理图设计转化为实际的可加工的PCB线路板,目前主流的PCB设计软件有PADS,Candence和Protel几种。 PCB设计,尤其是高速PCB,需要考虑EMC/EMI,阻抗控制,信号质量等,对PCB设计人员的要求比较高。为了验证设计的PCB是否符合要求,有的还需要进行PCB仿真。并依据仿真结果调整PCB的布局布线,完成整个的设计。 硬件阶段5:PCB加工文件制作与PCB打样 PCB绘制完成以后,在这一阶段,我们需要生成加工厂可识别的加工文件,即常说的光绘文件,将其交给加工厂打样PCB空板。一般1~4层板可以在一周内完成打样。 硬件阶段6:硬件产品的焊接与调试 在拿到加工厂打样会的PCB空板以后,接下来我们,需要检查PCB空板是否和我们设计预期一样,是否存在明显的短路或断痕,检查通过后,则需要将前期采购的元器件和PCB空板交由生产厂家进行焊接(如果PCB电路不复杂,为了加快速度,也可以直接手工焊接元器件)。 当PCB已经焊接完成后,在调试PCB之前,一定要先认真检查是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这样可以避免贸然上电后损坏单板。调试的过程中要有平和的心态,遇见问题是非常正常的,要做的就是多做比较和分析,逐步的排除可能的原因,直致最终调试成功。 在硬件调试过程中,需要经常使用到的调试工具有万用表和示波器,逻辑分析仪等,用于测试和观察板内信号电压和信号质量,信号时序是否满足要求。 硬件阶段7:硬件产品测试 当硬件产品调试通过以后,我们需要对照产品产品的需求说明,一项一项进行测试,确认是否符合预期的要求,如果达不到要求,则需要对硬件产品进行调试和修改,直到符合产品需求文明(一般都以需求说明文档作为评判的一句,当然明显的需求说明错误除外)。 硬件阶段8:硬件产品 我们最终开发的硬件成功。一个完整的,完成符合产品需求的硬件产品还不能说明一个成功的产品开发过程,我们还需要按照预定计划,准时高质量的完成。才是一个成功的产品开发过程。

    时间:2020-10-22 关键词: 嵌入式 嵌入式系统

  • Linux安装软件文件时遇到的常见报错和解决方法

    Linux安装软件文件时遇到的常见报错和解决方法

    我们在使用linux时,提示 Could not get lock /var/lib/dpkg/lock 报错? 有些小伙伴在使用 apt 包管理器更新或安装软件时,可能会遇到过诸如以下的错误提示: 这种时候大可不必惊慌,这些错误提示一般都是因为某些程序在系统后台进行着某些 apt 操作,因此锁定了 apt 数据库,所以暂时不能进行 apt 操作。 解决方案 那遇到这种情况,一般我们只需要安静地等待几分钟,或者先去做其他的事情,比如浏览一下良许 Linux 公众号里的文章,直到当前的更新、安装或卸载任务完成后,锁就会自动释放,然后就可以进行 apt 操作了。 当然了,上面说的是正常情况下的对应,那非正常情况下,比方说你等了好多个几分钟锁都还没有被释放,你就要看看是不是该进程由于某些原因而卡住了并且一直占用着锁。如果是的话,那你只能干掉这个进程,然后删除该锁定了。 首先,我们先找出是哪个进程占用了锁文件 /var/lib/dpkg/lock $ sudo lsof /var/lib/dpkg/lock 其他锁文件对应的命令 $ sudo lsof /var/lib/dpkg/lock-frontend $ sudo lsof /var/lib/apt/lists/lock 然后得到输出结果 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME unattende 1548 root 6uW REG 8,2 0 1181062 /var/lib/dpkg/lock 我们可以从结果中看到,该进程的 PID 为 1548 接着,kill 掉这个进程 $ sudo kill -9 1548 然后你就可以放心地删除锁文件 $ sudo rm /var/lib/dpkg/lock 或者 $ sudo rm /var/lib/dpkg/lock-frontend $ sudo rm /var/lib/apt/lists/lock 如果需要,还可以删除缓存目录下的锁文件 $ sudo rm /var/cache/apt/archives/lock 做完上面的步骤后,记得要运行以下命令 $ sudo dpkg --configure -a 这样问题应该就可以解决了。

    时间:2020-10-22 关键词: Linux 文件

  • 第18届CCF全国嵌入式系统大会在四川召开!

    第18届CCF全国嵌入式系统大会在四川召开!

    “万物智联”时代正在加速到来,伴随着嵌入式系统的不断智能化创新,智能化的嵌入式系统已渗透到“物联网+”产业的各个领域。 为了深度聚焦和探讨“智能嵌入式系统”以及在相关领域的扩展和应用,2020年10月17日,由中国计算机协会主办、四川大学承办的第18届CCF全国嵌入式系统大会在四川召开。 安芯教育作为AIoT领域的创新教育平台,受邀参加了此次活动,并在大会上作了技术赋能嵌入式教育的主题宣讲。安芯教育总经理王翔先生表示,嵌入式系统已被广泛应用于科研、产品开发以及教育等场景。安芯教育聚焦AIoT创新教育,依托前沿技术,开发了ASC课程及人才培养体系。拥有完善的线上、线下教育平台,为相关专业教师及学生提供了丰富的师资培训、人才实训等服务。 安芯教育总经理王翔 今年疫情期间,安芯教育通过线上教育平台的在线课程、就业宣讲、线上培训等活动,已服务超过3000人次。 分享中还介绍了由极术社区推出的基于微服务器开发平台—云芯1号,受到了与会嘉宾的广泛关注。 此次会议还邀请国内外嵌入式系统领域的顶级专家学者作大会特邀报告,并设有科技成果展示、学术论文交流等形式多样的活动。

    时间:2020-10-22 关键词: 嵌入式系统 ccf

  • 苹果 iOS 14.2/iPadOS 14.2 公测版 beta 4 发布

    苹果 iOS 14.2/iPadOS 14.2 公测版 beta 4 发布

    苹果发布了 iOS 14.2 与 iPadOS 14.2 更新的第四个公开测试版本,距向开发者发布 iOS 和 iPadOS 14.2 开发者预览版 Beta 4 仅过去了一天时间。

    时间:2020-10-22 关键词: 苹果 ipados 14.2 ios14.2

  • 腾讯云游戏 macOS 版开始公测: QQ 登录,支持多款游戏

    腾讯云游戏 macOS 版开始公测: QQ 登录,支持多款游戏

    根据一些玩家的反馈,已收到短信邀请体验腾讯云游戏 macOS 版客户端,官网提供下载试用。但目前该客户端只支持 QQ 登录。 当前支持 剑灵、流放之路、QQ 炫舞、极品飞车 online、战争雷霆、NBA2K online2、穿越火线、英雄联盟、FIFA online 4、枪神纪、QQ 飞车、逆战、堡垒之夜等游戏。 以下是穿越火线》试玩截图。

    时间:2020-10-22 关键词: 腾讯 macos

  • 苹果 iOS 14.1/iPadOS 14.1 正式版发布,新增多项功能

    苹果 iOS 14.1/iPadOS 14.1 正式版发布,新增多项功能

    苹果在10月21日陵城凌晨发布了 iOS 14.1 和 iPadOS 14.1 正式版,版本号为18A8395,加入了对新发布的 iPhone 12/Pro的支持,新功能包括改进相机模式和新机型的 HDR 视频录制。该更新还增加了对iPhone 8及以后机型的照片中10 bit HDR视频播放和编辑的支持,并提高了与Ubiquiti无线接入点的兼容性。 iOS 14.1更新可以下载,所有符合条件的设备都可以在“设置”中进行OTA下载。要访问新软件,请进入“设置”>“通用”>“软件更新”。 根据苹果的发布说明,iOS 14.1引入了一些错误修复。它解决了一个主要问题,即导致一些电子邮件从错误的别名发送,邮件App用户将很高兴看到这一修复。它还修复了一个可能导致小部件和图标以错误的大小显示的问题,它解决了计算器应用程序的一个错误,可能会阻止零的出现。 IT之家获悉,该更新还增加了对iPhone 8及以后机型的照片中10-bit HDR视频播放和编辑的支持,并提高了与Ubiquiti无线接入点的兼容性。 iOS 14.1包括对iPhone的改进和错误修复: - 增加了对iPhone 8及以后机型的照片中10-bit HDR视频播放和编辑的支持。 - 解决了一些小部件、文件夹和图标在主屏幕上显示尺寸缩小的问题。 - 解决了在主屏幕上拖动小部件可能会从文件夹中删除应用程序的问题。 - 修复了邮件中一些邮件从错误的别名发送的问题。 - 修复了一个可能会阻止来电显示区域信息的问题。 - 修复了某些设备上选择缩放显示模式和字母数字密码可能导致锁屏紧急呼叫按钮与文本输入框重叠的问题。 - 解决了一些用户在查看专辑或播放列表时偶尔无法下载或添加歌曲到其库中的问题。 - 修复了可能会阻止计算器中出现零的问题。 - 解决了在播放开始时,流媒体视频分辨率可能暂时降低的问题。 - 修复了部分用户无法设置家庭成员的 Apple Watch 的问题。 - 解决了 Apple Watch 应用中 Apple Watch 外壳材料显示不正确的问题。 - 解决了文件应用程序中的一个问题,该问题可能会导致一些 MDM 管理的云服务提供商将内容错误地显示为不可用。 - 提高与Ubiquiti无线接入点的兼容性。 有些功能可能无法在所有地区或所有苹果设备上使用。有关苹果软件更新的安全内容的信息,请访问此网站。 https://support.apple.com/kb/HT201222 IT之家获悉,iOS 14.1预计将安装在本周五即将上市的iPhone 12和iPhone 12 Pro上。苹果还在测试iOS 14.2更新,并向开发者发布了三个iOS 14.2更新的Beta版本。

    时间:2020-10-22 关键词: 苹果 ipados ios14.1 14.1

  • 手机QQ正式接入华为HMS!消息变秒收!

    手机QQ正式接入华为HMS!消息变秒收!

    腾讯昨日发布了安卓手机QQ 8.4.10正式版,带来了视频包厢、图片提取文字即时翻译、同时扫描多个二维码等新玩法、新功能。 据网友@皮蛋棒棒糖发现,新版手机QQ已经悄然接入了华为HMS移动服务框架,基于华为提供的通知服务,实际测试即便强制停止手机QQ的运行,也能接收消息,而且基本没有延迟! 如此一来,以后可以告别后台挂QQ了,完全可以禁止其自动启动,从而节省系统资源。 同时,在海外市场上,用户也可以正常使用手机QQ了。 不过也有网友表示,该服务还不太稳定,使用一段时间后又会出现无法接收消息的情况,看来还在测试阶段,相信这也是官方没有任何提及的原因。 进一步挖掘显示,手机QQ使用的是华为推送服务(HUAWEI Push Kit),华为面向开发者提供的消息推送平台,建立了从云端到终端的消息推送通道。 开发者在应用中集成HUAWEl Push Kit,就可以实时推送消息到用户终端应用,构筑良好的用户关系,提升用户的感知度和活跃度。

    时间:2020-10-22 关键词: 华为 hms 手机qq

  • 华为麒麟9000曝光!搭载满血24核Mali-G78 GPU

    华为麒麟9000曝光!搭载满血24核Mali-G78 GPU

    终于,华为麒麟9000终于来了!按照之前华为为新机申请入网许可证的信息看,“NOH-NX9”应该就是即将发布Mate 40中的一员,而它也会首发麒麟9000处理器。 现在,“NOH-NX9”已经现身Geekbench 5 OpenCL,其搭载的麒麟9000处理器的部分信息也显露出来(分数为6430分),比如搭载的CPU是海思芯片,有八个核心。 至于这款CPU的芯片,是满血的24核Mali-G78。 按照之前ARM的说法,综合架构、工艺等各方面的改进,Mali-G78相比于Mali-G77的性能提升幅度可达25%,即便是在同等工艺条件下也可提升15%, 同时能效提升10%,机器学习性能提升15%。 另外,Mali-G78彻底重写了FMA(融合乘加)引擎,包括新的乘法架构、新的加法架构、FP32/FP16浮点,可以节省30%的功耗,同时改为新的两级结构,实现了上层共享GPU模块与实际着色器核心频率的分离,也就是异步时钟域。

    时间:2020-10-22 关键词: 华为 麒麟9000

  • 苹果将使用骁龙的芯片?2021款iPhone或采用高通骁龙X60芯片

    苹果将使用骁龙的芯片?2021款iPhone或采用高通骁龙X60芯片

    10月22日消息,苹果的产品路线图透露,2021款iPhone很可能会采用高通骁龙X60调制解调器芯片。这意味着苹果正式使用高通的芯片了。 2019年4月,苹果和高通达成和解,双方结束了长达两年的专利许可之争。当时,两大公司还签署了一项为期6年的可延期授权协议以及一项多年芯片组供应协议,这为苹果iPhone 12系列以及其他产品使用高通的5G调制解调器铺平了道路。 一名推特用户在一份和解文件中发现了苹果在未来产品中使用高通5G调制解调器的路线图。 和解文件的第71页显示,苹果计划在2021年6月1日至2022年5月31日期间推出搭载有骁龙X60调制解调器的新产品。同时,该公司还承诺在2022年6月1日至2024年5月31日期间推出的产品中使用尚未公布的X65和X70调制解调器。 高通是在2020年2月推出X60调制解调器芯片的,该芯片基于5nm工艺打造,可同时连接低于6GHz和毫米波频段的网络,以获得更可靠和更快的速度。与基于7nm工艺的X55相比,X60更小、更省电。这些都使得X60成为苹果下一代iPhone的极佳候选产品。 推出X60时,高通表示,搭载该芯片的5G智能手机将于2021年开始推出,而这刚好印证了苹果产品路线图透露的信息。你期待吗?

    时间:2020-10-22 关键词: 高通 苹果 骁龙

发布文章