自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 补基础之shell和makefile

1. shell介绍1.1. shell是操作系统的命令行(1)shell可以理解为软件系统提供给用户操作的命令行界面,可以说它是人机交互的一一种方式。(2)我们可以使用shell和操作系统、uboot等软件系统进行交互。具体来说就是我们通过shell给软件系统输入命令然后回车执行,执行完成后我们又会回到shell命令行可以再次输入命令执行。(3)上述的操作方式一般情况下很好上述的...

2018-10-25 23:14:10 240

原创 C语言高级篇 - 9.其他

1.操作系统究竟是个什么玩意?1.1、像人类社会一样的计算机软件系统(有些人只埋头干活,有些人只做管理)        (1)人类社会最开始时人人都干活,这时候没有专业分工,所有人都直接做产生价值的工作。当时是合适的,因为当时生产力低下,人口稀少。这就像裸机程序一样(裸机程序的特点是:代码量小,功能简单、所有代码都和直接目的有关,没有服务性代码)。        (2)后来人口增加生产...

2018-10-21 14:58:56 1668

原创 C语言高级篇 - 8.语言宏定义与预处理、函数和函数库

1.C语言预处理理论1.1、由源码到可执行程序的过程        (1)源码.c->(编译)->elf可执行程序        (2)源码.c->(编译)->目标文件.o->(链接)->elf可执行程序        (3)源码.c->(编译)->汇编文件.S->(汇编)->目标文件.o->(链接)->elf...

2018-10-21 14:57:13 589

原创 C语言高级篇 - 7.指针

1、指针使用三部曲:定义指针变量、关联指针变量、解引用        (1)当我们int *p定义一个指针变量p时,因为p是局部变量,所以也遵循C语言局部变量的一般规律(定义局部变量并且未初始化,则值是随机的),所以此时p变量中存储的是一个随机的数字。        (2)此时如果我们解引用p,则相当于我们访问了这个随机数字为地址的内存空间。那这个空间到底能不能访问不知道(也许行也许不行)...

2018-10-18 21:32:11 368

原创 C语言高级篇 - 6.数组&字符串&结构体&共用体&枚举

1.程序中内存从哪里来11.1、程序执行需要内存支持()对程序来说,内存就是程序的立足之地(程序是被放在内存中运行的);程序运行时需要内存来存储一些临时变量。1.2、内存管理最终是由操作系统完成的(1)内存本身在物理上是一个硬件器件,由硬件系统提供。(2)内存是由操作系统统一管理。为了内存管理方便又合理,操作系统提供了多种机制来让我们应用程序使用内存。这些机制彼此不同,各自有各...

2018-10-15 23:18:39 375

原创 C语言高级篇 - 5.内存

1、冯诺依曼结构和哈佛结构     (1)冯诺依曼结构是:数据和代码放在一起。     (2)哈佛结构是:数据和代码分开存在。     (3)什么是代码:函数     (4)什么是数据:全局变量、局部变量     (5)在S5PV210中运行的linux系统上,运行应用程序时:这时候所有的应用程序的代码和数据都在DRAM,所以这种结构就是冯诺依曼结构;在单片机中,我们把程序代码...

2018-09-18 21:11:32 352

原创 C语言高级篇 - 4.链表&状态机与多线程

1.链表的引入1、从数组的缺陷说起        (1)数组有2个缺陷,一个是数组中所有元素的类型必须一致;第二个是数组的元素个数必须事先制定并且一旦指定之后不能更改。        (2)如何解决数组的2个缺陷:数组的第一个缺陷靠结构体去解决。结构体允许其中的元素的类型不相同,因此解决了数组的第一个缺陷。所以说结构体是因为数组不能解决某些问题所以才发明的。        (3)如...

2018-09-18 21:09:57 753

原创 C语言高级篇 - 3.存储类&作用域&生命周期&链接属性

1.概念解析1.1、存储类        (1)存储类就是存储类型,也就是描述C语言变量在何种地方存储。        (2)内存有多种管理方法:栈、堆、数据段、bss段、.text段······一个变量的存储类属性就是描述这个变量存储在何种内存段中。        (3)譬如:局部变量分配在栈上,所以它的存储类就是栈;显式初始化为非0的全局变量分配在数据段,显式初始化为0和没有显...

