自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux_Shell脚本学习第九章-明察秋毫(下)

一、使用logrotate 管理日志文件logrotate能够限制日志文件的大小。系统的日志记录程序将信息添加到日志文件的同时并不会删除先前的数据。日志文件因此会变得越来越大。logrotate命令根据配置文件扫描特定的日志文件。它只保留文件中最近添加的100KB内容(假设指定了SIZE = 100k),将多出的数据(旧的日志数据)不断移入新文件logfile_name.1。当该文件(logfi...

2019-10-10 19:33:59 30

原创 Linux_Shell脚本学习第九章-明察秋毫(上)

一、监视磁盘使用情况du(disk usage)和df (disk free)命令可以报告磁盘使用情况。这两个工具能够统计出文件和目录的磁盘占用情况以及可用的磁盘空间。1.1 du1.1.1 找出某个文件(或多个文件)占用的磁盘空间$ du FILENAME1 FILENAME2 ..要获得某个目录中所有文件的磁盘使用情况,并在每一行中显示各个文件的具体详情,可以使用:$ du -a...

2019-10-10 17:53:04 58

原创 Linux_Shell脚本学习第八章-无网不利(下)

一、在本地挂载点上挂载远程驱动器在执行数据读写操作时,如果可以通过本地挂载点访问远程主机文件系统,那就再好不过了。SSH是网络中常用的文件传输协议。sshfs利用SSH实现了在本地挂载点上挂载远程文件系统。1.1 将位于远程主机上的文件系统挂载到本地挂载点上# sshfs -o allow_other user@remotehost:/home/path /mnt/mountpointPa...

2019-10-10 14:43:18 54

原创 Linux_Shell脚本学习第八章-无网不利(上)

一、网络设置1.1 列出当前的网络接口配置lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:6078 errors:0 dropped:0 overrun...

2019-10-10 13:03:08 87

原创 Linux_Shell脚本学习第七章-归档压缩

一、使用tar归档tar命令可以创建、更新、检查以及解包归档文件。1.1 用tar创建归档文件tar命令可以接受一组文件名或是通配符(如*.txt),以此指定需要进行归档的源文件。命令执行完毕后,所有的源文件都会被归入指定的归档文件中。$ tar -cf output.tar [SOURCES]选项-c表示创建新的归档文件。选项-f表示归档文件名,该选项后面必须跟一个文件名称:$ ...

2019-10-10 09:56:09 59

原创 Linux_Shell脚本学习第四章-让文本飞(下)

一、按列合并多个文件1.1 paste$ paste file1 file2 file3 ...例:$ cat file1.txt12345$ cat file2.txtslynuxgnubashhack$ paste file1.txt file2.txt1 slynux2 gnu3 bash4 hack5默认的分隔符是制表符,也可以用-d指定分隔符...

2019-10-08 16:34:53 38

原创 Linux_Shell脚本学习第四章-让文本飞(上)

一、使用正则表达式1.1 正则表达式的规则1.1.1 位置标记**位置标记锚点(position marker anchor)是标识字符串位置的正则表达式。**默认情况下,正则表达式所匹配的字符可以出现在字符串中任何位置,如下图。1.1.2 标识符标识符是正则表达式的基础组成部分。它定义了那些为了匹配正则表达式,必须存在(或不存在)的字符,如下图。1.1.3 数量修饰符一个标...

2019-10-08 15:42:07 91

原创 Linux_Shell脚本学习第三章-以文件之名(下)

一、使用环回文件1.1 在大小为1GB的文件中创建ext4文件系统1.1 使用dd命令创建一个1GB大小的文件$ dd if=/dev/zero of=loobackfile.img bs=1G count=11024+0 records in1024+0 records out1073741824 bytes (1.1 GB) copied, 37.3155 s, 28.8 MB/s...

2019-10-07 18:41:06 93

原创 Linux_Shell脚本学习第三章-以文件之名(上)

一、生产任意大小的文件包含随机数据的文件可用于测试。你可以使用这种文件测试应用程序效率,确定应用程序没有输入方面的缺陷和大小方面的限制,创建环回文件系统(环回文件自身包含文件系统,这种文件可以像物理设备一样使用mount命令进行挂载)等。Linux提供了一些可用于构建此类文件的实用工具。1.1 dddd命令会克隆给定的输入内容,然后将一模一样的一份副本写入到输出。stdin、设备文件、普通文...

2019-10-07 14:09:06 39

原创 Linux_Shell脚本学习第二章-命令之乐(下)

一、行排序1.1 sort1.1.1 排序一组文件(例如file1.txt和file2.txt)$ sort file1.txt file2.txt > sorted.txt或是$ sort file1.txt file2.txt -o sorted.txt1.1.2 按照数字顺序排序$ sort -n file.txt1.1.3 按照数字顺序排序$ sort -r ...

2019-10-06 14:43:46 72

原创 Linux_Shell脚本学习第二章-命令之乐(上)

一、用cat 进行拼接1.1 读取文件内容1.1.1 打印单个文件的内容$ cat file.txtThis is a line inside file.txtThis is the second line inside file.txt1.1.2 打印多个文件的内容$ cat one.txt two.txtThis line is from one.txtThis line ...

2019-10-05 19:33:53 30

原创 Linux_Shell脚本学习第一章-小试牛刀(下)

一、前言在刚学习shell后不久便利用暑假去实习了一段时间,体验了一下嵌入式BSP开发,刚开学不久,继续开始艰苦的Linux学习之旅。二、调试脚本2.1 启用shell脚本的跟踪调试功能2.1.1 使用选项-x,启用shell脚本的跟踪调试功能$ bash -x script.sh运行带有-x选项的脚本可以打印出所执行的每一行命令以及当前状态。2.1.2 使用set -x和set ...

2019-10-03 18:50:32 48

原创 Linux_Shell脚本学习第一章-小试牛刀(上)

1. Shell脚本简介简单的说,当命令或者程序不在命令行执行,而是通过一个程序文件来执行,这个程序就被称为shell脚本。也就是在shell脚本里内置了多条命令,语句,循环控制,然后将这些命令一次性执行完毕。2. 在终端中显示输出2.1 shell脚本的编写及执行以hello world脚本程序分析#!/bin/bash#only is a test shellecho "h...

2019-04-24 09:11:57 93

原创 Linux下简单Socket编程

1. Linux网络编程与普通程序区别 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 1.1 客户端 主动与与外面的程序通信的程序。 例如使用ftp工具在Linux与Windows传文件时,ftp程序就是一个客户端程序,会去主动通信来获取文件。 1.2 服务器 被动的等待外面的程序来与自己通信的程序。 例如在ftp工具使用过程中,与ftp...

2019-04-21 20:15:02 64

原创 第12课-LCD

注:以下内容学习于韦东山老师arm裸机第一期视频教程参考文章http://www.cnblogs.com/shangdawei/p/4760933.html一.LCD硬件原理    1.1 LCD可以看作是一个电子枪一边移动一边发出颜色                1.1.1 电子枪如何移动?            LCD上有一条CLK信号线,每来一个CLK电子枪就会移动一个像素        ...

2018-06-26 18:30:39 200

原创 小结-2440上NOR和NAND的操作区别

NOR和NAND的操作区别  1. 初始化操作        a.2440没有NOR FLASH控制器,不需要进行初始化操作,2440的地址总线直接与NOR相连(注意2440的bit1连接到NOR的bit0),因此在向NOR发地址的时候需要将地址左移一位发出        b.2440有NAND FLASH控制器,需要对NAND FLASH控制器进行初始化(初始化控制器来设置操作NAND的时序)。...

2018-06-24 13:42:04 157

原创 第11课-NAND FLASH

注:以下内容学习于韦东山老师arm裸机第一期视频教程一.NAND_FLASH操作原理    1.1 NAND FLASH是一个存储芯片        那么: 这样的操作很合理"读地址A的数据,把数据B写到地址A"        问1. 原理图上NAND FLASH和S3C2440之间只有数据线,             怎么传输地址?        答1.在DATA0~DATA7上既传输数据,又传...

2018-06-24 13:37:51 159

原创 第10课-NOR FLASH

    注:以下内容学习于韦东山老师arm裸机第一期视频教程    一.nor Flash原理及硬件操作        使用UBOOT体验NOR FLASH的操作(开发板设为NOR启动,进入UBOOT)        先使用OpenJTAG烧写UBOOT到NOR FLASH        1.1  读数据             md.b 0         1.2 读ID            ...

2018-06-22 18:50:16 299

原创 第9课,按键中断和定时器中断

注:以下内容学习于韦东山老师arm裸机第一期视频教程一.中断的处理    1.1 中断初始化        1.1.1 设置中断源,让他能够发出中断信号      a.以按键中断为例,按键原理图如下,4个按键分别接到EINT0,EINT2,EINT11,ENIT19对应GPF0,GPF2,GPG3,GPG11            b.配置GPFCON,GPGCON使得GPF0,GPF2,GPG3...

2018-06-13 22:56:35 3047

原创 第8课,arm架构的异常与中断

注:以下内容学习于韦东山老师arm裸机第一期视频教程一.arm架构的异常与中断的处理 1.1 ARM对异常的处理流程        1.1.1 初始化            a. 设置中断源,让他可以产生中断            b. 设置中断优先级            c. 设置中断总开关                    1.1.2 正常执行程序            对于不同的异常跳...

2018-06-13 11:21:27 347

原创 第7课,代码重定位

注:以下内容学习于韦东山老师arm裸机第一期视频教程一.段的概念和重定位的引入    1.1 重定位的引入        2440框架图如下                    CPU发出的地址可以直接到达SDRAM,SRAM,NOR但是无法直接到达NAND        因此我们的程序可以直接放在NOR,SDRAM直接运行,假设我们把程序烧录到NAND中,CPU无法直接从NAND取地址运行. ...

2018-06-09 19:04:09 458

原创 第6课,SDRAM

注:以下内容学习于韦东山老师arm裸机第一期视频教程如果想要完全了解SDRAM,参考: 高手进阶,终极内存技术指南-完整/进阶版    一.SDRAM的访问方法        1.1 SDRAM结构图                        a.由4个BANK组成,可以看作是表格            b.里面的每个格子有16位数据(2440接有两片SDRAM,每一片提供16位数据)    ...

2018-06-08 22:54:12 456

原创 第5课,内存控制器

注:以下内容学习于韦东山老师arm裸机第一期视频教程    一.内存接口介绍        1.1 内存控制器的引入            2440是一个SOC,其中外设分为多种类型                1. 门电路类:GPIO               2. 协议类接口: UART I2C SPI            但是对于CPU来说只需要将值写给寄存器,CPU通过地址来区分不同...

2018-06-08 16:52:30 822

原创 第四课,自己实现printf函数

注:以下内容学习于韦东山老师arm裸机第一期视频教程    实现了简单的printf函数,可以实现 %d,%o,%u,%x,%c,%s格式的输出,具体代码如下,已对其中代码大部分进行注释/* my_printf.c */#include "my_printf.h"//=============================================================...

2018-06-06 17:08:56 353

原创 第三课,变参函数的详细分析

注:以下内容学习于韦东山老师arm裸机第一期视频教程一.变参函数分析        我们利用printf函数来搞懂变参函数,我们知道printf函数的原型为        int printf(const char *format, ...);        其中...代表了变参,我们通过printf函数入手来确定固定参数,可变参数,最后引出变参函数。    1.1 确定固定参数参数    固定参...

2018-06-06 16:12:09 104

原创 第二课,2440串口的学习

注:以下内容学习于韦东山老师arm裸机第一期视频教程一.uart(Universal ASynchronous Receiver and Transmitter)简介    1.1 串口的作用        1.1.1 打印调试信息        1.1.2 外接各种模块,例如GPS,蓝牙等        1.2 串口使用        1.2.1 设置波特率        1.2.2 数据格式(...

2018-06-06 15:08:06 95

原创 第一课,ARM芯片的时钟体系

注:以下内容学习于韦东山老师arm裸机第一期视频教程    一. 2440时钟简介        1.1 2440是一个SOC(system on chip)系统,不仅有很多CPU,还有很多外设,在2440芯片手册有系统框架图如下:                            2440框架图中,不仅有CPU,而且有很多外设,其中外设分为两部分,一部分是AHB总线,一部分是APB总线   ...

2018-06-06 10:39:08 2743 2

原创 arm裸机学习预备知识五:解析C程序内部机制

注:以下内容学习于韦东山老师arm裸机第一期视频教程以JZ2440点灯的C程序为例来解析C程序的内部机制    一.JZ2440点灯C程序        1.1 启动代码start.S    .text .global _start _start: ldr sp, =4096 /* main只需要一...

2018-06-05 23:08:24 100

原创 arm裸机学习预备知识三:Makefile

一.Makefile的引入及规则    1.1 在keil,mdk,avr等工具开发程序时点点鼠标就可以编译了,他的内部机制就是使用Makefile来组织管理程序,决定编译哪一个文件.    1.2 如下例:                a.c文件 #include<stdio.h> int main() { ...

2018-06-05 22:29:40 177

原创 arm裸机学习预备知识二:gcc编译器相关知识

    一.编译过程简介         一般C程序编译过程:                    预处理->编译->汇编->链接        1.1 预处理: C/C++源文件中,以#开头的命令被称为预处理命令,包括#include,#define,#if,#endif等。                            预处理就是将要包含的文件插入到源文件中,将宏定...

2018-06-05 15:40:55 91

原创 arm裸机学习预备知识一:arm汇编及机器码

    一.常用arm汇编指令        1.1 ldr,读地址指令            ldr R0,[R1]           假设R1的值是x,那么这条语句:读地址x上的数据(4字节),保存到R0中                1.2 str,写地址指令            str R0,[R1]           假设R1的值是x,把R0的值写到地址x(4字节)       ...

2018-06-05 10:21:47 1272

原创 第27课 - 动态类型识别

第27课 - 动态类型识别    一.动态类型        1.1 由于基类指针可以直接指向派生类对象,因此可能存在指针所指类型与具体指向对象类型不同的情况            Parent* p = new Child();        1.2 动态类型指的是基类指针所指向对象的实际类型         void test(Parent* p) { ...

2018-05-29 17:26:24 101

原创 第26课 - 异常处理 - 下

第26课 - 异常处理 - 下    一.深入异常处理        问题:有时在工程中只关心是否产生了异常,而不关心具体异常的类型,C++语言可以做到吗?                            1.1 C++中的catch语句可以使用...捕获所有的异常            ...作参数表示可变参数函数,可以接受任意参数       Source Example 1.1: ...

2018-05-29 17:26:16 139

原创 第25课 - 异常处理

第25课 - 异常处理    一.异常处理初探        1.1 所有的代码都有可能不按照预定义的方式运行            a.典型问题一:           Source Example 1.1: #include <iostream> /* run this program using the con...

2018-05-29 17:26:07 106

原创 第24课 - 专题四经典问题解析

第24课 - 专题四经典问题解析    一.历史的痕迹       Source Example 1.1: #include <iostream> using namespace std; template<class T> T Minus(T a, T b) { ...

2018-05-28 20:13:36 43

原创 第23课 - STL简介

第23课 - STL简介    一.什么是STL(标准模板库)?        1.1 STL,即Standard Template Library,是C++的一部分        1.2 STL是常用数据结构和算法的集合        1.3 STL的目标是标准化组件,提高开发效率和程序可靠性        二.STL库作为C++的一部分与编译器一同被发布        2.1 STL主要由以下...

2018-05-28 20:08:11 59

原创 第22课 - 类模板 - 下

第22课 - 类模板 - 下    一.类模板的局部特化        1.1 类模板可以定义多个类型参数       Source Example 1.1: #include <iostream> /* run this program using the console pauser or add you...

2018-05-28 20:03:57 51

原创 第21课 - 类模板 - 上

第21课 - 类模板 - 上    一.类模板的引入        1.1. 一些类主要用于存储和组织数据元素            如:数组类,链表类,Stack类,Queue类等等                        C++中可以将模板的思想应用于类,使得类的可以不关注具体所操作的数据类型,而只关注类所需要实现的功能。                1.2 C++中的类模板     ...

2018-05-28 19:50:38 60

原创 第20课 - 函数模板

第20课 - 函数模板    一.C++中如何交换两个变量的值       void swap(int& a, int& b) { int t = a; a = b; b = t; } void swap(float& a, float...

2018-05-28 19:40:49 100

原创 第19课 - 专题三经典问题解析

第19课 - 专题三经典问题解析    一.当多态遇见对象数组会发生什么?                1.1 指针的运算时通过指针的类型进行的,在编译时进行的        1.2 多态通过虚函数表实现的,在程序运行时进行的 Source Example 1: #include <iostream> /* run this program us...

2018-05-28 19:26:26 93

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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