
C++/C
DemonHunter211
这个作者很懒,什么都没留下…
展开
-
cortex M与cortex A
ARM公司目前主流处理器以Cortex来命名:并分成Cortex-A Cortex-R Cortex-M三个系列。三大系列分工明确Cortex-A 系列——是开放式操作系统的高性能处理器。是面向尖端的,基于虚拟内存的操作系统和用户应用,可以运行Linux,偏向消费产品,应用包括智能手机、智能本和上网本、电子阅读器、数字电视、家用网络、家用网关和其他各种产品。 Cortex-R系列——面向实时应用的高性能内核,偏向高端工业。应用领域有汽车制动系统、动力传输解决方案、大容量存储控制器、联原创 2021-04-16 09:55:37 · 2107 阅读 · 0 评论 -
JTAG各类接口针脚定义及含义
一、引脚定义Test Clock Input (TCK) -----强制要求1TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。Test Mode Selection Input (TMS) -----强制要求2TMS信号在TCK的上升沿有效。TMS在IEEE1149.1标准里是强制要求的。TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。Te...原创 2020-12-04 15:46:15 · 4116 阅读 · 0 评论 -
IC设计过程
IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计。前端设计的主要流程:1、规格制定芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。2、详细设计Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。3、HDL编码使用硬件描述语言(VHDL,Ve原创 2020-12-03 14:33:06 · 488 阅读 · 0 评论 -
FPGA vs GPU 未来
一直以来,FPGA的主要应用领域是电子工程。但当英特尔完成对 Altera(Altera 是最大的现场可编程门阵列制造商之一)的收购时,情况发生了一些细微改变。英特尔对 FPGA 所蕴藏的潜力有着强烈的嗅觉和敏锐的洞察力,收购完成后,即刻开始帮助微软公司建立数据中心并利用云服务给亚马逊提供相关帮助。但关于 FPGA 到底是什么,许多矿工可能仍然心存疑问。FPGA 有何优势?FPGA 有何劣势?FPGA 会在 GPU挖矿阵营中脱颖而出,成为主角吗?此篇文章将会就以上矿工存疑问题,对 FPGA 进行一个原创 2020-11-30 10:45:32 · 526 阅读 · 0 评论 -
FPGA 简介
FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点FPGA设计不是简单的芯片研究,主要是利用 FPGA 的模式进行其他行业产品的设计。 与 ASIC 不同,FPGA在通信行业的应用比较广泛。通过对全球FPGA产品市场以及相关供应商的分析,结合当前我国的实际情况以及国内领先的FPGA产品可以发现.原创 2020-11-30 10:40:50 · 7191 阅读 · 0 评论 -
ARM Cortex-X1架构 自研的终结者
随着麒麟9000和三星Exynos 1080的发布,Android手机芯脏领域正式进入了5nm时代。可惜,麒麟9000的CPU架构仍然停留在ARM去年发布的Cortex-A77阶段,而Exynos 1080虽然用上了ARM最新发布的Cortex-A78,但出于定位的原因它并没能引入AMD在同期发布的最强音Cortex-X1。如果不出意外,骁龙875、Exynos 2100和天玑2000这些新一代5nm旗舰级SoC都会采用Cortex-X1超大核+Cortex-A78大核+Cortex...原创 2020-11-26 16:14:49 · 4182 阅读 · 0 评论 -
SoC 介绍
System on Chip,简称SoC,也即片上系统。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。SoC定义的基本内容主要在两方面:其一是它的构成,其二是它形成过程。系统级芯片的构成可以..原创 2020-11-26 16:09:58 · 16693 阅读 · 0 评论 -
Cortex-X1 简介 Cortex-X1 VS Cortex-A78
作为移动处理器行业内的霸主,ARM一直都是各大芯片厂商最佳的合作伙伴,基于ARM架构魔改的苹果A系列处理器和高通Kryo核心,向来是两大阵营性能强悍的代表,但这种情况可能会在2021年发生改变,因为ARM推出了大杀器Cortex-X1。Cortex-X1的性能提升在哪里Cortex-X1定制计划的推出,重新吸引了一种移动芯片厂商的目光。ARM表示,与Cortex-A78相比,单线程整数性能提升高达22%。ARM称,"提升 "指的是,这些提升与短时的高性能有关,而短时的高性能最适合反应速度...原创 2020-11-26 16:07:26 · 2879 阅读 · 0 评论 -
ARM发布Cortex-A78参数细节
面向7nm工艺的Cortex-A77架构发布2年多之后,ARM公司今晚正式推出了新一代CPU架构——Cortex-A78,适用于5nm工艺,性能提升20%,功耗则降低了50%。Cortex-A78就是前两年曝光的Hercules(大力神)处理器,这是Austin微架构CPU的第三代产品,已经发展处了Cortex-A76、Cortex-A77及现在的Cortex-A78三代。Cortex-A78架构并没有盲目追求性能提升,因为ARM同时还推出了Cortex-X1全新架构(稍后介绍),它偏向性能提升..原创 2020-11-26 16:05:16 · 9622 阅读 · 0 评论 -
cortex—A7 cortex—A9 cortex—A53
晕了,不去了解就敷衍回答是不负责任的!这里回答的人居然都想当然的回答A9比A7新,A7是刚刚才推出的最新架构,比神马A8,A9,A15,A5都要新,28mm制程,高性能,低功耗。Cortex-A7 处理器是一种高能效应用处理器,除了其他低功耗应用外,还支持低成本、全功能入门级智能手机。该处理器与其他 Cortex-A 系列处理器完全兼容并整合了高性能 Cortex-A15 处理器的所有功能,包括虚拟化、大物理地址扩展 (LPAE) NEON 高级 SIMD 和 AMBA 4 ACE 一致性。单...原创 2020-11-26 16:00:38 · 13007 阅读 · 0 评论 -
Cortex-A9 简介
Cortex-A9处理器能与其他Cortex系列处理器以及广受欢迎的ARM MPCore技术兼容,因此能够很好延用包括操作系统/实时操作系统(OS/RTOS)、中间件及应用在内的丰富生态系统,从而减少采用全新处理器所需的成本。通过首次利用关键微体系架构方面的改进,Cortex-A9 处理器提供了具有高扩展性和高功耗效率的解决方案。利用动态长度、八级超标量结构、多事件管道及推断性乱序执行( Speculative out-of-order execution),它能在频率超过1GHz的设备中,在每个循环中执行原创 2020-11-26 15:49:05 · 3835 阅读 · 0 评论 -
NXP系列芯片程序烧写方法
NXP (恩智浦半导体)是一家新近独立的半导体公司,由飞利浦公司创立,已拥有五十年的悠久历史,主要提供工程师与设计人员各种半导体产品与软件,为移动通信、消费类电子、安全应用、非接触式付费与连线,以及车内娱乐与网络等产品带来更优质的感知体验。 恩智浦半导体以其领先的射频、模拟、电源管理、接口、安全和数字处理方面的专长,提供高性能混合信号(High PerformanceMixed Signal)和标准产品解决方案。这些创新的产品和解决方案可广泛应用于汽车、智能识别、无线基础设施、照明、工业、移动、...原创 2020-11-26 15:44:57 · 7327 阅读 · 1 评论 -
位带操作原理
把每个比特膨胀(映射)为一个32位的字,当访问这些字的时候就达到了访问比特的目的,比如说BSRR寄存器有32个位,那么可以映射到32个地址上,我们去访问(读-改-写)这32个地址就达到访问32个比特的目的。即如果要改写某个寄存器的某一位,通过改写这一位映射的地址即可原理图1原理图2映射对应关系图位带操作的优越性例子sys.h里面对GPIO输入输出部分功能实现了位带操作:#define BITBAND(addr, bit...原创 2020-11-25 17:06:05 · 1047 阅读 · 0 评论 -
cortex 介绍
ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。Cortex系列属于ARMv7架构,这是到2010年为止ARM公司最新的指令集架构。(2011年,ARMv8 架构在 TechCon 上推出)ARMv7架构定义了三大分工明确的系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。由于应用领域不同,基于v7架构的Cortex处理器系列所采用的技术也不相同,基于v7A的称为Co...原创 2020-11-20 14:49:58 · 1503 阅读 · 0 评论 -
十大主流MCU单片机公司汇总
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(TImer)、USB、A/D 转换、UART、PLC、DMA 等周边接口,甚至 LCD 驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC 外围、遥控器,至汽车电子、工业上的步进马达、机器手臂原创 2020-11-20 14:39:05 · 36783 阅读 · 2 评论 -
关于MCU介绍
什么是MCU?MCU,中文简称单片机。即将CPU、存储器(RAM和ROM)、多种I/O接口等集成在一片芯片上,形成的芯片级计算机。CPU:包括运算器、控制器和寄存器组。是MCU内部的核心部件,由运算部件和控制部件两大部分组成。前者能完成数据的算术逻辑运算、位变量处理和数据传送操作,后者是按一定时序协调工作,是分析和执行指令的部件。存储器:包括ROM和RAM。ROM程序存储器,MCU的工作是按事先编制好的程序一条条循序执行的,ROM程序存储器即用来存放已编的程序(系统程序由制造厂...原创 2020-11-20 14:12:42 · 14943 阅读 · 2 评论 -
2020-11-20 STM32无线MCU再添新丁WB35/30
自2018年第一颗无线MCU系列STM32WB问世,STM32便迈入无线进击路。ST不断推出一系列具备强大无线连接能力的STM32产品,全面支持各种短距离(Zigbee、WiFi、蓝牙、Z-wave)、广域网通信标准(LoRa、SigFox、EC-GSM、LTE-M、NB-IoT 等),从产品、模组、封装、安全、认证到软硬件生态系统,ST为物联网应用提供了360度无缝解决方案,助用户顺利在物联网世界里乘风破浪、开疆拓土。▲ ST为物联网连接提供360度无缝解决方案STM32无线MCU现有两条.原创 2020-11-20 12:49:33 · 765 阅读 · 0 评论 -
opencv imshow 图片无法显示, 显示不全问题,只出现一部分
cv::imshow("show", img_float); waitKey(0);原创 2020-04-30 09:52:03 · 2829 阅读 · 0 评论 -
Android Studio 加载第三方C/C++库
1 修改app目录下的CMakeLists.tx添加目标库 add_library( # Sets the name of the library. native-lib # Sets the library as a shared library. SHARED # Provides a ...原创 2020-04-28 12:21:56 · 3728 阅读 · 1 评论 -
C++IDE推荐
1.Visual Studio:无与伦比的 IDE,社区版免费, 其余付费 一提到 IDE 就必须介绍的Microsoft 巨作 总结: 非常智能, 拥有强大的功能, 可以完成基本上所有 C++ IDE 无法完成的任务 优点: 支持远程合作 (Live Share),智能化的代码补全, 具有很强的稳定性,可以进行扩展与自定义...原创 2020-01-07 17:29:25 · 5365 阅读 · 0 评论 -
【C++】预编译、编译、汇编、链接
Windows中以2:2划分内核、用户空间,Linux中以1:3划分内核、用户空间。 在text段中,只有普通局部变量是指令 int gdata1 = 10; //.data 已初始化且初始化不为零的数据int gdata2 = 0; //.bss 未初始化或初始化为零的数据int gdata3; //.bssstatic int gdata4 = 20; //....原创 2018-11-27 09:22:34 · 211 阅读 · 0 评论 -
cc、gcc、g++、CC的区别概括
gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语...原创 2018-11-27 09:28:52 · 810 阅读 · 0 评论 -
g++编译总结
一、编译注意细节1.使用g++编译CPP文件如果用gcc编译C++源文件时,加以下选项:-lstdc++,否则使用了C++操作的文件编译会出错。2.gcc/g++ 在执行编译时,需要4步① 预处理,生成.i的文件[使用-E参数]② 将预处理后的文件不转换成汇编语言,生成文件.s[使用-S参数]③ 有汇编变为目标代码(机器代码)生成.o的文件[使用-c参数]④ ...原创 2018-11-27 09:32:14 · 623 阅读 · 0 评论 -
CMake与Make最简单直接的区别
写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据...原创 2018-11-27 09:41:08 · 204 阅读 · 0 评论 -
CmakeList的编写和参数详解
在linux 下进行开发很多人选择编写makefile 文件进行项目环境搭建,而makefile 文件依赖关系复杂,工作量很大,搞的人头很大。采用自动化的项目构建工具cmake 可以将程序员从复杂的makefile 文件中解脱出来。cmake 根据内置的规则和语法来自动生成相关的makefile 文件进行编译,同时还支持静态库和动态库的构建,我把工作中用到的东东总结在此,方便忘记时随时查看,具体...原创 2018-11-27 09:46:46 · 2510 阅读 · 0 评论 -
【布隆过滤器】实现一个简单的布隆过滤器
原理布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。Bloom Filter 是一种空间效率很高的随机数据结构,Bloom filter 可以看做是对 bit-map 的扩展, 它的原原创 2017-08-16 11:14:38 · 496 阅读 · 0 评论 -
快速排序 quicksort 细节问题
[cpp] view plain copy#include using namespace std; template class ElementType> int QuickPart(ElementType* iArray,int first,int last) { /* 1.将标准记录存储于te原创 2018-01-15 09:37:43 · 282 阅读 · 0 评论 -
iOS App的生命周期
iOS启动原理图具体执行流程12345678910111213141516171819202122- (BOOL)application:(UIApplication *)原创 2018-01-22 09:38:14 · 225 阅读 · 0 评论 -
使用C++ 11 实现阻塞队列
阻塞队列介绍阻塞队列主要用于线程和线程之间的通信。当队列为空时,从队列中获取元素的线程将会被挂起;当队列是满时,往队列里添加元素的线程将会挂起。本文使用C++ 11中的多线程库,实现了一个带有最大容量的阻塞队列。代码使用Visual C++ 2015编写。阻塞队列的实现代码 BlockQueue.hpp[cpp] view plain c原创 2018-01-01 18:58:11 · 1018 阅读 · 0 评论 -
【字符串】字符串转为整数(atoi)
atoi 函数用来将字符串转化为数字的,C++手册上是这样描述的The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an原创 2017-08-14 09:32:10 · 515 阅读 · 0 评论 -
malloc族函数实现
1.介绍What is malloc ? If you don’t even know the name, you might begin to learn C in the Unix environment prior to read this tutorial. For a programmer, malloc is the function to allocate mem原创 2017-08-14 09:04:54 · 486 阅读 · 0 评论 -
STL源码剖析--vector
vector容器概述 vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,原创 2017-08-19 21:46:27 · 310 阅读 · 0 评论 -
C/C++中const关键字
const经常被用到,所以今天总结一下const关键字的用法,常用的场景为修饰变量(C/C++不同),修饰指针和引用,修饰函数参数,修饰函数返回值,修饰函数定义体(类 成员函数)(1)修饰变量cosnt在修饰变量时,在C和C++中是不同的。const int a = 5;int array[a];//在C语言中是错误的,因为在C语言中是定义了一个只读变量int array[原创 2017-08-12 19:11:47 · 317 阅读 · 0 评论 -
Java 本地接口 JNI 使用详解
对于Java程序员来说,java语言的好处和优点,我想不用我说了,大家自然会说出很多一套套的。但虽然我们作为java程序员,但我们不得不承认java语言也有一些它本身的缺点。比如在性能、和底层打交道方面都有它的缺点。所以java就提供了一些本地接口,他主要的作用就是提供一个标准的方式让java程序通过虚拟机与原生代码进行交互,这也就是我们平常常说的java本地接口(JNI——java native原创 2017-08-18 09:08:15 · 364 阅读 · 0 评论 -
【位图】位图实现,处理大数据
定义位图法就是bitmap的缩写。所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。例如,要判断一千万个人的状态,每个人只有两种状态:男人,女人,可以用0,1表示。那么就可以开一个int数组,一个int有32个位,就可以表示32个人。操作的时候可以使用位操作。位图实现unsigned i原创 2017-08-16 11:15:14 · 462 阅读 · 0 评论 -
C/C++开发者必不可少的15款编译器+IDE
Web开发者可选择的编程语言有很多比如,Java、.Net、PHP、Ruby、Perl、Python等等,但是今天我们要讨论的是两个古老且非常流行的语言,即C/C++。正是由于其迷人的特性,赋予了它们更加有效的功能,并且也获得了各大工具厂商的支持。如今,这两门语言依然活跃在编程领域里,其不仅拥有者强大的功能集,而且还提供了强大的安全保障。本文,笔者专为C/C++编码者收集了15款令人印转载 2017-07-18 14:23:25 · 264 阅读 · 0 评论 -
c源文件到执行文件的编译过程
源程序----预编译中间文件---汇编文件----目标文件-----可执行文件. 我们平常运行程序时,只是在终端下直接收入gcc test -o test 就生成了可执行文件,或者直接输入gcc test生成a.out可执行文件,其实计算机是做了好几步工作的.底下我们分解下:第一步 预处理 gcc -E test.c -o t转载 2017-07-19 14:51:18 · 544 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make原创 2017-07-22 20:49:33 · 476 阅读 · 0 评论 -
C++编译器—gcc的用法
在 为Linux /Unix开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux 下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称原创 2017-07-18 18:08:10 · 926 阅读 · 0 评论 -
C++读取以逗号为分隔符的数值
思想:全部读到一个字符串里,遇到","就换成空格,然后用这个字符串构造一个stringstream, 用>>读到数组里。stringstream用法分为istream和ostringstream.1 std::string name("zeta");2 int age = 27;3 4 ostringstream os;5原创 2017-07-20 14:00:57 · 2321 阅读 · 0 评论