2018-09-09 11:50:20 165

原创 C语言高级篇 - 2.C语言位操作

1、位操作符        (1)位与&        (2)位或|        (3)位取反~        (4)位异或^位与、位或、位异或的特点总结:位与:(任何数,其实就是1或者0)与1位与无变化,与0位与变成0位或:(任何数,其实就是1或者0)与1位或变成1,与0位或无变化位异或:(任何数,其实就是1或者0)与1位异或会取反,与0位异或无变化...

2018-09-02 15:32:04 2156

原创 C语言高级篇 - 1.C语言复杂表达式和指针高级应用

1.指针数组与数组指针1.1、字面意思来理解指针数组与数组指针(1)指针数组的实质是一个数组,这个数组中存储的内容全部是指针变量。(2)数组指针的实质是一个指针,这个指针指向的是一个数组。 1.2、分析指针数组与数组指针的表达式(1)int *p[5]; int (*p)[5];    int *(p[5]);(2)一般规律:int *p;(p是一个指针); int p...

2018-07-29 14:40:23 2450

原创 C语言基础补充 - 5.C语言中头文件.h的格式

 自定义头文件通常放在使用该头文件的源文件所在的目录中,并使用 #include "MyHead.h" 来包含。        头文件是不编译的,因为C语言编译过程之前有个预编译过程。在这个过程中用头文件中的内容替换源文件中“#include”命令,所以在编译器看来,没有头文件,只有源文件。预编译过程还包括条件编译。         头文件为了防止被重复包含,通常的格式是:      ...

2018-07-23 20:38:40 553

原创 C语言基础补充 - 4.指针与++ --符号进行运算

指针本身也是一种变量,因此也可以进行运算。但是因为指针变量本身存的是某个其他变量的地址值,因此该值进行* / %等运算是无意义的。两个指针变量相加本身也无意义,相减有意义。指针变量+1,-1是有意义的。+1就代表指针所指向的格子向后挪一格,-1代表指针所指向的格子向前挪一格。 *p++就相当于*(p++),p先与++结合,然后p++整体再与*结合。*p++解析:++先跟p结合,但是因为...

2018-07-22 14:59:45 518

原创 C语言基础补充 - 3.多文件C语言项目

1、简单的C语言程序(项目)只有一个C文件(a.c),编译的时候gcc a.c -o a,执行的时候./a2、复杂的C语言程序(项目)是由多个C文件构成的。譬如一个项目中包含2个c文件(a.c, b.c),编译的时候 gcc a.c b.c -o ab,执行的时候 ./ab 实验:在a.c和b.c中分别定义main函数,各自单独编译时没问题;但是两个文件作为一个项目来编译gcc...

2018-07-22 14:57:13 446

原创 C语言基础补充 - 2.变量和常量以及嵌入式中常用的关键字

1、变量变量,指的是在程序运行过程中,可以通过代码使它的值改变的量。1.1、局部变量定义在函数中的变量,就叫局部变量。1.1.1、普通局部变量(auto)普通的局部变量定义时直接定义,或者在定义前加auto关键字 void func1(void){ int i = 1;  i++;  printf("i = %d.\n", i);}局部变...

2018-07-22 14:41:25 242

原创 C语言基础补充 - 1.Linux下C语言写代码步骤

第一步:编辑源代码(使用vi或者其他编辑器)第二步:编译。编译就是用编译器把源程序转化成可执行程序的过程,编译要用到编译器。我们在linux中使用编译器一般是gcc。譬如:gcc hello.c 把当前目录下hello.c文件编译,得到的可执行文件名字叫a.out也可以自己指定编译后生成的可执行程序的名字,使用gcc hello.c -o hello第三步:执行编译生成的可执行程序...

2018-07-22 13:57:44 320

原创 VMWare共享文件夹使用

