- 博客(58)
- 收藏
- 关注
原创 ARM_04
是一种多对一的通信,任务通知不需要创建(任务通知如果通过TCB控制块来完成,需要创建),所以耗费的资源小,且具体执行只需要知道要通知的哪个人物即可。可以实现任务之间的同步互斥以及调节访问共享资源的先后问题,信号量是一个长度为1的特殊队列,这个为1的空间存储的是信号量的计数值。是一种同步机制,可以用于任务的通信和同步,给任务定义一个事件组,包含多个事件,当某个事件被触发时,则会激活等待的任务。1.总结二进制信号量和计数型信号量的区别,以及他们的使用场景。4.总结任务通知和其他任务通信机制的区别。
2024-04-06 15:30:00
256
原创 【无标题】
1)静态创建任务需要指定具体的栈和栈的大小,而动态创建任务不需要指定具体的栈,只需要指定大小即可,栈会自动调用pvPORTmalloc来实现;2)时间片轮询会给优先级相同的任务分配时间片,在时间片用完后,会强制结束该任务,让其他任务执行。2.总结静态创建任务和动态创建任务的区别,以及动态创建任务和静态创建任务的源码分析步骤。3)动态创建适合随时申请随时释放的任务创建,静态创建任务适合知道具体任务数量的创建。1)抢占式调度实现的是高优先级的任务可以停止正在执行的低优先级任务来执行自身。
2024-04-02 19:05:20
252
原创 ARM_02-光控灯
DMA+空闲中断的使用方式:串口会在固定的一段时间(传送一字节数据所需的时间)后没有数据到达时产生一个空闲中断,每次空闲中断的产生意味着成功接收完一次数据,中断就可以去处理刚才获取的数据。作用:提供外设和储存器之间或者储存器和储存器之间的高速数据传输, 减轻CPU的负担,提高CPU的资源利用率,以及实现大文件的快速传输。uint16_t Size,//要发送的数据长度,用sizeof的话要减一(减去\0)const uint8_t *pData,//要发送的数据。1.总结串口的发送和接收功能使用到的函数。
2024-04-01 19:22:03
357
原创 ARM_01
最后在项目管理模块的项目中可以定义工程名字,选择编译器,设置保存路径等设定,在代码生成器中选择只拷贝必要代码等相关设置,然后就可以点击代码生成按钮,打开keil5,进行代码书写和编译等。GPIO是通用输入输出接口,了解要配置的引脚所在的组和编号,并在对应的输出脚界面鼠标左击改变其功能状态,如LED设置为GPIO_OUT(输出模式),引脚状态只有两种,高电平和低电平,通过system core中的GPIO对相应引脚设定初始状态,再通过代码更改其状态,以实现各种功能。
2024-03-29 20:26:22
283
原创 网络编程第一天思维导图及面试题
1、可以重名但是有“就近原则”,两者的作用范围和优先级不同,导致在局部变量范围内重名变量会采用局部变量的值,但是在改局部区域结束释放后,该局部变量值的变化不会引起全局变量的改变。两者都是给变量分配值的过程,赋值一般在程序执行过程中,给变量一个新的值, 更改其原来的值,而初始化时往往是在程序开始执行时给变量定义一个最初的值的过程为初始化。本身是一个函数,但是同时又是另一个或多个函数的参数,该函数被称为回调函数,在c中其实现方式多为函数指针,通过函数指针,将回调函数作为参数传递给另一个函数。
2024-02-28 20:59:47
264
原创 【无标题】
#include<myhead.h>int main(int argc, const char *argv[]){ //定义两个文件句柄 int srcfp=-1; int destfp=-1; //创建子进程 pid_t pid=fork(); //在父进程中打开和复制一半的文件 int len=0; if(pid>0) { //打开源文件 if((srcfp=open("./test.txt",O_RDONLY))==-1) { p
2024-02-20 22:33:59
202
原创 【无标题】
(arr+2)+3的地址是:0x1020+2*16 + 3*4=0x104c。arr[0]+2 地址是:列偏移:0x1020+2*4=0x1028。*(p+1)+1的地址是:0x1020+16+4=0x1034。40. arr+1 地址是:行偏移:0x1020+16=0x1030。*(p+1)的地址是:0x1020+16=0x1030。p+2的地址是:0x1020+16*2=0x1040。&p+2的地址是:0x600+16=0x610。
2024-02-15 19:55:21
226
原创 【无标题】
26.可能会出现段错误,因为数组A最大只有255个元素,二程序有256个元素,会产生越界访问越界访问,出现三种情况,其中可能会出现段错误。
2024-02-15 19:25:08
218
原创 2.15作业
6.6,8或4,4 7.8或4 8.8或4 9.b 10.a 11.a 12.c 13.a 14.c 15.a 16.d 17.c 18.a 19.a 20.c。3.会打印出 hello,因为使用了二级指针,传递了的是str的地址。1.会出现段错误,此时p申请的堆区内存未返回给str。2.会出现段错误,此时p是一个局部变量,不可返回。
2024-02-15 19:10:40
139
原创 【无标题】
由于程序的运行导致指针的位置变化,在释放地址时,指针未指向首地址,导致部分地址没有得到正确释放且丢失寻找能力。队列:在两端(队头、队尾)实现插入(队尾)和删除(队头),先进先出;栈:在一段(栈尾)实现插入和删除,先进后出;
2024-02-04 19:02:35
461
原创 【无标题】
4、堆区内存片段化,一般不连续,计算机从第一个空地址开始找,一直找到符合大小的空地址。栈区:1、借助于栈的思想,先进后出,先定义变量,后分配地址,地址由大地之到小地址申请。堆区:1、借助于队列的思想,先进先出,先定义变量,后分配地址,地址用小地址到大地址。2、栈区内存由计算机自动申请,自动释放,大小一般为几兆。2、堆区内存由程序员手动申请手动释放,大小一般为几g。3、栈区存在栈满情况,如递归较深时。4、栈区的内存一般是连续的。3、堆区不存在满的情况、1:请简述堆区和栈区的区别。
2024-02-02 20:43:20
193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人