我在很早之前(刚在AET扎根的时候)写过一篇详细介绍和分析K60启动代码流程的**,当时还是受到很多博友们的欢迎的,如今两年多时间过去了,再提笔写写启动代码相关的东西的时候,忽然有种Time Fly的感觉,呵呵。不多想了,摇摇头,对过去回眸一笑,活在当下... 言归正传,飞思卡尔在新推出的官方例程包中对启动代码部分做了较大的结构改动(主要体现在Keil下的工程),由原来的crt.s现在统一改成了startup_MKxxxx.s或者startup_MKxxxx.s,当然不只是文件名字的改变,整个启动结构都因此有了较大的改变,个人感觉这种新风格更好一些也更好理解一些,具体的区别我下面简单列出几项: 1. 新的启动文件把原来的Vectors.c和.h文件中的中断向量表也包含进去了,即在文件里面直接定义了中断向量表; 2. 预定义了中断向量表中各个中断服务函数的默认名称,以弱函数的形式体现,这部分我在下篇**会具体解释一下; 3. 把堆和栈的地址和空间大小定义也都包含在此文件中; 4. 在启动文件里添加了复位函数实现,将程序最后跳转到main函数中去。
|