当我们裸机安装了Windows,并且在Windows中安装了虚拟机软件VMWare,并且在虚拟机中安装了ubuntu后。我们一般在Windows中编辑源代码,而在linux中编译、执行源代码。这时候就需要在Windows和linux之间进行交互。 怎么来进行交互呢?之前通过smb服务器,现在通过VMWare的共享文件夹就可以轻松实现。怎么建立Windows的共享文件夹? 第一步:先...

2018-07-22 13:41:13 1438

原创 ARM裸机-14.shell原理和问答机制引入

16.1.shell是什么鬼16.1.1、壳与封装(1)shell就是壳的意思,在计算机中经常提到shell是用户操作接口的意思。(2)因为计算机程序本身很复杂,里面的实现和外面的调用必须分开。接口本身就是对内部复杂的实现的一种封装,外部只需要通过接口就可以很容易的实现效果,但是却不用理会内部实现的复杂性和原理。16.1.2、程序或操作系统的用户接口(1)操作系统运行起来后都会给用户提供一个操作界...

2018-06-13 23:20:56 245

原创 ARM裸机-13.LCD

1.LCD简介1.1、什么是LCD?        (1)LCD(Liquid Crystal Display)俗称液晶.        (2)液晶是一种材料,液晶这种材料具有一种特点:可以在电信号的驱动下液晶分子进行旋转,旋转时会影响透光性,因此我们可以在整个液晶面板后面用白光照(称为背光),可以通过不同电信号让液晶分子进行选择性的透光,此时在液晶面板前面看到的就是各种各样不同的颜色,这就是LC...

2018-06-12 23:40:35 363

原创 ARM裸机-12.ADC

1.ADC的引入1.1、什么是ADC        (1)ADC:analog digital converter,AD转换,模数转换(也就是模拟转数字)        (2)CPU本身是数字的,而外部世界变量(如电压、温度、高度、压力···)都是模拟的,所以需要用CPU来处理这些外部的模拟变量的时候就需要做AD转换。1.2、为什么需要ADC        (1)为了用数字技术来处理外部的模拟物理...

2018-05-31 23:17:43 284

原创 ARM裸机-11.I2C通信

