我单片机上有3个工程,这3个工程都会用到一些相同的函数,我不想让3分工程在编译的时候都编译到各自的烧录文件中,,然后再烧到flash里,这样做,比较浪费空间。
我想单独把这些公用的函数编译成HEX或BIN文件,单独烧写到内部flash里面。在编译的时候,我记下每个函数的首地址,然后其他3个工程中使用函数指针,就可以运行这些公用函数。
同样的,以后还有些公用的数据也想像这么干,但不知道怎么做,怎么创建一份这些公用函数的工程。
------解决方案--------------------
这个并不难,将公共函数整到一个工程中,并对所有公共设置一个统一调用接口(当然,也可以想WIN DLL那样提供函数入口地址获取接口),然后设置好链接地址,就可以编译了。
------解决方案--------------------
楼主的意思是以前烧录 3 个 bin 文件,现在想把 3个 bin 中公共部分提出了变成 4个 bin ?
------解决方案--------------------
code型数据可能好处理些.
这个跟代码差不多.
如果是内存数据,就悬了,
估计只能统一指定位置.
要不然,这些数据很可能关联到栈信息或者其他优化处理了,MCU里资源稀缺不同工程间的资源利用很容易
冲突或者相互覆盖.
如果是栈信息或者其他关键数据给破坏掉了.
呵呵,等着菊花残吧!.
PS:
不知道你是怎么处理这个不调用函数这个警告的,这个函数很可能直接就在编译阶段会直接优化掉的
另外很好奇你用的是什么MCU,