自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 leetcode:判断二叉树是否平衡

判断平衡二叉树平衡二叉树的定义:任意节点的子树的高度差都小于等于1的二叉数被称为平衡二叉树。算法大致思路:由于要判断任意节点的子树高度差,所以可以递归判断每一个节点的左子树和右子树高度差是否小于等于1在实现“判断每一个节点的左子树和右子树高度差是否小于等于1”之前,首先要学会另一道题常见的算法题:如何判断子树的最大高度?int height(struct TreeNode* root){ if(root==NULL)//递归结束的条件 return 0; int

2020-06-11 18:19:29 339

原创 linux低级字符驱动开发例子详细分析

本文实现的是一个低级驱动开发案例。简单通过编写内核驱动模块由开发板(sp6818)的按键key控制板子led灯大致流程如下编写驱动文件keyled.c编写应用文件app.c编写makefilemake制作出.ko文件将.ko移至开发板中insmod 将设备加入驱动序列中mknod /dev/keyled c 87 0 将主设备号与节点相关联驱动文件编写//keyled.c#include <linux/kernel.h> // printk #include &l

2020-06-04 11:26:59 249

原创 浅谈进程的创建函数fork

浅谈进程的创建函数forkfork函数fork函数是最常用的进程创建的函数,它从一个已知的进程中创建一个新的进程,新进程即为子进程,原来的进程即为父进程。函数基本的用法如下pid_t pid=fork();if(pid < 0){ //进程创建失败 perror("fork"); return -1;}else if(pid == 0){ //pid==0为子进程 printf("child");}else{ //pid>0为

2020-05-26 16:44:16 226

原创 c++设计及模式:简单的饿汉单例模式

文档:c++设计及模式:简单的饿汉单例模式本文部分转载于https://blog.csdn.net/u010993820/article/details/80968933https://blog.csdn.net/hechao3225/article/details/71366058C++实现单例模式的一般方法是将构造函数,拷贝构造函数以及赋值运算符函数声明成private,从而禁止他人创建实例。否则如果上面三者不为私有,那么他人就可以调用上面的三个函数来创建实例,就没法实现单例模式。但是我们总归是

2020-05-26 11:40:28 216

转载 中断和轮询的差别

中断的基本概念程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为相应的服务程序去处理,这个过程称为程序中断。二、80x86微处理器的中断 80x86微处理器的中断类型一般分为2类,即由于执行某些指令引起的软中断和由处理器以外其他控制电路发出中断请求信号引起的硬中断。 CPU要从主程序转入中断服务程序,必须知道该中断服务程序的入口地址,即中断向量。80x86为CPU的PC机共有256个中断向量。中断的一般过程:主程

2020-05-22 18:02:18 1285

原创 软中断的初步理解

软中断的一种典型应用就是所谓的"下半部"(bottom half),它的得名来自于将硬件中断处理分离成"上半部"和"下半部"两个阶段的机制:上半部在屏蔽中断的上下文中运行,用于完成关键性的处理动作;而下半部则相对来说并不是非常紧急的,通常还是比较耗时的,因此由系统自行安排运行时机,不在中断服务上下文中执行。bottom half的应用也是激励内核发展出的软中断机制的原因。软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和"信号"有些类似,同时,软中断又是和硬中断

2020-05-22 14:00:18 600

原创 uboot移植记录(简单配置)

uboot是一种bootloader,是一个裸机代码 ,作用是用于启动linux,初始化内核,把内核镜像(zimage)从EMMC拷贝到DDR中。uboot是.bin文件a. 工具链准备先将arm-eabi-4.8.tar.bz2拷至/usr/local/arm/解压在当前目录: tar xvfj arm-eabi-4.8.tar.bz2b. 准备工程#mkdir /opt/mkplat#mkdir /opt/mkplat/build_uboot#cd /opt/mkplat/build_.

2020-05-22 11:07:14 268

转载 linux内核移植

1.内核配置过程分析1.前言1、linux内核五大功能:进程管理(cpu)内存管理(内存)设备管理(驱动)网络管理(网络协议tcp/ip)文件系统(vfs)2、linux版本号:linux 2.6 2—>主版本号 6---->次版本号:奇数代表测试版本 偶数代表稳定版本本文使用内核版本为linux3.143、linux目录结构:arch:体系结构相关代码ipc:进程调度相关代码mm:内存管理Documentation:帮助文档net:网络协议lib:库scri

2020-05-22 09:36:21 298

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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