跨多个源文件的XC8库组织和#defines

时间:2014-03-12 02:24:57

标签: c mplab xc8

这是一个复杂的帖子所以请耐心等待。我试图尽可能地浓缩它......

我使用不同的PIC微控制器工具链来XC8。使用以前的编译器,设置和使用我自己的库并使用这些库中的定义似乎更容易。

我想编写自己的函数库以供重用。我还希望将它们全部存储在我自己选择的目录结构中(这样它们可以在多台机器之间自动同步,并且出于各种其他原因)。这是一个简化的虚构文件结构。

\ projects \ my_project //当前项目目录

\ some_other_directory \ my_library \ comms_lib //我的通讯库

\ some_other_directory \ my_library \ adc_lib //我的ADC库

现在让我们假设我的每个库都需要__XTAL_FREQ定义。每个项目的频率可能会有所不同 以下是我的问题:

  1. 告诉编译器库文件所在位置的最佳/最有效方法是什么?

  2. 如果没有将__XTAL_FREQ添加到每个头文件中,如何使定义可用于所有头文件?
    可能有人会说它应该在一个单独的头文件中(让我们称之为project_config.h)。然后可以将该文件与每个未来项目一起定位并相应地更改。如果单独的头文件是答案,那么接下来的问题是,如何获取库头(与项目不在同一目录中)以正确引用每个新项目的project_config.h文件?

  3. 提前致谢,Mark

1 个答案:

答案 0 :(得分:0)

如果您正在使用MPLABX,您可以考虑为您的库创建一个或多个库项目,然后可以将这些项目包含在其他MPLABX项目中。

至于__XTAL_FREQ的全局定义,我认为应该可以将符号定义传递给命令行,但不确定。

相关问题