Herok

精通C/C++/linux 微信公众号herok,欢迎关注,定期推送技术干货

人工智能之字符识别

1 概述 上篇文章讲解了PCA主成分分析,这篇文章使用该训练模型实现验证码识别,同时作者也会提供全部源代码。希望能够帮助到大家。 2 图像原理 在计算机图形学里,位图就是一个像素的矩阵,矩阵中的每一个点都是各种颜色的点,最后总体上来看就是一副图像。如何显示每一个像素的具体颜色,有很多种颜色空间,最...

2019-01-15 17:51:32

阅读数:655

评论数:0

平衡二叉树

上篇文章分析了二叉结构,这篇文章讲解平衡二叉树(AVL),有二叉树就能够实现基本的算法结构,为什么还需要引入平衡二叉树呢,下面看一个二叉树示例。按照二叉排序树格式插入序列{1,2,3,4,5,6,7,8,9},如果不进行旋转将得到图 1中链式存储格式,当需要查找数字9需要比对9次,经过旋转后将的到...

2019-01-11 14:28:34

阅读数:40

评论数:0

二叉树排序

1 树的概念 树是一种数据结构,其中一个元素可以有两个或者多个数据元素,具有一对多的特点,用树结构来存储文件。树的基本概念如下: 结点的度:子结点的个数。 树的度:树的度等于所有结点度中度最高的值。 叶子结点:度为0的结点,即没有子结点的结点。 分支结点:除了叶子结点以外的结点,即度不为...

2018-12-19 15:18:47

阅读数:56

评论数:2

解读gcc和g++编译器分别对c与c++文件影响

概述 为什么需要解读gcc/g++编译器对c/c++文件的影响呢?由于系统内核一般是使用C语言来编写的,系统内核中用C语言实现了很多库。而上层应用程序有可能是用C++来开发,如果在内核库函数头文件中不用extern“C”来声明库函数的话,在编写C++应用程序时,包含库头文件,在C++文件链接时就会...

2018-12-19 15:17:09

阅读数:317

评论数:4

欢迎关注个人公众号

欢迎关注个人公众号,定期推送技术干货,项目架构。公众号:herok。   最新文章最先在公众号上推送,csdn博客更新时间比较慢。

2018-12-01 15:42:50

阅读数:220

评论数:0

往linux内核函数挂钩子

