- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 构建Linux根文件系统
构建Linux根文件系统1、基础知识1.1、基本概念In computing, a file system or filesystem controls how data is stored and retrieved. Without a file system, information placed in a storage medium would be one large body ...
2019-04-17 11:25:27
290
原创 uboot源码分析
uboot源码分析1、ARM SOC启动流程BL0:第一阶段启动代码,固化在SOC片内ROM中,不可修改;BL1:上电启动第二阶段,在BL0阶段被加载至SRAM中,对应于u-boot的SPL阶段;BL2:上电启动第三阶段,在BL1阶段被加载至SDRAM中,对应于u-boot的uboot阶段。Created with Raphaël 2.2.0上电启动BL0(IROM)BL0(IROM...
2019-04-03 11:14:45
2404
原创 Ubuntu中安装ROS Kinetic
Ubuntu中安装ROS Kinetic1、概述ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。官网:www.ros.orgWiki:wiki.ros.org/cnBlog:www.ros.or...
2019-03-20 12:44:09
237
原创 Linux内核数据结构——哈希表
Linux内核数据结构——哈希表1、基本概念In computing, a hash table (hash map) is a data structure that implements an associative array abstract data type, a structure that can map keys to values. A hash table uses a ...
2019-03-06 16:49:06
898
原创 valgrind的安装及使用
ubuntu16.04环境下valgrind的安装及使用1、Valgrind简介Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它的主要作者是获得过Google-O’Reilly开源大奖的Julian Seward,它包含一个内核——个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等;Valgrind可以检测内存泄漏和内存违例...
2019-02-22 16:35:47
570
1
原创 设计模式——命令模式
设计模式学习——Command Pattern(命令模式)1、模式定义Command Pattern(命令模式):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。2、结构命令模式包含如下角色:Command: 抽象...
2019-02-18 16:19:08
334
1
原创 设计模式——策略模式
设计模式学习——Strategy Pattern(策略模式)1、模式定义Strategy Pattern(策略模式):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。策略模式是一种对象行为型模式。2、结构策略模式包含如下角色:Context: 环境类Strategy: 抽象策略类Concrete...
2019-02-14 16:35:37
298
1
原创 设计模式——状态模式
设计模式学习——State Pattern(状态模式)1、模式定义State Pattern(状态模式):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。2、结构状态模式包含如下角色:Context: 环境类State: 抽象状态类ConcreteState: 具体状...
2019-02-14 13:48:22
371
1
原创 设计模式——观察者模式
设计模式学习——Observer Pattern(观察者模式)1、模式定义Observer Pattern(观察者模式):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(D...
2019-01-29 14:57:20
279
原创 基类指针调用派生类中定义的方法
基类指针调用派生类中定义的方法1、实例分析class BaseClass{public: BaseClass(); virtual ~BaseClass(); virtual void Operation();};class DerivedClass:public BaseClass{public: DerivedClass(); vir...
2019-01-29 11:05:12
2106
原创 设计模式——单例模式
设计模式学习——Singleton Pattern(单例模式)1、模式定义Singleton Pattern(单例模式):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是一种对象创建型模式。单例模式又名单...
2019-01-22 14:26:14
358
原创 设计模式——建造者模式
设计模式学习——Builder Pattern(建造者模式)1、模式定义Builder Pattern(建造者模式):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生...
2019-01-22 14:25:11
350
原创 设计模式——抽象工厂
设计模式学习——Abstract Factory Pattern(抽象工厂模式)1、模式定义Abstract Factory Pattern(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。2、结构抽象工厂模式包含如下角色:AbstractFactory:抽象工厂ConcreteFactory:...
2019-01-22 14:23:58
403
原创 设计模式——工厂方法模式
设计模式学习——Factory Method Pattern(工厂模式)1、模式定义Factory Method Pattern(工厂方法模式)又称为工厂模式,也叫Virtual Constructor(虚拟构造器)模式或者Polymorphic Factory(多态工厂)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,...
2019-01-22 14:22:05
374
原创 设计模式——简单工厂模式
设计模式学习——Simple Factory Pattern(简单工厂模式)1、模式定义Simple Factory Pattern(简单工厂模式):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。2、结构简...
2019-01-22 14:19:45
422
原创 设计模式——UML类图
设计模式学习——UML类图类之间的关系1、Generaliaztion(泛化关系)泛化关系用一条带空心箭头的直线表示;类的继承结构表现在UML中为Generalization和Realize;如下例中“SUV”继承自“小汽车”。2、Realize(实现关系)实现关系用一条带空心箭头的虚线表示;实现关系表现为继承抽象类;如下例中“小汽车”和“自行车”都继承自“车”。3、A...
2019-01-22 14:15:20
559
原创 设计模式——基础知识
设计模式学习——基础知识GoFGang of Four(GoF(“四人帮”))——Erich Gamma,Richard Helm, Ralph Johnson ,John Vlissides面向对象六大原则Single Responsibility Principle(单一原则)Liskov Substitution Principle(里氏替换原则)Dependence In...
2019-01-22 14:10:45
377
原创 可变参数函数
可变参数(va)函数va函数的定义和va宏VA函数(variable argument function),参数个数可变函数,又称可变参数函数。/* va函数原型声明格式 */type va_function(tpye arg1, type arg2, ...);/****************************************** 1、至少有一个固定参数; 2、...
2019-01-08 17:53:39
1456
原创 c库打印函数
函数#include<stdio.h>int printf(const char *format, ... );/* [until c99]写结果到stdout */int printf(const char *restrict format, ... );/* [since c99] */int fprintf(FILE *stream, const char *format...
2019-01-08 10:12:40
1398
1
原创 ubuntu16.04安装最新版本python3.7.1
ubuntu16.04安装最新版本python3.7.11、安装编译环境sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-...
2018-12-01 21:27:57
2808
原创 ldd学习笔记系列之二
基础知识主设备号和次设备号#include <linux/types.h>dev_t /* 主设备号:12bit,次设备号:20bit */MAJOR(dev_t dev);/* 获取主设备号 */MINOR(dev_t dev);/* 获取次设备号 */MKDEV(int major, int minor);/* 组合设备编号 */#include <lin...
2018-11-30 23:04:27
435
原创 ldd学习笔记系列之一
预备知识头文件#include <linux/module.h> //可装载模块需要的大量符号和函数定义#include <linux/init.h> //指定初始化和清楚函数#include <linux/moduleparam.h> //装载模块时向模块传递参数#include <linux/kernel.h> /* printk()...
2018-11-30 23:02:15
501
原创 linux数据结构——链表
linux内核数据结构——链表源码分析重要宏定义#ifndef offsetof#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)#endif#ifndef container_of/** * container_of - cast a member of a structure out t...
2018-11-30 22:42:09
454
原创 Git局域网服务器搭建
Git局域网服务器搭建1.安装环境cat /proc/version2.安装Git和SSHsudo apt-get install git openssh-server openssh-clientsudo service ssh restart3.增加git用户sudo useradd git4.客户端安装gitwindows版或linux版5.客户端创建密匙及...
2018-11-30 22:39:53
966
原创 gdb调试基本方法
gdb调试基本方法gdb调试常用命令命令命令缩写命令说明listl显示多行源代码breakb设置断点infoi描述程序的状态displaydisp跟踪查看某个变量printp打印内部变量值framef查看栈帧backtracebt查看函数调用信息watch 监视变量值的变化set v...
2018-11-30 22:31:44
515
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人