1.什么是I2C通信1.1、物理接口:SCL + SDA        (1)SCL(serial clock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道。        (2)SDA(serial data): 数据线,通信数据都通过SDA线传输1.2、通信特征:串行、同步、非差分、低速率        (1)I2C属于串行通信,所有的数据以位为单位在SDA线上串行传输。...

2018-05-20 15:59:55 250

原创 ARM裸机-10.NandFlash和iNand

1.NandFlash的接口1.1、Nand的型号与命名        (1)Nand的型号命名都有含义,就拿K9F2G08来示例分析一下:K9F表示是三星公司的NandFlash系列。2G表示Nand的大小是2Gbit(256MB)。08表示Nand是8位的(8位就是数据线有8根)        (2)Nand命名中可以看出:厂家、系列型号、容量大小、数据位数。1.2、Nand的数据位     ...

2018-05-04 00:04:39 262

原创 ARM裸机-9.SD卡启动详解

1.主流的外存设备介绍        内存和外存的区别:一般是把这种RAM(random access memory,随机访问存储器,特点是任意字节读写,掉电丢失)叫内存,把ROM(read only memory,只读存储器,类似于Flash SD卡之类的,用来存储东西,掉电不丢失,不能随机地址访问,只能以块为单位来访问)叫外存1.1、软盘、硬盘、光盘、CD、磁带        (1)存储原理大...

2018-05-02 23:27:14 1263

原创 ARM裸机-8.定时器、看门狗和RTC

1.什么是定时器(timer)1.1、定时器是SoC中常见外设(1)定时器与计数器。计数器是用来计数的(每隔一个固定时间会计一个数);因为计数器的计数时间周期是固定的,因此到了一定时间只要用计数值×计数时间周期,就能得到一个时间段,这个时间段就是我们定的时间(这就是定时器了)。(2)定时器/计数器作为SoC的外设,主要用来实现定时执行代码的功能。定时器相对于SoC来说,就好象闹钟相对于人来说意义一...

2018-04-26 21:33:24 685

原创 ARM裸机-7.按键和CPU的中断系统

1.什么是按键1.1、按键的物理特性(1)、平时没人按的时候,弹簧把按键按钮弹开。此时内部断开的。(2)、有人按下的时候,手的力量克服弹簧的弹力,将按钮按下,此时内部保持接通(闭合)状态;如果手拿开,则弹簧作用下按钮又弹开,同时内部又断开。(3)、一般的按键都有4个引脚,这4个引脚成2对:其中一对是常开触点(像上面描述的不按则断开,按下则闭合);一对是常闭触点(平时不按时是闭合的,按下后是断开的)...

2018-04-14 13:36:52 484

原创 ARM裸机-6.串口通信详解

1.通信涉及的几个基础概念1.1、通信的发展历史(1)、最早通信:烽火台、狼烟;信件;电子通信(电报、电话、网络信号)(2)、通信中最重要的两个方面:信息表示、解析方法 + 信息的传输方法(3)、通信双方事先需要约定好信息的表示方法和解析方法,做到一致,否则信息不能有效传递(4)、信号的传输方法是指经过编码后的通信信息如何在传输介质上传输的过程。总结:通信过程其实分为3个步骤:首先发送方先按照信息...

2018-04-06 20:02:21 396

原创 最近的情况和总结

最近这两个月怠慢了好多,过完年感觉整个人都懒了,基本上状态就是工作也不想干,书也不想看,游戏也不想玩,电视剧和动漫业不想看的迷之状态,我都不知道这俩月都干了个什么.....好了该振作起来了,在这么下去,人真的就要废了。先说说最近的情况吧;最近终于忙完了一个棘手的项目,公司的一个老项目升级,看别人的代码真的是想死的感觉,以后写代码一定要把注释写好,方便后面维护的人修改。最近办公室有两个厉害的家伙辞职...

2018-04-06 16:35:26 197

转载 虚拟机linux上网问题

1、虚拟机linux上网问题1.1、VMware中虚拟机网络的三种设置第一种:桥接(bridged)第二种:NAT第三种:Host only 。该模式下仅主机可以上网,虚拟机不能上网。1.2、虚拟机上网方式1:NAT方式设置步骤:第一步:在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择NAT模式第二步:

2018-01-27 19:03:17 192

原创 Linux基础-4.常用命令

1、ls (list、列表)     作用:使用列表把当前文件夹下所有文件显示出来             ls -a     显示所有文件, 包括隐藏文件             ls -l      已详细信息显示             ls -a -l             ls -l -a             ls -la  

2018-01-27 19:02:27 242

原创 Linux基础-3.编辑器vi的使用(vi和vim的联系)

1、 编辑器vi的使用(vi和vim的联系)       什么是编辑器?编辑器就是一款软件,它的主要作用就是用来编辑。譬如编写文件,编写代码。       Windows中的常用编辑器,如自带的notepad。比较好用的notepad++,UltraEditor,SlickEditor       Linux中常用编辑器,自带的最古老的vi。比较好用的vim,g

2018-01-27 18:58:46 254

转载 Linux-vi 高亮设置,显示行号,自动对齐,

1,打开vimrc文件# vi ~/.vimrc2.如果没有该文件则新建一个.vimrc文件3.在文件中添加添加一行:syntax on4,保存退出设置永久显示行号,需要修改vi的配置文件。打开vi的配置文件~/.vimrc,在其中输入set nu即可。:syntax on        #开启语法高亮显示:set

2018-01-27 18:56:56 1373

原创 Linux基础-2.linux中权限表示&管理

1、普通用户与特权用户 su命令切换用户Windows中有普通用户和特权用户,特权用户是Administrator,普通用户可以有很多个。特权用户是系统的管理员,对系统内所有文件具有操作权限。每个普通用户只能处理自己的文件,不能访问其他用户的文件,更不能随意处理操作系统的文件。Linux中也有普通用户和特权用户的区别。特权用户就是root用户。普通用户权限受到限制,譬如说普

2018-01-27 18:54:28 196

转载 Ubuntu vi 上下左右变ABCD问题解决方法

错误问题:vi上下左右键显示为ABCD的问题解决方法: 只要依次执行以下两个命令即可完美解决Ubuntu下vi编辑器方向键变字母的问题。  一.执行命令 sudo apt-get remove vim-common  二.执行命令 sudo apt-get install vim

2018-01-27 18:53:16 224

原创 Linux基础-1.Linux终端快捷操作汇总

移动定位光标在终端中移动光标和定位似乎非常不便,其实不是你想的那样,有很多种方式可以让键盘成为你的好朋友,只是需要掌握正确的方法而已。定位单词在长段的命令中,使用 Ctrl + ← 和 Ctrl + → 可快速将光标定位到命令中单词的首字母或末尾,实现在各单词之间的快速跳动定位。你可以试着在终端中输入 apt-get install build-essential

2018-01-27 18:52:27 151

原创 ARM裸机-5.时钟系统

1.SoC时钟系统简介1.1、什么是时钟?SoC为什么需要时钟?(1)时钟是同步工作系统的同步节拍。(2)SoC内部有很多器件,譬如CPU、串口、DRAM控制器、GPIO等内部外设,这些东西要彼此协同工作,需要一个同步的时钟系统来指挥。这个就是我们SoC的时钟系统。1.2、时钟一般如何获得(1)SoC的时钟获得一般有:    * 外部直接输入时钟信号

2018-01-27 17:02:03 361

原创 ARM裸机-4.SDRAM和重定位relocate

1.汇编写启动代码之关看门狗1.1、什么是看门狗?    看门狗(watch dog timer 看门狗定时器)。大家想象这样一个场景:家门口有一只狗,这个狗定时会饿(譬如说2小时一饿),够饿了会胡乱咬死人。人进进出出要想保证安全必须提前喂狗(必须在上次喂过后的2小时内喂狗才行)。如果超时没喂狗就会被咬死,如果提前喂狗没关系,但是本次喂狗时间就会从这里开始计算。    现实

2018-01-21 22:03:06 292

转载 64 位操作系统装 dnw_driver 驱动

由于 Windows 64 位操作系统在默认状态下,对于没有数字签名的驱动程序是不能安装成功的。所以在安装驱动前,需要按照如下步骤,暂时跳过数字签名,即可顺利安装成功。以 win10 为例。     首先进入 Windows “设置”界面,点击“更新和安全”。    在“更新和安全”,选择“恢复”属性页中“高级启动”项下面的“立 即启动”按钮。(win7/win8 系统的这个选

2018-01-06 15:19:30 749

原创 ARM裸机-3.GPIO和LED

1.裸机实验体验之usb启动配合dnw工具下载    1.1、背景知识介绍    回顾S5PV210的启动方式,必须将OM5打到VCC,才能从USB启动。    S5PV210的启动过程:开机时先执行内部的iROM中的BL0,然后BL0做了一系列的初始化后,再读取外部OMpin的设置来确定用户选择了从哪里启动。当检测到我们设置的是USB启动时,S5PV210就会从USB OTG接口试图

2018-01-06 14:51:55 352

原创 ARM裸机-2.如何在开发板上刷系统

一.开发板刷系统1    1、什么是刷系统    刷系统就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。    2、串口输出的意义(做系统控制台)    串口是一种硬件通信口,很多年前的时候串口是CPU之间进行通信的主要接口。但是现在因为串口通信的速度很低,所以现在串口主要是用来做程序输出监控、调试。    桌面电脑可以打开一个虚拟控制台,嵌入式系

2018-01-03 23:23:31 1856

原创 ARM裸机-1.ARM体系结构和简单的汇编指令

一、一些专业术语        ROM:read only memory 只读存储器        RAM:ramdom access memory 随机访问存储器        IROM:internal rom 内部ROM,指的是集成到SoC内部的ROM        IRAM:internal ram 内部RAM,指的是集成到SoC内部的RAM        DRAM:d

2018-01-03 21:46:27 321

原创 嵌入式的学习规划

规划

2017-12-24 12:52:49 568

RTD2270程序和烧写工具

乐华2270烧写全套,程序和烧写工具都在里面。

2019-03-04

空空如也

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

TA关注的人

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