当时的嵌入式应用程序开发进程里,而且C言语成为了绝大部分场合的最佳挑选。如此一来main函数好像成为了天经地义的起点——由于C程序往往从main函数开端履行。但一个常常会被疏忽的问题是:微控制器(单片机)上电后,是怎么寻找到并履行main函数的呢?很显然微控制器无法从硬件上定位main函数的进口地址,由于运用C言语作为开发言语后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的进口地址在微控制器的内部存储空间中不再是必定不变的。信任读者都能够答复这个问题,答案或许迥然不同,但必定都有个关键词,叫“发动文件”,用英文单词来描绘是“Bootloader”。
不管功能高低,结构简繁,价格贵贱,每一种微控制器(处理器)都有必要有发动文件,发动文件的效果就是担任履行微控制器从“复位”到“开端履行main函数”中心这段时刻(称为发动进程)所有必要进行的作业。最为常见的51,AVR或MSP430等微控制器当然也有对应发动文件,但开发环境往往主动完整地供给了这个发动文件,不需要开发人员再行干涉发动进程,只需要从main函数开端进行应用程序的规划即可。
论题转到STM32微控制器,不管是keil
uvision4仍是IAR EWARM开发环境,ST公司都供给了现成的直接可用的发动文件,程序开发人员能够直接引证发动文件后直接进行C应用程序的开发。这样能大大减小开发人员从其它微控制器渠道跳转至STM32渠道,也降低了习惯STM32微控制器的难度(关于上一代ARM的当家花旦ARM9,发动文件往往是第一道难啃却又无法跨越的坎)。