概述 本文讲解替换一个已经在内存中的函数,使得执行流流入我们自己的逻辑,然后再调用原始的函数。比如有个函数叫做funcion,而你希望统计一下调用function的次数,最直接的方法就是如果有谁调用function的时候,调到下面这个函数就好了。 void new_function() { ...

2018-11-28 14:10:10

阅读数:191

评论数:0

从cpu角度理解PCIe续集

概述 上篇文章剩下两个问题,上电扫描PCIe树和存储地址到PCIe地址的映射,本篇文章将对这两个问题做出解答。本文可能会针对某一款芯片做出详细流程解答,读者可以只关注整个流程,具体映射机制和寄存器参考芯片datasheet。上篇文章已经了解到如何访问配置空间,前256Bytes可以通过寄存器方式访...

2018-11-07 13:06:41

阅读数:308

评论数:2

从cpu角度理解PCIe

概述 为什么需要写这篇文章,当我阅读《深入浅出SSD》这篇书籍中PCIe章节时发现,本书籍的侧重点是放在PCIe控制器和PCIe协议上,从CPU角度理解PCIe知识偏少,本文对下面几个知识点做出一些补充。 CPU访问外设寄存器与内存编址方式; CPU如何访问PCIe配置空间; CPU能够通过...

2018-10-24 10:34:53

阅读数:463

评论数:0

浅谈CPU寻址内存机制

本文讲解的内容是Processor如何访问内存,TLB Cache和MMU的在Processor中扮演的角色。涉及的硬件平台是Xilinx Zynq-7000,dual-core ARM® Cortex-A9 MPCore,架构是armv7,下面分别对TLB、MMU、Processor如何访问ca...

2018-10-07 10:49:57

阅读数:696

评论数:0

QT封装exe和安装包详解

1. 前言 Qt 是 1991 年由奇趣科技开发的跨平台 C++图形用户界面应用程序开发框架。它既可以开发 GUI 程式,也可用于开发非 GUI 程式,比如控制台工具和服务器。Qt 是面向对象的框架。相比较Microsoft的mfc框架,我推荐使用Qt平台。 2 搭建Hello工程 2.1 ...

2018-09-29 13:52:20

阅读数:945

评论数:0

Cache地址映射

  理解Cache地址映射之前补充一些基础知识,Cache的地址映射和MMU(内存管理单元)和TLB Cache(转译查找缓存)中的映射是有区别的。Cache、TLB Cache、MMU在CPU中结构如图1所示,图1展现的是Cortex A9 Processor内部结构,采用的指令和数据总线分开的...

2018-09-01 15:17:35

阅读数:808

评论数:0

几行C代码剖析Cache参数

Cache的容量一般都很小,即使是最大的三级 Cache(L3)也只有20MB ~30MB。cache加快了CPU对内存的读写速率,CPU第一次执行需要将数据时候需要从主存-->L3 Cache--->L2 Cache -->L1 ...

2018-08-20 16:31:34

阅读数:665

评论数:0

深入浅出cache写策略

随着计算机行业的飞速发展,CPU的速度和内存的大小都发生了翻天覆地的变化,在处理器速度不断增加的形势下,处理器处理数据的能力也得到大大提升。数据是存储在内存中的,内存吞吐率虽然得到很大的提升,但是相对于处理器来讲,仍然非常慢。处理器要从内存中直接读取数据都要花大概几百个时钟周期,在这几百个时钟周期...

2018-08-20 16:25:47

阅读数:833

评论数:0

CPU性能发展所遇到的瓶颈

通常一个处理器通常包含多个核心(Core),集成 Cache 子系统,内存子系统通过内部或外部总线与其通信。在经典CPU中一般有两个常用的组件:北桥(North Bridge)和南桥(SouthBridge)。它们是处理器和内存以及其他外设沟通的渠道。图1给出了处理器、内存、南北桥以及其他总线之间...

2018-08-13 14:15:17

阅读数:1199

评论数:0

Source Insight 4.0 完美破解

安装程序下载 在官网上下载Source Insight 4.0的安装程序. 30天的试用安装 首次启动选择授权方式,这里选择第二个选项,30天试用。   image.png 点击下一步,输入名称、公司或组织名称、邮箱信息,申请30天的试用。 输入完成后,点击下一步,直到安装完成。 ...

2019-01-05 09:55:41

阅读数:73

评论数:1

CentOS 7 上设置 grub2启动项

红色部分就是传递给内核的参数,一般只需要修改该选项就可以。   1. 开机选单是自动创建出来的 请勿尝试手动编辑开机选单,因为它是按照 /boot/ 目录内的文件自动创建出来的。然而你可以调整 /etc/default/grub 档内定义的通用设置,及在 /etc/grub.d/40_cus...

2018-12-19 10:56:27

阅读数:187

评论数:0

Linux服务器ssh维护

网络上的服务器很容易受到攻击,最惨的就是被人登录并拿到root权限。有几个简单的防御措施: 1. 修改ssh服务的默认端口。 ssh服务的默认端口是22,一般的恶意用户也往往扫描或尝试连接22端口。所以第一步就是修改这个默认端口 打开/etc/ssh/sshd_config,找到 Port 2...

2018-12-19 10:50:18

阅读数:128

评论数:0

Windows远程连接Linux界面

使用VNC连接,最简单. 首先在linux端键入命令安装vncserver sudo yum -y install *vnc*.x86_64 然后键入命令设置vncserver密码 vncpasswd 然后键入命令来查看当前的vncserver端口 vncserver 可以看到类似下面的显示...

2018-12-19 10:40:52

阅读数:138

评论数:0

使用C++为对象分配与释放内存时的几个好习惯

在默认情况下,也就是不存在 operator new 的重载时,new一个自定义类型 ClassA 的对象时,C++ 会先调用 malloc 来申请一块 sizeof(ClassA) 大小的内存(操作系统会记录这块内存的首地址与大小),然后调用 ClassA 的构造函数在这块内存上初始化对象。此时...

2018-11-14 16:32:15

阅读数:170

评论数:0

如何在CentOS 7中安装内核头文件

在本文中,我们将解释如何使用默认包管理器从基本存储库中安装CentOS / RHEL 7和Fedora发行版中的内核头文件。 当您在CentOS系统上编译自定义内核模块(如设备驱动程序)时,您需要在系统上安装内核头文件,其中包括Linux内核的C头文件。 内核头文件在安装或编译任何与内核接口的代...

2018-11-12 16:39:43

阅读数:214

评论数:0

提示
确定要删除当前文章?
取消 删除