- 博客(31)
- 收藏
- 关注
原创 嵌入式之硬件学习(二)中断、定时器、PWM
中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的;当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而丢处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。请示CPU中断的请求源称为中断源(打断当前工作的事件)。微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。
2025-06-23 17:41:29
922
原创 系统编程day07
TCP 是 TCPIIP 体系中非常复杂的一个协议。下面介绍TCP最主要的特点。(1)TCP是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立 TCP 连接。在传送数据完毕后,必须释放已经建立的TCP连接。这就是说,应用进程之间的通信好像在“打电话”:通话前要先拨号建立连接,通话结束后要挂机释放连接。(2)每一条 TCP连接只能有两个端点(endpoint),每一条 TCP连接只能是点对点的(一对一)。(3)TCP提供可靠交付的服务。
2025-06-16 18:38:09
665
原创 系统编程day06
1.线程是轻量级进程,一般是一个进程中的多个任务(一个进程可以有多个线程);2.进程是系统中最小的资源分配单位;线程是系统中最小的执行单位。
2025-06-04 19:52:11
771
原创 系统编程day05
1.lable.so文件: 动态库 ,运行时动态加载。2.(8M)栈: 放入局部变量, 形参, 函数返回地址3.全局变量区: bss未初始化的数据, Data区初始化的4.fprintf(fp,”father %d num:%d”,getid(),num) : 合并成字符串写入fp中5.exit(): c库函数,会执行io库的清理工作,关闭所有的流6._exit(): 使当前进程结束。
2025-05-27 18:30:56
994
原创 系统编程day04
进程是一个的过程(也可以说是正在运行的程序),是系统分配资源的基本单位,由cpu对各个进程指挥调度,在单核cpu的情况下,各个进程可以通过一定规则在cpu上并发运行。
2025-05-25 19:45:31
769
原创 系统编程day03
要分割的字符串。在第一次调用时,传入要分割的字符串;后续调用时,传入NULL,表示继续分割同一个字符串。: 分隔符字符串。strtok()会根据这个字符串中的任意一个字符来分割str。返回指向下一个标记的指针。如果没有更多的标记,则返回 NULL。
2025-05-23 08:04:16
954
原创 系统编程day01
标准io【输入输出】 stdio.h头文件 :stdio.h ==>标准输入输出头文件;1、关于文件操作的步骤(1)打开文件;(2)io操作,读写操作;(3)关闭文件;注:FILE *是一个结构体,包含文件信息;文件读写的位置相同,都在文件流指针指向的位置;2、打开文件【fopen( )】【const char *pathname】:想要打开的文件名;【const char *mode】:打开文件的模式;【r】:打开只读,文件流指针在最开始;
2025-05-22 08:33:43
603
原创 系统编程day02
【const void *ptr】:变量名(或者结构体名);【 size_t size】:该内容一个多大(或者结构体);【size_t nmemb】:份数,总共有几个;【FILE *stream】:需要操作的文件名;
2025-05-22 08:26:37
754
原创 数据结构day6
1.树的定义树:树由节点(Node)组成,每个节点包含一条数据和多个指向其子节点的引用。2.在任意一个非空树中,(1),有且仅有一个特定的根结点(2),当n>1 时,其余结点可分为m个互不相交的有限集合T1,T2,T3.。。。。Tm,其中每一个集合又是一个树,并且称谓子树。3.度结点拥有子树的个数称谓结点的度。度为0的结点称谓叶结点。度不为0,称谓分支结点。树的度数是指,这棵树中,最大的结点的度数,称谓树的度数。树的深度或高度,从根开始,根为第一层,根的孩子为第二层。
2025-05-20 08:42:30
556
原创 数据结构day3
gcc -g main.c linklist.c // 对两个.c文件进行编译,生成 a.out 文件gdb a.out //调试可执行文件 a.outb linklist.c:36 // 在该.c文件第 36 行设置断点r // 运行程序,但会在断点前停下n //执行下一步。
2025-05-17 08:55:14
472
原创 数据结构day2
在链式结构中,除了要存储数据元素的信息外,还要存储它的后继元素的存储地址。因此,为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对数据ai来说,除了存储其本身的信息之外,还需要存储一个指示其直接后继的信息(即直接后继的存储位置)。我们吧把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称做指针或链。这两部分信息组成数据元素ai的存储映像,称为结点(Node)。
2025-05-14 07:59:11
475
原创 数据结构day1
(1)逻辑结构集合,所有数据在同一个集合中,关系平等线性,数据和数据之间是一对一的关系树, 一对多图,多对多(2)物理结构(在内存当中的存储关系)顺序存储,数据存放在连续的存储单位中,逻辑关系和物理关系一致;链式存储(链表),数据存放的存储单位是随机或任意的,可以连续也可以不连续 (一般认为不连续)(1)数据:可输入输出,具备一些操作(相当于C语言中的变量)(2)数据项:给变量赋予一定的含义(3)数据元素:多个基础的数据项拼在一起(C语言中用struct自定义表示)
2025-05-13 08:41:18
697
原创 嵌入式学习day15
void Puts(char *s) //传入数组的首元素地址。while(*s) //当数组中,字符元素不为'\0'时,即 *s!= 0 继续依次打印字符。putchar(*s++) // 后加加,先取出s指向地址中的变量值,再对地址向后移动。putchar('\n') //打印完后进行换行。++s;注:strlen(p) // 输出为 12 ,因为p指向数组s的首地址,因此会计算出,有效字符数。
2025-05-07 18:23:05
857
原创 嵌入式学习day14
ps:若是小端存储,此时打印出为10,若是大端存储打印出为0。(可以通过此方法,判断电脑存储是小端存储,还是大端存储)ps:因为会隐式转换成int型,所以存在符号位扩展,因此会显示FFFF8756int *p;p = a;p = p + 1;//向后偏移 1 x sizeof(int) 个地址输出:2int *p;p = a;p = p + 1;//向后偏移 1 x sizeof(int) 个地址NULL表示空指针,空指针无法进行指真运算,它只表示当前指针只是一种状态。
2025-05-07 08:39:43
524
原创 嵌入式学习day13
分为三种: 1.宏定义 2.文件包含 3.条件编译代码变成可执行文件:预处理 -------> 编译 ----------> 链接--------->可执行文件 1.不带参数的定义#define 标识符 内容gcc -E -Omain.i main.c 上面指令表示只做预处理,不编译。计算机会无脑把PI替换成 3.1415。 宏名所有都需要大写,以和变量区分,且PI不能是左值。2. 带参数的宏定义#define 宏名(参数表) 字符串因此在宏定义时,应尽量多
2025-05-01 17:51:35
901
原创 嵌入式学习day12
ps:1.没声明时,被调函数需要写在主调函数之前。 2.因为二维数组传参,传的是地址值,因此,被调函数无法知道实参的实际大小,所以还需传入被调函数的大小,a的大小为3,表示有3个一维数组。 3.在定义函数时,传入二维数组作为实参的每个一维数组元素定义个数,应与形参表示数字相同。 如上面个实参为 a[3][4],形参为a[][4]。注:二维字符型数组传参与二维整型数组传参类似。作用域分为 局部作用域 和 全局作用域。局部作用域通常指花括号里。ps: 全局变量不赋值,默认为0。
2025-04-30 10:24:15
770
原创 嵌入式学习day11
因此如果递归过于深,且中间没有出栈,可能会出现栈满 从而程序崩掉。因为字符串 比较特殊,其以'\0'结束,所以当识别到字符为'\0'时,默认字符串结束。ps:因为此时传参传得是地址值,因此在调用函数后,会在原来的数组中直接修改。//几个字节,如64位计算机,地址总线为64位,则打印出8个字节。//32为计算机,地址总线为32位,则打印出4个字节。// 此时打印出的值会根据计算机地址值是几个字节,而打印。因为无法在被调用函数中通过。知道数组究竟有多少个元素,因此,还。ps:因为递归调用每次都需要。
2025-04-28 18:55:47
544
原创 嵌入式学习day10
根据需求自己定义。函数定义:类型说明符 函数名(形参列表)声明部分语句部分int add(int a,int b) //第一个。
2025-04-28 08:46:01
687
原创 嵌入式学习day9
/表示有3个 长度为4的一维数组。//此时,a[0],a[1],a[2]为一个一维数组的数组名。// 可理解为,有三个元素,每个元素都是一个二维数组。
2025-04-26 09:25:12
428
原创 嵌入式学习day8
字符数组可以用来存储字符串,从而在数组中对字符串进行各种操作,并且在字符串中默认最后一个字符为'\0',即空字符作为字符串结束。上面代码隐含了'\0'上面代码隐含了'\0'
2025-04-24 18:15:17
850
原创 嵌入式学习day6
goto语句表示无条件转移语句。int i;i = 1;//循环变量初始化loop://循环条件sum += i;++i;//使循环趋于结束的语句goto loop;return 0;为为下面代码段起的名字,通过goto语句,可以到达指定代码段名的地方,从而形成循环,通常不建议用goto语句构成循环。ps:循环的三要素分别为①必须有循环变量的初始化,②必须有循环条件,③有使循环趋于结束的语句。while(表达式) 语句int i;i = 1;//循环变量初始化。
2025-04-22 18:18:52
618
原创 嵌入式学习day5
1.输出: A此时putchar函数默认里面数据为8进制,变为十进制为65,ASII对应'A'。2.\n",i);输出:1234!'-'表示在后面补空位。3.int i, j;输出:123,789若输入123456789,会跳过中间3个数字。
2025-04-21 19:20:34
977
原创 嵌入式学习day4
ps:逗号运算符为自左向右的顺序求值ep:此时输出为6,因为'='的优先级高于','此时输出为21,此时将最后一个逗号后的值赋给了tps:printf("%d\n",t)中的逗号它是实参和实参中的分隔符二.复合语句:ps: 若多条语句的目的是解决一个独立的问题,这些语句可以构成一个相对独立的个体,这就是复合语句。复合语句是由一系列语句组成,它们放在一对大括号中形成一个整体。其语句的基本形式:语句1;语句2;;;语句3;
2025-04-20 09:26:12
928
原创 嵌入式学习day3
换行符;光标移至下一行;水平制表符;相当于Tab键,制表以八个字符为一组对齐;\b:退格符;光标左移一格;\r:回车;把光标移至当前行的最左边;\f:换页符;把光标移动到下一页开头;\\:表示字符' \ '\':表示字符' ' '\":表示字符' " '\ddd:表示1~3位八进制数\xhh:1~4位十六进制数。
2025-04-17 20:41:26
635
原创 嵌入式学习day2
ps:在计算机中,通常以补码的方式存储数据二进制转八进制:从最低位开始每三个二进制数位为一组,组成八进制二进制 八进制二进制转十六进制:从最低位开始每四个二进制数位为一组,组成八进制二进制 十六进制。
2025-04-16 19:45:27
580
原创 初学嵌入式开发
PS:中括号内为非必选项:列出当前或指定目录下所包含的文件及文件夹,: 表示显示所有文件和文件夹(包括隐藏文件及文件夹): 列出该文件和文件夹的具体详细信息:进入指定目录:表示进入当前目录:返回上一级目录:打印当前所在目录: 在指定路径下创建文件: 在指定路径下创建文件夹: 移除指定路径下的文件: 移除指定路径下的文件夹: 从源地址拷贝文件到目的地址。
2025-04-15 18:51:00
332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