章节列表

内核裁剪

2018-01-12 09:42:05 +0000 李述铜

内核裁剪的目标是缩小内核的代码、数据使用量,以降低资源需求,因为在不同的应用下可用的存储资源有限,需要的功能也不同。所以,可根据实际需求将不需要的代码从编译过程中去掉,同时通过配置减小数据空间的占用量。

看上去有点复杂。实际很简单!就是利用条件编译和宏定义而已。

主要内容

课程中演示了几个配置案例,使用了#if条件编译。相信学起来难度应该不大,此处不再赘述。

重点难点

我所见过的条件编译用于控制三种层面:

  • 模块层面:在源文件的开始处加入#if,控制是否编译整个文件的所有内容
  • 函数层面:控制是否编译一个或多个文件
  • 语句层面:控制是否编译一段代码

这三种层面在课程的代码中均有体现(不一定在本视频中体现)

注意事项

注意,课程中的配置案例仅用于演示。如果有兴趣,可以自行添加一些其它的配置。

课程中没有解释#if使用方法,如果你不了解,可以看下C语言知识。

此外,课程中没有演示数据量的裁剪。这个操作是通过宏定义配置相关的数组大小,也有通过#if控制是否将某些变量加入条件编译。

常见问题