我们开始学习C语言,通常基于PC机的IDE(集成开发环境VC)编写代码。而那时的代码编写只是停留在抽象逻辑层面,不能体会如:printf(“”Hello World!\n“”)具体是如何实现的。后来学习单片机。单片机虽然性能有限,却是个很完整的系统。普遍使用的IDE集成了很多功能,包括工程管理,代码处理等。再加上单片机厂商提供了全面的库函数。所以初学者被屏蔽在底层软硬件之上,更加不能理解整个嵌入式体系以及软硬件交互过程。 作为嵌入式码农应当能把代码和硬件联系起来,因为所有功能的实际实现都是由硬件体现而软件只是负责告诉硬件做什么,如何做。
代码的编译:
例如我们写了一些c程序,这些程序分别包含在文件file1.c,file2.c,file3.c中。先忽略预处理部分,编译器将C文件转换成为汇编文件file1.s,file2.s,file3.s;汇编器将汇编文件转换成为二进制指令流 file1.o,file2.o,