自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ARM_C高级笔记目录

ARM_C笔记目录ARM_C学习笔记(零)指针与数组.ARM_C高级学习笔记(二)程序获取内存的方式-栈、堆、数据区.ARM_C高级学习笔记(三)C语言中的字符串类型.ARM_C高级学习笔记(四)结构体详解.ARM_C高级学习笔记(五)共用体.ARM_C高级学习笔记(六)大端模式和小端模式.ARM_C高级学习笔记(七)枚举.ARM_C高级学习笔记(八)宏定义和预处理.ARM...

2020-04-04 14:52:05 469

原创 linux应用编程与网络编程笔记

linux应用编程与网络编程笔记目录Linux应用编程与网络编程笔记(1)文件IO及简单的文件读写.Linux应用编程与网络编程笔记(2)lseek/dup/dup2函数介绍.Linux应用编程与网络编程笔记(3)文件属性.Linux应用编程与网络编程笔记(4)时间的概念/linux中的时间函数.Linux应用编程与网络编程笔记(5)linux中获取随机数.Linux应用编程与网络编程笔记(6)proc文件系统介绍....

2020-09-12 18:01:26 161

原创 Linux应用编程(2)lseek/dup/dup2函数介绍

lseek函数1.lseek函数介绍/* *@pram: fd :文件描述符 * offset :偏移量 * whence :偏移开始的位置 (SEEK_SET / SEEK_CUR / SEEK_END) *@return value :offset到文件末尾的字节数 */off_t lseek(int fd, off_t offset, int whence);文件指针:当我们要对一个文件进行读写时,一定需要先打开这个文件,所以我们读写的所有文件都是

2020-09-08 22:09:20 483

原创 linux应用编程笔记(6)proc文件系统介绍

目录proc文件系统介绍(用于调试)1. 操作系统级别的调试2. proc虚拟文件系统的工作原理3. 常用proc中的文件介绍4. proc文件系统的使用5. 扩展:sys文件系统proc文件系统介绍(用于调试)1. 操作系统级别的调试简单程序单步调试复杂程序printf打印信息调试框架体系日志记录信息调试内核调试的困境2. proc虚拟文件系统的工作原理linux内核是一个非常庞大、非常复杂的一个单独的程序,对于这样的一个程序来说调试是非常复杂的。像kernel这样庞大的项目,给里

2020-09-08 22:07:19 214

原创 linux应用编程笔记(5)linux中获取随机数

目录linux中使用随机数1. 随机数和伪随机数2.linux中随机数相关API3.rand/srand函数4.在linux系统中获取真正的随机数linux中使用随机数1. 随机数和伪随机数随机数:随机数是随机出现,没有任何规律的一组数列。伪随机数:真正的完全随机的数列是不存在的,只是一种理想情况。我们平时要用到随机数时一般只能通过一些算法得到一个伪随机数序列。我们平时说到随机数,基本都指的是伪随机数。2.linux中随机数相关API连续多次调用rand函数可以返回一个伪随机数序列sr

2020-09-08 21:46:36 362

原创 linux应用编程笔记(4)时间的概念/linux中的时间函数

目录(一)关于时间的概念UTC和GMT时间linux系统中的时间1.jiffies的引入2.linux系统如何记录时间3.linux中时间相关的系统调用(二)linux中的时间函数timectimegmtime/localtimemktimeasctimestrftimegettimeofday/settimeofday(一)关于时间的概念UTC和GMT时间每个地区都有自己的本地时间,在网上以及无线电通信中时间转换的问题就显得格外突出。整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线

2020-09-07 23:09:30 228

原创 linux应用编程(3)文件属性

