自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力学习的花椰菜的博客

一个努力的小菜鸟

  • 博客(39)
  • 收藏
  • 关注

原创 【操作系统】第三章:连续式内存分配

3.1 计算机体系结构及内存分布体系计算机体系结构/内存分层体系地址空间&地址生成连续内存分配(1)操作系统要完成的目标抽象:逻辑地址空间保护:独立地址空间共享:访问相同内存虚拟化:更多的地址空间(2)操作系统实现内存管理目标的手段程序重定位分段分页虚拟内存按需分页虚拟内存·(3)实现高度依赖于硬件必须知道内存框架MMU(内存管理单元):硬件组件负责处理CPU的内存访问请求3.2地址空间与地址生成(1)地址空间定义物理地址空间-----

2021-03-17 22:12:37 211 1

原创 【操作系统】第二章:操作系统基础操作

2.1操作系统的启动启动计算机体系结构概述计算机内存和硬盘布局开机顺序中断、异常和系统调用背景中断、异常和系统调用相比较中断和异常处理机制系统调用概念系统调用的实现程序调用与系统调用的不同之处开销(1) (2)DISK:存放OS(3)BIOS:存放I/O处理系统·(4)BIOS:加载OS到内存中。(5)POST(加电自检)寻找显卡和执行BIOS(6)系统调用(来源与应用程序):应用程序主动向操作系统发出服务请求(7)异常(来源于不良的应用程序):非法指令或者其

2021-03-13 09:00:27 234

原创 【操作系统】 第一章:概述

本博客为B站 陈渝老师课程总结。B站地址:https://www.bilibili.com/video/av6538245?from=search&seid=436175425155932048

2021-03-03 21:11:23 228 1

原创 做一直努力的井底之蛙

青蛙坐在井里。小鸟飞来了,落在井沿上。青蛙问小鸟:“你从哪儿来呀?”小鸟回答说:“我从天上来,飞了一百多里,口渴了,下来找点儿水喝。”青蛙说:“朋友,别说大话了!天不过井口那么大,还用飞那么远吗?”小鸟说:“你弄错了。天无边无际,大得很哪!”青蛙笑了,说:“朋友,我天天坐在井里,一抬头就能看见天。我不会弄错的。”小鸟也笑了,说:“朋友,你是弄错了。不信,你跳出井来看一看吧。”-------------->>人民教育出版社二年级上册语文教科书第12课的课文从前啊,有一直小青蛙,在

2021-02-25 23:16:05 239

原创 《C陷阱和缺陷》读书总结随笔

《C陷阱和缺陷》读书总结随笔简介第一章 词法缺陷1.=不是==2.&和|不是&&和||3.贪心法第二章 句法缺陷1.运算符并不总是具有你所想象的优先级2.switch语句3.函数调用第三章 链接第四章 语义缺陷1.表达式求值顺序2.C 并不总是转换实参待续第五章 库函数1.返回整数的getchar函数第六章 预处理器1.宏不是函数第七章 可移植性缺陷第八章 这里是空闲空间简介进行对一些比较经典的书籍进行阅读,练习自己的内功,因为博主比较菜,所以近期会对一些书籍进行全面的总结,欢迎

2020-10-04 12:21:35 363

原创 嵌入式-ARM-学习总结(11):ADC

嵌入式-ARM-学习总结(11):ADC一、ADC1.什么是ADC2.什么是DAC二、ADC的相关概念1.量程2.精度(分辨率resolution)3.转换速率(MSPS与conventor clock的不同)4.通道数三、S5PV210的ADC1. 时钟2.主要寄存器3.代码一、ADC1.什么是ADCADC:analog digital converter,AD转换,模数转换(也就是模拟转数字)模拟:就是连续的,现实生活当中的时间、电压、高度等都是模拟的(连续分布的,划分的话可以无限的更小划分)。

2020-08-29 16:27:41 2554

原创 嵌入式-ARM-学习总结(10):IIC

嵌入式-ARM-学习总结(10):IIC一、什么是IIC1.IIC总线2.IIC总线接口一、什么是IIC1.IIC总线IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。2.IIC总线接口物理接口:SCL + SDA...

2020-08-24 21:20:37 665

原创 嵌入式-ARM-学习总结(9):SD卡

