将点灯程序中wait延时函数声明为inline函数。并修改makefile,将优化等级选成-O1或以上,那么wait函数将被嵌入main函数中。pc指针需要指向的地址也由0x30000038变为0x30000000。
需要修改的内容:
1.head.S中55行
改为ldr pc,=0x30000000
2.main.c中第9行
改为static inline void wait(volatile unsigned long dly)
3.Makefile中第10行
改为arm-linux-gcc -O1 -march=armv4 -c -o $@ $<
可以明显感受到wait内联后,执行效率得到了提升。
inline这个关键字是建议内联,一般都会加上static,受到优化选项的影响。