14.用户态和系统态的区别:
进程指向用户的代码时处于用户态(此时级别最低),当调用内核时处于内核态(此时权限最高)
15.申请大片内存的方式:
vmalloc、kmalloc、get_free_pages(直接申请页)
16.C++内强制转换:
static_cast:用于自然的低风险的转换,不能用于指针之类的转换
reinterpret_cast:用于不同类型之间的指针或者引用的转换
const_cast:去掉const属性的转换
dynamic_cast:功能与reinterpret_cast类似,但是有转换后检查的功能(检查安全性)
17.do{}while(0)的作用:
a.用于封装宏(步骤)函数
b.完成空宏的定义
18.Bootloader的作用:
引导操作系统启动、初始化硬件设备、建立内存空间映射表
19.条件编译语句的作用:
避免重复定义数据(造成重名、造成内存浪费、typedef多次定义)
增强代码的可移植性,在跨平台编译过程中可以根据条件语句来执行
避免逻辑错误(死循环定义)
20.上拉、下拉、浮空、模拟:
上拉:IO内部上拉电阻输入
下拉:IO内部下拉电阻输入
浮空:读取的IO不确定,等待key内容
模拟:应用ADC模拟输入