文件属性1.linux中各种文件类型[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kEYc944a-1599229470040)(C:\Users\Hua~\AppData\Roaming\Typora\typora-user-images\1599227447327.png)]普通文件(- regular file)文本文件: 文件中的内容是由文本构成的,文本指的是ASCII码字符。文件里的内容本质上都是数字(不管什么文件内容本质上都是数字,因为计算机中本身就只有

2020-09-06 16:37:25 232

原创 linux应用编程(1)文件IO及简单的文件读写

文章目录(一)什么是文件IO(二)文件操作的主要接口API1.什么是操作系统API2.linux常用文件IO接口(三)文件操作的一般步骤(四)重要概念:文件描述符1.打开文件与关闭文件2.实时查man手册3.读取文件内容4.向文件中写入(六)open函数的flag详解1.读写权限:O_RDONLY O_WRONLY O_RDWR2.打开存在并有内容的文件时:O_APPEND、O_TRUNC3.ex...

2020-04-13 12:10:41 808

原创 智能汽车竞赛Infineon_TC264学习笔记

文章目录外部中断GPIO外部中断配置中断服务函数初始化外部中断函数串口(uart)串口初始化STM(系统定时器)STM初始化ADCADC初始化笔记基于龙邱科技发布的英飞凌TC264视频外部中断GPIO外部中断配置tc264的GPIO外部中断,分为4组,每组对应上面一个中断函数,每组一次只能使用其中的一个PIN口。/* GPIO外部中断 */IFX_INTERRUPT(PIN_...

2020-04-11 23:48:22 14799 2

原创 windows电脑重装系统(看这一篇就够了)

文章目录电脑装机教程前言必看:==重中之重 !!!==准备工作第一步:制作微PE启动盘第二步:下载windows系统镜像第三步:进入微PE系统方法1:快捷启动按键方法2:BIOS更改启动顺序方法3:在windows系统中进入第四步:安装系统方法1:CGI备份还原方法2:windows安装器到这里重装系统就基本完成参考资料电脑装机教程前言必看:重中之重 !!!重装系统之前,电脑数据一定要备份...

2020-04-10 19:58:54 16959 4

原创 ARM_C高级学习笔记(十四)双链表算法之插入、删除、遍历节点

文章目录(一)双链表的引入和基本实现1.单链表的局限性2.解决思路:有效数据+2个指针的节点(双链表)(二)双链表的封装和编程实现(三)双链表的算法之插入节点1.尾部插入2.头部插入(四)双链表的算法之遍历节点(五)双链表的算法之删除节点(一)双链表的引入和基本实现1.单链表的局限性单链表是对数组的一个扩展,解决了数组的大小比较死板不容易扩展的问题。使用堆内存来存储数据,将数据分散到各个节...

2020-04-10 16:06:56 278

原创 ARM_C高级学习笔记(十三)单链表插入、遍历、删除、逆序节点

文章目录(一)链表的引入1.从数组的缺陷说起2.链表是什么样的?3.时刻别忘了链表是用来干嘛的(二)单链表的实现1.单链表的节点构成2.堆内存的申请和使用3.链表的头指针4.访问链表中各个节点的数据5.实战:构建一个简单的单链表6.将创建节点的代码封装成一个函数(三)单链表的算法-插入节点1.从链表尾部插入新的节点1.头节点引入1.什么是头节点2.从链表头部插入新的节点(四)单链表的算法-遍历节点...

2020-04-06 17:38:25 382

原创 ARM_C高级学习笔记(十二)main函数的返回值以及传参

文章目录(一)main函数返回给谁?1.函数为什么需要返回值2.main函数被谁调用?3.linux下一个新程序执行的本质4.实践验证获取main的返回值(二)argc、argv与main函数的传参1.谁给main函数传参2.为什么需要给main函数传参?3.表面上:给main传参是怎样实现的?4.本质上:给main传参是怎样实现的?5.给main传参要注意什么6.实例(一)main函数返回给谁...

2020-04-04 17:30:19 478

原创 ARM_C高级学习笔记(十一)void类型的本质与NULL

文章目录(一)void类型的本质1.C语言属强类型语言2.数据类型的本质含义3.void类型的本质4.为什么需要void类型(二)C语言中的NULL1.NULL在C/C++中的标准定义2.为什么需要NULL3.注意不要混用NULL与'\0'(一)void类型的本质1.C语言属强类型语言编程语言分2种:强类型语言和弱类型语言。 强类型语言中所有的变量都有自己固定的类型,这个类型有固定的内存占...

2020-04-04 11:58:55 268

原创 8086寄存器与寻址方式

这学期在学微机原理与接口技术,把8086的寄存器和寻址方式以思维导图的方式总结了一下

2020-04-03 16:11:31 368

原创 ARM_C高级学习笔记(十)储存类、作用域、生命周期、链接属性

文章目录概念解析存储类相关的关键字autostaticregisterexternvolatilerestricttypedef作用域详解局部变量的代码块作用域函数名和全局变量的文件作用域变量的生命周期研究变量生命周期的意义栈变量的生命周期堆变量的生命周期数据段、bss段变量的生命周期代码段、只读段的生命周期链接属性C语言程序的组织架构:多个C文件+多个h文件编译以文件为单位、链接以工程为单位三种...

2020-04-02 20:38:10 230

原创 ARM_C高级学习笔记(九)函数库

文章目录函数库什么是函数库?函数库的提供形式:动态链接库与静态链接库函数库中库函数的使用自己制作静态链接库并使用自己制作动态链接库并使用函数库什么是函数库?函数库就是一些事先写好的函数的集合,给别人复用。函数是模块化的,因此可以被复用。我们写好了一个函数,可以被反复使用。也可以A写好了一个函数然后共享出来,当B有相同的需求时就不需自己写直接用A写好的这个函数即可。函数库的提供形式:动...

2020-04-01 23:28:19 697

原创 ARM_C高级学习笔记(八)宏定义和预处理

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

2020-03-31 22:42:59 669

原创 ARM_C高级学习笔记(七)枚举

(一)枚举是用来干嘛的?枚举在C语言中其实是一些符号常量集。直白点说:枚举定义了一些符号,这些符号的本质就是int类型的常量,每个符号和一个常量绑定。这个符号就表示一个自定义的一个识别码,编译器对枚举的认知就是符号常量所绑定的那个int类型的数字。枚举中的枚举值都是常量,怎么验证?枚举符号常量和其对应的常量数字相对来说,数字不重要,符号才重要。符号对应的数字只要彼此不相同即可,没有别的要求...

2020-03-30 22:05:21 291

原创 ARM_C高级学习笔记(六)大端模式和小端模式

(一)什么是大小端模式大端模式(big endian)和小端模式(little endian)。最早是小说中出现的词,和计算机本来没关系的。后来计算机通信发展起来后,遇到一个问题就是:在串口等串行通信中,一次只能发送1个字节。这时候我要发送一个int类型的数就遇到一个问题。int类型有4个字节,我是按照:byte0 byte1 byte2 byte3这样的顺序发送,还是按照byte3 byt...

2020-03-30 22:04:42 887

原创 ARM_C高级学习笔记(五)共用体

(一)共用体类型的定义、变量定义和使用共用体union和结构体struct在类型定义、变量定义、使用方法上很相似。共用体和结构体的不同:结构体类似于一个包裹,结构体中的成员彼此是独立存在的,分布在内存的不同单元中,他们只是被打包成一个整体叫做结构体而已;共用体中的各个成员其实是一体的,彼此不独立,他们使用同一个内存单元。可以理解为:有时候是这个元素,有时候是那个元素。更准确的说法是同一个内存...

2020-03-30 22:04:08 252

原创 ARM_C高级学习笔记(四)结构体详解

(一)结构体概述结构体类型是一种自定义类型(C语言中的2种类型:原生类型和自定义类型。)结构体使用时先定义结构体类型再用类型定义变量两种定义结构体的方式第一种结构体定义时需要先定义结构体类型,然后再用类型来定义变量。第二种也可以在定义结构体类型的同时定义结构体变量举例说明#include <stdio.h>//结构体定义的第一种//先...

2020-03-30 22:03:29 688

原创 ARM_C高级学习笔记(三)C语言中的字符串类型

C语言的字符串类型很多高级语言像java、C#等就有字符串类型,有个String来表示字符串,用法和int这些很像,可以String s1 = “linux”;来定义字符串类型的变量。C语言没有String类型,C语言中的字符串是通过字符指针来间接实现的。C语言使用指针来管理字符串C语言中定义字符串方法:char *p = "linux";此时p就叫做字符串,但是实际上p只是一个字...

2020-03-28 19:59:02 385

原创 ARM_C高级学习笔记(二)程序获取内存的方式-栈、堆、数据区

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

2020-03-26 16:05:46 512

原创 ARM_C高级(一)(一重、二重)指针、(一维、二维)数组以及typedef的用法

文章目录(一)数组指针、指针数组(二)函数指针(三)typedef的用法(四)二重指针(五)二维数组(六)二维数组与指针的关系(一)数组指针、指针数组指针数组实质是一个数组,这个数组中存储的内容全部是指针变量。数组指针实质是一个指针,这个指针指向的是一个数组。int *p[5];指针数组int *p[5]; 核心是p,p是一个数组,数组有5个元素...

2020-03-23 17:51:35 521

原创 ARM—C语言学习笔记(零)指针与数组

文章目录(一)wild_pointer(1)野指针(2)野指针指向未知地址有三种情况(3)怎样避免野指针?NULL是什么?(二)const关键字与指针(1)const修饰指针的4种形式(2)const修饰的变量真的不能改吗?(3)const究竟应该怎么用?(三)深入学习数组(1)从内存角度来理解数组(2)从编译器角度来理解数组(3)数组中几个关键符号(a、 a[0]、 &a 、&a...

2020-03-22 18:22:38 1248

原创 ARM裸机学习笔记(六)串口通信

(一)电子通信概念同步通信收发双方按照同一时钟节拍工作,( 一般需要发送方给接收方发送信息同时发送时钟信号)异步通信发送方和接收方没有统一的时钟节拍、而各自按照自己的节拍工作就叫异步电平信号电平信号的传输线中有一个参考电平线(一般是GND),然后信号线上的信号值是由信号线电平和参考电平线的电压差决定。差分信号差分信号的传输线中没有参考电平,所有都...

2020-03-18 12:00:55 439

原创 ARM裸机学习笔记(五)时钟系统

(一)SoC时钟系统简介1.SoC的时钟获得一般有外部直接输入时钟信号,SoC有个引脚用来输入外部时钟信号,用的很少。外部晶振+内部时钟发生器产生时钟,大部分低频单片机都是这么工作的。外部晶振+内部时钟发生器+内部PLL产生高频时钟+内部分频器分频得到各种频率的时钟,210属于这种。2.S5PV210的时钟系统简介时钟域:MSYS、DSYS、PSYS(因为S5PV210的时钟体系...

2020-03-16 17:04:49 337

原创 ARM裸机学习笔记(四)重定位和链接脚本

(一)重定位引入和链接脚本11.一个事实:大部分指令是位置有关编码位置无关编码(PIC,position independent code):汇编源文件被编码成二进制可执行程序时编码方式与位置(内存地址)无关。位置有关编码:汇编源码编码成二进制可执行程序后和内存地址是有关的。我们在设计一个程序时,会给这个程序指定一个运行地址(链接地址)。 就是说我们在编译程序时其实心里是知道我...

2020-03-13 15:06:57 204

原创 ARM裸机学习笔记(三)汇编写启动代码之开iCache

汇编写启动代码之开iCache1.什么是cache,有什么用cache是一种内存,叫高速缓存。从容量来说CPU < 寄存器 < cache < DDR从速度来说CPU > 寄存器 > cache > DDRcache的存在,是因为寄存器和ddr之间速度差异太大,ddr的速度远不能满足寄存器的需要(不能满足cpu的需...

2020-03-13 10:09:02 306

原创 ARM裸机学习笔记(二)看门狗简介and汇编代码实现栈和调用C语言

(一)看门狗1.什么是看门狗:看门狗(watch dog timer 看门狗定时器)。大家想象这样一个场景:家门口有一只狗,这个狗定时会饿(譬如说2小时一饿),够饿了会胡乱咬死人。人进进出出要想保证安全必须提前喂狗(必须在上次喂过后的2小时内喂狗才行)。如果超时没喂狗就会被咬死,如果提前喂狗没关系,但是本次喂狗时间就会从这里开始计算。现实中因为一些外部因素,电子设备经常会跑飞或者死机(譬如...

2020-03-12 22:49:08 594

原创 ARM裸机学习笔记(一)GPIO_and_LED

安装交叉编译工具链1.linux下安装软件的方法在线安装。譬如ubuntu中使用apt-get install vim来安装vim软件。自己下载安装包来安装。这种方式的缺陷就是你不知道你下载的安装包和你的系统是否匹配。源代码安装。总结:安装交叉编译工具链(arm-linux-gcc)实际采用第二种安装方式2.交叉编译工具链的安装打开虚拟机,在/usr/local/下创建/usr...

2020-03-11 22:56:27 266

空空如也

空空如也

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

TA关注的人

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