自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 第0章 前言-绪论-导读

1、C语言的标准是根据标准制定的年份确定名称的:C89:1989年,美国国家标准协会(ANSI)推出C语言和C标准库的标准。该标准通常被称为ANSI C。由于该标准是1989年推出的,因此也被称为C89。C90:1990国际标准协会ISO参照ANSI标准,推出一模一样的C语言和C标准库标准,由于该标准是1990年提出的,因此被称为C90标准。C89, C90, ANSI C是...

2019-09-30 23:32:00 152

转载 2019/9/3 C语言的内存管理

为什么要学:嵌入式开发中内存资源非常有限常见错误:1、内存申请未成功,就进行使用2、内存申请成功,但没有初始化(造成内存出错)3、内存初始化成功,但越界访问(内存崩溃)4、忘记释放内存或者释放一部分(造成内存泄漏)C语言需要手动管理:malloc()、free()、new()C语言的内存分类:1、栈区(stack):系统自动分配2、堆区(h...

2019-09-03 00:21:00 134

转载 2019/9/3 C程序的编译与链接

C程序的编译与链接:预处理:1、宏定义替换 所有的#define2、处理条件编译指令 #if #lese #endif等3、头文件展开插入到预编译指定的位置,#include ”“编译:一个.cpp文件,生成.obj文件注意:.h文件不参加编译,.h中的内容在预处理时被包含到原文中了汇编:链接:常见错误:1、重复定义全局变量...

2019-09-03 00:20:00 109

转载 2019/9/3 空指针和野指针

void *指针,空类型指针,可以指向任何类型的指针int a =10;void *pa = &a;int b = (*(int *)pa); //正确的 int b = (int *)(*pa) 是错误的野指针:指向非法的或已经销毁的内存的指针危害:对操作系统造成不可预知的危害出现原因:1、定义的指针没有指向,即没有初始化解决:要么指向合法...

2019-09-03 00:19:00 141

转载 思考7 寄存器的思考

程序运行本质是二进制代码的运行,一段程序最总就是将二进制数放入寄存器中运行那么嵌入式开发中的寄存器与代码运行时的寄存器相同吗?不会产生干扰吗?ARM芯片上的寄存器又与其有何关系?转载于:https://www.cnblogs.com/epll/p/11449517.html...

2019-09-02 22:39:00 123

转载 思考6

今天看代码时遇见了一个问题中断禁止函数中断允许函数道理我都懂就是不明白是如何实现的转载于:https://www.cnblogs.com/epll/p/11449493.html

2019-09-02 22:35:00 91

转载 linux4 动态链接与静态链接

动态链接静态链接概念编译时不需要,运行时需要(常见软件的更新、游戏的更新维护,相信steam用户都花钱买过.dll包吧!????)编译时需要,运行时不需要(日常大部分的软件开发编写活动)优点1、有利于软件程序的更新维护,节省内存磁盘空间2、使得开发的过程中的各个模块更加独立,耦合度小,便于独立进行开发测试1、 代码装...

2019-09-02 22:32:00 83

转载 1 静态库链接

API(application programming interface),操作系统提供的应用程序编程接口          |        语言库(API集合,存放着众多的.o .a文件)链接就是自己写的.c文件形成的.o文件与API中存放的.o文件链接一起,形成一个新的.o文件转载于:https://www.cnblogs.com/epll/p/114272...

2019-08-28 23:26:00 93

转载 日语1

动词的分类:1、一类动词(五段动词)以う く ぐ す つ ぬ る ぶ む结尾的单词动词变形:将末尾改成对应行“い”段,并加上“ます”如いくーーいきます  のむーーのみます2、二类动词(一段动词)以る结尾,且前边必须是い或え段。也有特殊如いる是五段词动词变形:去掉る ,换成ます3、三类动词(1)サ变动词:一定是以“する”结尾动词变...

2019-08-26 22:42:00 110

转载 2019/8/24 C语言回顾(6)

一、数组与指针【1】一维数组与指针一维数组内部关系int a[3] = {1,2,3};数组名:1、可以代表整个数组sizeof(a)代表整个数组的大小2、数组的数组名是数组的首地址注意:数组名是常量,不可以进行自加运算a = &a[0]a + 1 = &a[0] + 1 = &a[1]*(a + 1) = ...

2019-08-25 20:37:00 106

转载 2019/8/25 C语言回顾(8)

一、函数函数是功能性代码的集合,通常情况下函数需要返回值1、函数声明返回值类型 函数名(形参);不写声明会有警告,或者可以将函数定义拿到main函数上方2、函数调用函数名(实参);3、函数定{c语句块;return ;}形参:一定是变量,用来接收实参的值实参:可以是变量,也可以是常量二、函数传参...

2019-08-25 20:32:00 93

转载 2019/8/25 C语言回顾(7)

1、strcat :字符串连接函数#include <string.h>char *strcat(char *dest, const char *src);char *strncat(char *dest, const char *src, size_t n);功能:将两个字符串进行连接参数:1、存放字符串的空间首地址 2、需要连接...

2019-08-25 01:01:00 80

转载 2019/8/24 项目代码该如何看

项目代码最总要的就是函数,函数如何看起?首先看函数的输入:一定要弄清楚每个参数的意义      输出:      功能是什么:      项目里边那些.文件调用了该函数。还有就是耐性,一定一定要耐心看下去。我是从驱动找到的突破口,把一个.c文件里的函数搞懂,全局搜索,看那些.c文件调用了,然后就可以由点到线,有线到面,把握整个文件了。转载于:htt...

2019-08-24 01:26:00 111

转载 2019/8/24 map/asm/pm文件

.map文件记录了项目中的函数的地址,占用的空间等.asm文件,汇编语言文件拓展名.pm文件,脚本语言转载于:https://www.cnblogs.com/epll/p/11403367.html

2019-08-24 01:16:00 188

转载 思考5 定时器和callback回调函数

定时器  频率:freq  占空比:duty  输出脉冲中断信号(定时器中断):callback(回调函数)  回调函数;回调函数就是按照一定的形式由你定义并编写实现内容,当发生某种事件时(如中断发生),而由系统或其它函数来调用的函数。  回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指...

2019-08-24 01:10:00 610

转载 linux3 大小端

大端序:低地址存高字节小端序:低地址存低字节转载于:https://www.cnblogs.com/epll/p/11403354.html

2019-08-24 01:05:00 116

转载 2019/8/24 C语言回顾(5)

一、二维数组一般形式数据类型 数组名[行标][列标]; |数组内元素的数据类型int a[2][3]; 数据类型 int完全初始化int a[2][3] = {1,2,3,4,5,6};int a[2][3] = {{1,2,3},{4,5,6}};注意:行标可以省略,列标必须保留不完全初始化int a[2][3] =...

2019-08-24 01:03:00 91

转载 linux2 代码对齐与段错误调试

一、如何对齐代码gg 回到文件开头shift + v 选中第一行G 选中所有== 对齐二、段错误如何调试gdb调试工具gcc -g xxx.c ===》 a.outgdb ./a.outr 运行q 退出转载于:https://www.cnblogs.com/epll/p/11397577.html...

2019-08-23 00:10:00 115

转载 linux1 基本操作指令

linux:用户名ubuntu:主机名~:路径 家目录 /:根目录/home/linux/pwd(print working directory)打印当前工作路径ls(list)将当前工作路径下的所有文件的文件名以列表的形式显示ls -l 查看文件属性drwxr-xr-x 7 linux linux 4096 J...

2019-08-23 00:06:00 93

转载 2019/8/23 C语言回顾(4)

一、for循环一般形式for(表达式1;表达式2;表达式3){ c语句块;}表达式1:通常是一个赋值表达式表达式2:条件或者逻辑表达式表达式3:能够该改变表达式2结果的语句1 ----> 2 ----> c ---->3 ---->2注意:表达式1只会执行一次int i;for(i = ...

2019-08-23 00:03:00 83

转载 思考4 指针操作

指针存储的是一个已经存在的空间的地址,这个空间必须存在,才能进行相关操作。int* add(int a,int b){int c = a+b;return &c;}//函数结束后,a、b、c都被销毁了,但是c的地址被穿了出来,但是我c不是被销毁了吗?参数的生命周期转载于:https://www.cnblogs.c...

2019-08-23 00:02:00 109

转载 思考3 int a[] 和int *a数组传参

int a[] 每次都可以传4*n个字节的数组长度的形参。可以知道数组的长度,len = sizeof(a)/sizeof(int)int *a,每次只要传4个字节长度的变量,不知道数组的长度,需要单独传参或控制。转载于:https://www.cnblogs.com/epll/p/11397556.html...

2019-08-22 23:59:00 770

转载 思考2 C语言中传参的方式

C语言中的传参方式有两种:1、值传递2、指针传递(地址)思考:指针的本质是什么,是地址,因此指针传参本质上也是值的传递转载于:https://www.cnblogs.com/epll/p/11391599.html...

2019-08-21 22:19:00 115

转载 思考1 char str1[]="abc";与char *str2="abc";的区别

char str1[]="abc"//栈,运行的时候赋值,存取较快char *str2="abc"//abc\0在常量区,str2在栈上,编译的时候就以确定,存取较慢思考:str1是数组的名称,是数组存放第一个元素的地址,即存放a的空间的地址   str2是一个指针,指针内存放的是地址,即存放常量“abc”的首地址转载于:https://www.cnblogs.com/e...

2019-08-20 22:55:00 756

转载 2019/8/20 C语言回顾(2)

一、逻辑运算符&& 逻辑与表达式1 && 表达式2 1 1 1 1 0 0 0 1 0 0 0 0口诀:与0为0,与1不变特点:当表达式1结果为真的时候,会继...

2019-08-20 22:35:00 115

转载 2019/8/19 C语言回顾(1)

一、冯诺依曼  将计算机分为5个部分  (1)输入设备:键盘、鼠标  (2)输出设备:显示屏  (3)存储器:    内存(运行内存)RAM:内存条    外存 ROM: 硬盘、光盘、u盘、sd卡    寄存器:在cpu内部 、提高程序的运行效率   (4)运算器   (5)控制器  注:运算器和控制器集成为cpu二、进制转换...

2019-08-19 22:19:00 118

转载 2019/8/18 ECU和DCU

  ECU:电子控制单元,由CPU、存储器(ROM、RAM)、输入、输出接口(I/O)、模数转换器(A/D)等大规模集成电路组成。  DCU:域控制器,管理ECU    详见:https://blog.csdn.net/weixin_42229404/article/details/81262881转载于:https://www.cnblogs.com/epll/p/...

2019-08-18 11:35:00 2418

转载 2019/8/18 C语言循环结构的结束

一、如何跳出多重循环(1)goto(嵌入式不推荐,goto比较复杂)(2)return(3)if判断(4)在大循环后面判断标志加入break二、for循环中:(1)break终止循环执行循环体下面的代码(2)return终止循环并且退出循环所在的方法(3)continue终止当前循环,进行下一次循环转载于:https://www.cn...

2019-08-18 11:32:00 134

转载 2019/8/18 代码耦合

  代码耦合:软件结构内部不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。)  软件工程规定写代码的原则是“高内聚,低耦合”。内聚是代码块间的独立性,耦合是各个代码块间的联系。  低耦合,粗浅的理解是:一个完整的系...

2019-08-18 11:27:00 181

转载 2019/8/17 程序结构化设计

一、结构化程序设计的三种基本构成  (1)顺序结构:一种线性、有序的结构,它依次执行各语句模块。 (2)循环结构:重复执行一个或几个模块,直到满足某一条件为止。 (3)选择结构:根据条件成立与否选择程序执行的通路。二、方法  (1)自顶而下  (2)逐步细化  (3)模块化设计  (4)结构化设计三、个人理解  就是代码要实现一个功能,你要实现他的方法,每...

2019-08-17 23:16:00 93

转载 2019/8/16 JSON

  JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。老实说我并不明白这是什么意思,感觉这应该和java有关,最近在项目工程里老是看见这个类型的文件,好奇就把它给记下来了,以后有时间学学java,就应...

2019-08-16 23:25:00 280

转载 2019/8/15 日语学习

  日语已经学习了快两个月了,说一下自己的心得吧!  1、语言学习没有捷径,特别是刚开始的时候,五十音图要牢牢的记住,否者后面会出大麻烦  2、单词、课文要多记、多背、多读  3、凡事贵在坚持,小聪明是没有太多用处的,你以为你会了,今天可以不用记了,殊不知一天不背都会有差距,要天天背,不要懈怠  4、任何事刚开始都很难,为什么难,因为不会,会了就不难了,不要有畏难情绪...

2019-08-15 23:42:00 100

转载 2019/8/15 PIO模式

  PIO模式是一种通过CPU执行I/O端口指令来进行数据读写的交换模式。  PIO的英文拼写是“Programming Input/Output Model”,是最先的硬盘数据传输模式,数据传输速率低下,CPU占有率也非常高,大量传输数据时会因为占用过多的CPU资源而导致系统停顿,无法进行其他操作。  PIO受限于传输速率低下和极高的CPU占有率,这种数据传输模式很快就被淘汰了...

2019-08-15 22:57:00 365

转载 2019/7/3 #define 问题

1、#define A 这里的A没有被定义,看到省略即可,只是做备用的符号。  #define A 3.14 这里的A就是3.142、#if  条件  1  代码1  #endif  条件  2  代码2  #endif  与平常使用的if else语句表达意思相同转载于:https://www.cnblogs.com/epll/p...

2019-07-03 01:11:00 107

空空如也

空空如也

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

TA关注的人

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