在许多语言中,例如C++,有许多不同的源文件是正常的,但对于PIC微控制器程序来说似乎并不是经常这样--至少在我读过的任何教程或书籍中都不是这样。
我想知道如何才能有一个源(.c)文件,其中包含一堆例程、全局变量和定义,可以供我的main.c文件使用。这有可能吗?
谢谢你的建议!
发布于 2012-12-01 03:44:34
这在PIC开发中是完全可能的。从代码和数据的角度来看,大小当然是一个问题,但它仍然只是C代码,这意味着大多数C规则(参见编译器文档中的例外)都适用,包括将多个源文件编译并链接到单个输出中(通常是.hex文件)。例如,在一个独立于main.c的C文件中,比如test.c:
int AddNumbers(int a, int b)
{
return a + b;
}然后,您可以在头文件test.h中定义它:
int AddNumbers(int a, int b);在main.c文件的顶部包含test.h:
#include "test.h"然后,您应该能够从main.c调用AddNumbers(4,5)。我没有测试过这段代码,但仅将其作为该过程的一个示例。
发布于 2012-12-01 01:59:18
通常,PIC18的大多数代码都来自其他文件。因此,与编译然后链接的高级技术相比,更常见的做法是包含(和包含来自includes的)所有代码,以便只有一个流去往编译器。我认为你可以在PIC18下做到这一点,但是我从来没有花足够的时间让它工作。大多数库等都被设计为包含文件,而不是单独翻译的单元。
这是一种不同的心态,但这是有原因的。我认为这是因为历史上需要保持尽可能小的东西。因此,更多的事情是基于芯片的宏,而更少的(可链接的)库开发。
PIC32编译器因其库支持而变得更好。
https://stackoverflow.com/questions/13650477
复制相似问题