LM3S1138驱动库解析(一)
1.引言
最开始学习LM3S1138的时候,只是简单的使用了一下官方提供的库函数,并没有深入的了解其库文件的结构。到后来,一直对工程项目里的driverlib.a耿耿于怀。我们来看一下,使用driverlib.a驱动库的文件结构如图1-1所示。
图1-1 使用driverlib.a驱动库的文件结构
这个driverlib.a把所有的库函数提供的API全都包括进去了,但是你却看不到源码,因为库函数的源码像gpio.c,adc.c,,uart.c,这些都被生成了目标代码,这些目标代码加起来构成了库driverlib.a,我们在源文件中的库函数每被调用一次,编译器,就会从driverlib.a中把相应的库函数的编译好的目标代码拿出来,放到我们的应用程序中。这个确实是很方便的,官方只需要把他的源码更新一下,然后,升级一下库就行。作为用户方,我因为这种结构不同于往日我的所有文件都可见的形式,而不甘于心。因此,我觉得,把我要用的.c文件从driverlib.a中离心出来,会是一件很好玩的事情。这件事情,最终出来了结果,以LM3S1138_不带驱动库_例程_ewarm的形式给出,在这个例程中,你可以看到文件结构如图1-2所示。
图1-2 不使用driverlib.a驱动库的文件结构
对照着图1-1,从图1-2中可以看出,我们把图1-1中的仅包含driverlib.a中的文件组lib用图1-2中包含“gpio.c,cpu.c,interrupt.c,sysctl.c”的这些C文件做以代替。文件编译通过,程序运行正常。代替的这个过程,也是做了少许修改的。以下做以说明。
[ 本帖最后由 feman5012 于 2010-6-19 19:23 编辑 ]
|