启动即是芯片上电复位要运行的程序,启动作为一个模块独立于操作系统而在,因为操作系统需要通过启动这个模块来加载和引导的。所以启动的英文术语是boot loader。我对boot loader的定义包括两部分:1.加载os 2. 为了让os能够正常运行所要做的硬件和软件初始化工作。
我们常常看到boot loader这个词语用于arm引导linux,X86引导windows等等。可见一般意义上,能用上boot loader都是一些计算能力强并外挂SDRAM的SOC方案。那我们咱们去理解内存资源有限型的嵌入式系统的启动呢?就以51为例。
51体系SOC一般都是内置K字节级别的nor flash用于运行代码,并内置一块K级别较小的ram用于数据读写。很明显这种系统跑不了linux这种高大上的系统,那51的启动都干嘛呢?我们从程序开发流程说起:
1)编写程序,编译,链接成可执行文件。一般在keil集成环境中。