嵌入式-ARM-学习总结(9):SD卡一、SD卡1.SD模式2.SPI通信协议(SPI总线)二、SD卡启动详解1.SD卡与SoC的关系2.SD卡启动的难点3.扇区和块的概念一、SD卡SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。1.SD模式(1)驱动模式SD卡有两种驱动模式:SPI模式与SDIO模式。它们所使用的接口信号是不同的。在SPI模式下,只会用到SD卡的4根信

2020-08-22 12:13:51 604

原创 嵌入式-ARM-学习总结(8):定时器

嵌入式-ARM-学习总结(8):定时器一、定时器1.什么是定时器2.定时器有什么用3.定时器的原理4.与定时器有关的器件(1)PWM定时器(2)系统定时器(3)看门狗(4)实时时钟RTC(real time clock)5.PWM定时器6.看门狗一、定时器1.什么是定时器定时器是SoC的常见外设(1)定时器和计数器。计数器是用来计数的(每隔一个固定时间会计一个数);因为计数器的计数时间周期是固定的,因此到了一定时间只要用计数值x计数时间周期,就可以得到一个时间段,这个时间段就是我们定的时间(这就是定

2020-08-21 10:58:24 5716

原创 嵌入式-ARM-学习总结(7):按键与中断

嵌入式-ARM-学习总结(7):按键与中断一、按键1.S5PV210的按键2.按键的2中相应方法:轮询方式和中断方式3.按键对应的GPIO模式设置4.轮询方式处理按键的程序流程5.代码编写6.按键消抖二、中断1.什么是中断2.为什么需要中断3.异常向量表4.异常和中断的区别和联系5.为什么中断处理要先在汇编中进行6.中断的基本过程7.S5PV210中断处理的主要寄存器三、中断代码(1)绑定中断异常向量表(2)初始化中断控制器的基本寄存器(3)绑定我们写的isr到VICnVECTADDR寄存器(4)使能中断(

2020-08-19 12:01:26 4815

原创 嵌入式-ARM-学习总结(6):串口通信UART

嵌入式-ARM-学习总结(6):串口通信UART一、通信的基本概念1.同步通信和异步通信2.电平信号和差分信号3.并行接口和串行接口4.单工通信和双工通信二、串口通信的基本概念1.串口通信的特点:异步、电平信号、串行2.RS232电平和TTL电平3.波特率4.起始位、数据位、奇偶校验位、停止位4.说说串口通信5.信息在信道上传输方式6.FIF0模式及其作用7.DMA模式及其作用8.IrDA模式及其用法三、配置串口寄存器1.配置前的准备2.配置发送一、通信的基本概念1.同步通信和异步通信(1)同步和异步

2020-08-17 13:17:03 3339 2

原创 嵌入式-ARM-学习总结(5):时钟

嵌入式-ARM-学习总结(5):时钟一、时钟系统1.什么是时钟?2.时钟的一般获取方法3.时钟和系统性能的关系、超频、稳定性4.时钟和外设编程的关联5.时钟和功耗的关系二、S5PV210时钟系统1.时钟域2.S5PV210时钟域详解3.S5PV210时钟关键性寄存器三、S5PV210时钟初始化一、时钟系统1.什么是时钟?时钟是同步工作系统的同步节拍,各个部分通过这个节拍来完成协调一致,从而实现协调配合。SoC内部有很多器件,例如CPU、串口、DRAM控制器、GPIO等内部外设,这些要实现协同工作,需

2020-08-14 16:01:55 2247

原创 嵌入式-ARM-学习总结(4):重定位

嵌入式-ARM-学习总结(4):重定位一、重定位1.重定位是什么2.位置无关编码与位置有关编码3.为什么需要重定位呢4.链接地址和运行地址5.重定位的使用6.例子:二、链接脚本1.链接脚本2.源码到可执行程序的步骤3.链接脚本要做什么一、重定位一般学习一个知识点,需要知道是什么,在什么情况下用,怎么用。这三步走,即可把一个知识点吃透。那重定位是什么呢?1.重定位是什么重定位实际上就是在运行一段位置无关码PIC,让这段PIC(也就是重定位代码)从运行地址处把整个程序镜像拷贝一份到链接地址处,完了之后

2020-08-12 15:19:06 1376

原创 嵌入式-ARM-学习总结(3):汇编启动,设置栈,调用C语言

嵌入式-ARM-学习总结(3):汇编启动,设置栈,调用C语言一、C语言运行时需要和栈的意义1.栈2.CPU模式和各种模式下的栈3.查阅文档并设置栈指针至合法位置二、汇编程序和C程序互相调用一、C语言运行时需要和栈的意义1.栈C语言运行时,由汇编来提供条件,主要是需要栈。C语言与栈的关系:C语言的局部变量是用栈来实现的。如果汇编部分没有给C部分预设合理合法的栈地址,那么C代码定义的局部变量就会落空,整个程序就会崩溃。我们平时在编写单片机程序(譬如51单片机)或者编写应用程序时并没有去设置栈,但是C程

2020-08-11 17:30:31 505

原创 嵌入式-ARM-学习总结(2):点亮LED,我是嵌入式点灯工程师!

嵌入式-ARM-学习总结(2):点亮LED,我是嵌入式点灯工程师!一、通过GPIO控制点亮LED1.**LED点亮的原理:**2.GPIO是什么一、通过GPIO控制点亮LED首先说一下LED这个外设,相信都是从点灯开始的,从51,到stm32,到fpga,到现在这篇写的ARM。LED作为一个简单的,直观的外设,可以让新手快速切入到对于开发板内部的理解。1.LED点亮的原理:D26是指示电源状态,只要上电就会常亮。D22:GPJ0_3D23:GPJ0_4D24:GPJ0_5D25:PWMTO

2020-08-10 21:32:02 2697

原创 Makefile介绍

Makefile介绍一 、Makefile是什么二 、什么场景下用Makefile三 、Makefile中的一些基本概念四 、一个简单的Makefile例子一 、Makefile是什么Makefile是用来管理工程的。二 、什么场景下用Makefile在一个正式的项目中,由很多个.c和.h文件构成,此时如果直接在命令行编译,就会像这样:gcc a.c b.c c.c d.c e.c f.c g.c -o exe每次编译都要输入一堆东西很麻烦,这个问题严重影响工作效率,需要使用Makefile来解决

2020-08-09 16:42:18 255

原创 嵌入式-ARM-学习总结(1):初识ARM

嵌入式-ARM-学习总结(1):初识ARMARM的特点冯诺依曼结构与哈佛结构内存与外存S5PV210的启动过程ARM的7种工作模式ARM汇编指令集8种寻址方式ARM的特点ARM采用RISC架构,CPU本身不能直接读取内存(需要借助内部寄存器对外部内容进行读取。当要改变外部内存中的数据时,首先需要将外部内存中的数暂时读到内部寄存器并进行改写,再重新放回到外部内存中)。冯诺依曼结构与哈佛结构程序和数据都放在内存中,且不彼此分离的结构称为冯诺依曼结构。譬如Intel的CPU均采用冯诺依曼结构程序和数据分

2020-08-07 15:47:14 1054

原创 杂谈,程序员

跟大家分享一篇小学二年级的文章:小马过河小马过河马棚里住着一匹老马和一匹小马。有一天,老马对小马说:“你已经长大了,能帮妈妈做点事吗?”小马连蹦带跳地说:“怎么不能?我很愿意帮您做事。”老马高兴地说:“那好哇,你把这半口袋麦子驮到磨坊去吧。”小马驮起麦子,飞快地往磨坊跑去。跑着跑着,一条小河挡住了去路,河水哗哗地流着。小马为难了,心想:我能不能过去呢?如果妈妈在身边,问问她该怎么办,那多好哇!他向四周望望,看见一头老牛在河边吃草。小马嗒嗒嗒跑过去,问道:“牛伯伯,请您告诉我,这条河,我能蹚过去吗

2020-08-02 16:38:25 353

原创 Linux-应用编程-学习总结(5):线程

Linux-应用编程-学习总结(5):线程线程线程线程与进程的比较:有进程有线程,肯定是相互之后各有优势进程的优势:(1)实现CPU的分时复用,单核心CPU可以实现宏观上的并行(2)实现多任务系统需求()...

2020-08-02 14:34:38 146

原创 Linux-应用编程-学习总结(4):进程间通信(下)

Linux-应用编程-学习总结(4)前言信号特点信号的状态常见信号信号常用的函数alarm函数信号的捕捉守护进程进程组会话实现一个守护进程前言这次接着总结进程间通信——信号。^ ~ ^之前总结了,匿名管道pipe,有名fifo,内存映射区mmap。这次总结信号。信号特点简单携带的信息量少使用在某个特定的场景中信号的状态产生:键盘,比如ctrl+c命令:kill系统函数:kill软条件:定时器硬件:段错误通过 man 7 siganl可以查看man文档概念:阻塞信号

2020-07-28 14:22:15 166

原创 Linux-应用编程-学习总结(3):进程间通信(上)

Linux-应用编程-学习总结(3)前言进程间通信相关概念管道管道的概念管道的原理管道的局限性创建匿名管道fifo(有名管道)特点使用场景创建方式内存映射区前言这次对进程间通信进行总结。^ ~ ^上一篇文章以及介绍完了进程的创建,进程的性质,进程的5种状态,改变进程中程序的办法(exec族函数),对进程回收的方法(wait函数)但是我们可以发现,在进程与进程间的交流,也就是通信还没有了解。这篇文章,将详细的讲述进程间通信的各种方式。进程间通信相关概念什么是IPCIPC就是进程间通信的英文缩写

2020-07-25 14:18:51 185

原创 Linux-应用编程-学习总结(2):进程详解

Linux-应用编程-学习总结(2)进程相关概念PCB进程的5种状态fork函数ecec函数进程回收这次对进程进行总结。^ ~ ^进程相关概念程序和进程程序:二进制文件,占用的磁盘空间进程:启动的程序所有的数据都在内存中需要占用更多的系统资源并行和并发上图中,第一个是并发。一个处理器(CPU),处理多个进程。第二个是并行。PCBPCB是什么呢?是进程控制块在操作系统中,用进程控制块数据结构来描述进程。进程的5种状态好了,看了怎么多基础知识,那代码是怎么样生成进程的呢?

2020-07-23 18:39:22 168

原创 Linux-应用编程-学习总结(1):应用编程

Linux-应用编程-学习总结(1)Linux-应用编程:文件IO虚拟地址空间虚拟地址的好处:linux常用文件IO接口阻塞和非阻塞stat/lstat函数dup/dup2函数Linux-应用编程:文件IO虚拟地址空间先说一说虚拟地址空间这个概念。Linux每一个运行的程序(进程)操作系统都会为其分配一个0~4G的地址空间(虚拟地址空间),利用虚拟内存技术让每个进程都有4GB互不干涉的虚拟地址空间;虚拟地址的好处:避免用户直接访问物理内存地址,防止一些破坏性操作,保护操作系统。每个进程都被分

2020-07-21 10:40:45 659

原创 linux--基本篇--学习笔记(3):gdb调试

linux--基本篇--学习笔记(3)gdb调试gdb调试进行gdb调试是在Linux下进行程序开发的常用操作。如:gcc a.c b.c c.c -o appgcc a.c b.c c.c -o app -g-g 会保留函数名和变量启动gdbgdb可执行程序的名字a. gdb appb.给程序传参:set args xxx xxx查看代码-list当前文件:l非当前文件:l:行号断点操作:-break/b设置断点:b 行号b 函数名b 文件名:行号b文

2020-07-17 15:47:11 138

原创 STL学习总结(2):deque,stack,queue,list,set与map

STL学习总结(2)一、deque容器初始化赋值 大小操作deque容器插入和删除二、stack容器三、queue容器一、deque容器双端数组特性总结:双端插入和删除元素效率较高。指定位置插入也会导致数据元素移动,降低效率。可随机存取,效率高.初始化#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <deque>using namespace std;void PrintDeque(

2020-07-16 16:49:10 288

原创 STL学习总结(1):string与vector

STL学习总结(1)STL(Standard Template Library,标准模板库)STL从广义上分为:容器(container)算法(algorithm)迭代器(iterator).在我们 STL 中容器分为:序列式容器和关联式容器。学习STL,需要了解主要容器的特性,以及常用API。、STL基本语法 :...

2020-07-14 13:52:27 200

原创 c++学习总结(5):模板与类型转换

C++学习总结(5)一、纯虚函数和抽象类纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本纯虚函数为个派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分)语法: virtual 类型 函数名(参数表) = 0;完全可以把纯虚函数当做接口。如果一个类中拥有一个纯虚函数,就称这个类是一个抽象类。看一个例子:#define _CRT_SECURE_NO_WARNINGS#include <iostream>using names

2020-07-11 12:08:56 3141 1

原创 c语言知识点————函数指针

最近对C语言的指针进行复习,对函数指针进行总结。函数指针(指向函数的指针)定义函数指针变量的方式有三种:第一种:先定义函数类型,根据类型定义指针变量。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>int fun(int a){ printf("a ========== %d\n", a); return 0;}i

2020-07-08 17:37:54 288

原创 c++学习总结(4):继承与多态

C++学习总结(4)一、继承和派生类有一种继承的方式,很有趣。一般继承是公有继承。继承的方式有三种:公有继承(public),保护继承(protected),私有继承(private)。.publicprotectedprivate公有继承publicprotected不可见保护继承protectedprotected不可见私有继承privateprivate不可见public:类的内部可以访问。类的外部可以访问protected:类的内

2020-07-06 15:52:03 453

原创 c++学习总结(3):友员与操作符重载

C++学习总结(3)一、友员函数 friend友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函 数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上 关键字 friend。#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cmath>using namespace std;class Point;class PointManager {pu

2020-07-03 16:10:08 174

原创 c++学习总结(2):类

C++学习总结(2)一、内联函数inline 关键字内联函数由 编译器处理,宏代码片段 由预处理器处理#include <iostream>#include <string.h>using namespace std;#if 0优点: 内嵌代码, 辟免压栈与出栈的开销缺点: 代码替换, 易使⽣成代码体积变⼤, 易产⽣逻辑错误。#endif#define SQR(x) ((x)*(x))#if 0 优点: ⾼度抽象, 避免重复开发 缺点: 压栈与出栈,

2020-06-30 14:52:10 165

原创 c++学习总结(1):c++增强

C++学习总结(1)一、C++对C语言的加强命名空间 namespace所谓namespace,是指标识符的各种可见范围可自行定义namespace,namespace相当于给{}起了名字,方便使用。代码如下:#include <iostream>//using namespace std;using std::count;using std::cin;namespace spaceA{ int g_a = 10;}int main(void){ int a

2020-06-24 15:10:30 197

原创 C语言,##与#在宏定义中的用法

##与#在宏定义中的用法最近在项目中,看到了##,与#在宏定义中的用法,现在对这个知识点进行总结。一般用法:使用#把宏参数变成字符串使用##把两个宏参数贴在一起实例程序:#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <stdio.h>#include <string.h>#define STRCPY(a,b) strcpy(a##_d,#b)int main(void)

2020-05-24 11:22:35 256

原创 ubuntu字符界面与图形界面切换

ubuntu字符界面与图形界面切换有些时候,在使用ubuntu时,不小心切换到字符界面会有习惯的感觉。下面介绍字符界面与图形界面互相切换的命令。快捷键Ctrl +Alt +F2切换到字符界面Ctrl +Alt +F7切换到图形界面使用以上快捷方式就可以实现,字符界面与图形界面互相切换。...

2020-05-18 12:15:42 1173

原创 linux--基本篇--学习笔记(2):vim与gcc

linux 基础学习vim的三种工作模式命令模式编辑模式末行模式vim命令模式保存退出:ZZ代码格式化:gg=G(代码变整齐)光标的移动:上下左右man1可执行程序或shell命令2系统调用(内核提供的函数)3库调用(程序库中的函数)4特殊文件(通常位于/dev)命令模式切换到文本编辑模式a:从光标后开始插入字符A:行尾i:光标前插入I:行...

2020-03-26 14:52:26 125

原创 Linux—基本篇—学习笔记(1):Linux下的文件

Linux下文件或目录颜色一般情况颜色类型白色普通文件绿色可执行文件红色压缩文件蓝色目录青色链接文件黄色设备文件灰色其他文件根目录下常见目录/bin: binary,二进制文件,可执行程序,shell命令/dev: device,在Linux下一切皆文件/lib: ...

2020-03-25 20:11:45 135

原创 VMware虚拟机长时间不用,再次开机启动出现内部错误的解决办法

VMware虚拟机长时间不用,再次开机启动出现内部错误的解决办法用系统管理员身份运行VMware,再次启动就不会出现错误。

2020-03-18 20:09:16 1033

原创 开启博客之旅

大家好,我是努力的花椰菜接下来的一段时间我会去分享我这段时间所学习的心得与体会本人还是一个没有入门的技术小白,欢迎大家的来提意见与指正我的错误。...

2020-03-15 21:51:42 96

翻译 欢迎使用CSDN-markdown编辑器sfsdsdfdsf

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-03-07 20:00:53 106

空空如也

空空如也

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

TA关注的人

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