嵌入式软件刷题笔记【第四天】

1.头文件的两种包含形式的区别?

< >尖括号形式表示引用系统编译器类库路径里面的头文件
"  "双引号则表示引用当前文件工作目录相对路径里面的头文件

2.STM32 中断是怎么进入到中断服务程序的?

STM32共有256个中断号,每个中断号在中断向量表中有一个对应的地址,这个对应地址就是中断服务程序

3.malloc和new的区别是什么?

语言支持:malloc是C语言中的函数,而new是C++语言中的运算符。

内存分配方式:malloc函数分配的内存是未初始化的,而new运算符会调用类型的构造函
数来初始化内存。

内存释放方式:malloc分配的内存必须使用free函数来手动释放,而new分配的内存会在
变量超出作用域后自动释放,或者使用delete运算符手动释放。

内存对齐:malloc函数分配的内存并不保证较好的内存对齐,而new运算符分配的内存一
般会较好地对齐。

错误处理:malloc函数在内存分配失败时会返回NULL指针,而new运算符在内存分配失败
时会抛出一个std::bad_alloc异常。

4.为什么局部变量未赋值时,每次初始化的结果是不确定的?

首先,局部变量存在于栈中,内存中栈是重复使用的,所以未进行初始化的时候,变量对应地址中
存在值就是一个未知的值(脏值)。

5.软中断和硬中断

软中断:(不可被屏蔽)
1.系统调用,如open,write等
2.指令直接触发,如汇编中int指令
3.由异常触发,如内存泄漏,被除数为0
4.由定时器触发,如alarm
硬中断:由硬件设备触发的中断
1.设备事件触发
2.设备异常触发
软中断就是中断的下部分,硬中断就是中断的上半部分

6.目录和目录项的区别

目录:/根目录,home家目录,目录就是目录文件,里面存储着目录项
目录项:里面存储文件名,文件inode节点

7.有结构文件的逻辑结构

顺序文件:文件在逻辑上是一个接一个排列的,可以是顺序存储,也可以是链式存储(无法实现随机存储,故大多顺序文件是顺序存储)
索引文件:对于记录大小不固定的文件,通常查找第n条记录会变得十分困难,因此需要建立一张索引表,而索引表大小固定,这样就会很轻松找到第n条记录。
记录:如下图所示,有结构文件是由每条相似的记录组成,记录中又存在许多数据项。
嵌入式软件刷题笔记【第四天】_第1张图片

索引顺序文件:由于索引文件对于每个记录都创见一个索引项,这样会浪费存储空间,因此将记录进行分组,每组一个索引项,这样极大节省了空间。

你可能感兴趣的:(笔记,单片机,stm32,嵌入式硬件)