编译过程
1 >预处理
用于将所有的#include头文件以及宏定义替换成其正真的内容;
2 >编译
将经过预处理之后的程序转换成特定汇编代码的过程;
3 >汇编
将上一步的汇编代码转换成机器码,产生的文件叫做目标文件(.o);
4 >链接
将多个目标文件以及所需的库文件(.so)链接成最终的可执行文件。
什么是线程,什么是进程,两者的区别
线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流;
进程:指在系统中正在执行的一个应用程序,程序一旦执行就是进程;
区别:
1 >线程-程序执行的最小单位,进程-资源分配的最小单位;
2 >进程至少有一个线程,进程有自己独立的地址空间,而线程共享进程的地址空间;
3 >进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源;
4 >线程是处理器调度的基本单位,而进程不是。
ARM处理器的工作模式
User:非特权模式,大部分任务执行在这种模式;
FIQ :当一个高优先级(fast)中断产生时将进入这种模式;
IRQ :当一个低优先级(normal)中断产生时将进入这种模式;
Supervisor :当复位或软中断治疗执行时将会进入这种模式;
Abort :当存取异常时将会进入这种模式;
Undef :当执行未定义指令时会进入这种模式;
System :使用和User模式相同寄存器集的特权模式;
Monitor :是为了安全而拓展出的用于执行安全监控代码的模式,一种特权模式(Cortex-A特有) 。