[MCU] 怎么单独编译一个C文件生成HEX或BIN文件

[复制链接]
6671|29
通宵敲代码 发表于 2014-5-22 17:11 | 显示全部楼层
为什么不搞成一个工程呢,反正你是要烧到一起的!
奔牛滚滚 发表于 2014-5-22 17:17 | 显示全部楼层
我也遇到这个问题,关注一下.
关键是共用部分怎么处理.我希望共用的函数地址一直不变.iap和app都调用这个共用部分
 楼主| lr2131 发表于 2014-5-22 20:14 | 显示全部楼层
已经搞定了代码公用的问题了。

接下来再仔细测试下,感觉没什么大问题。

然后是数据公用的问题看要怎么解决。
 楼主| lr2131 发表于 2014-5-22 20:17 | 显示全部楼层
贾丝文 发表于 2014-5-22 14:11
编译第一个文件时,把函数指定绝对地址,第二个文件声明这个函数地址,就可以直接用了
...

一个或几个公用函数可以这么指定地址,但那么多的话就好办了。

函数不像数组那样可以计算编译出来后的长度。
 楼主| lr2131 发表于 2014-5-22 20:18 | 显示全部楼层
奔牛滚滚 发表于 2014-5-22 17:17
我也遇到这个问题,关注一下.
关键是共用部分怎么处理.我希望共用的函数地址一直不变.iap和app都调用这个共 ...

一个或几个公用函数可以这么指定地址,但多了的话就不好办了。

函数不像数组那样可以计算编译出来后的长度。
 楼主| lr2131 发表于 2014-5-22 20:18 | 显示全部楼层
已经搞定了代码公用的问题了。

接下来再仔细测试下,感觉没什么大问题。

然后是数据公用的问题看要怎么解决。
 楼主| lr2131 发表于 2014-5-22 20:21 | 显示全部楼层
通宵敲代码 发表于 2014-5-22 17:11
为什么不搞成一个工程呢,反正你是要烧到一起的!

IAP和APP搞到一个工程就够烦死了,3个4个的放一起更烦。
出厂的时候,可能会一起烧,但以后卖出去做IAP就不一定了。
另外,公用函数也说不定有升级的可能。
 楼主| lr2131 发表于 2014-5-22 20:22 | 显示全部楼层
奔牛滚滚 发表于 2014-5-22 17:17
我也遇到这个问题,关注一下.
关键是共用部分怎么处理.我希望共用的函数地址一直不变.iap和app都调用这个共 ...

你也遇到这样的问题吗?
好像有这种节省空间需求的不多吧。
 楼主| lr2131 发表于 2014-5-22 20:27 | 显示全部楼层
奔牛滚滚 发表于 2014-5-22 17:17
我也遇到这个问题,关注一下.
关键是共用部分怎么处理.我希望共用的函数地址一直不变.iap和app都调用这个共 ...

其实地址变了也无所谓的,就算是参数接口和返回类型变了也无所谓的。


你在flash中固定的地址存储这些公用函数的地址,如果函数地址变了,就把flash那块存储公用函数的地址值也一起变过来。

函数接口变了,就先升级公用函数,然后升级调用公用函数的工程,接口也对应的变过来就行。

只是这些函数要求必须是可重入函数,不能使用静态变量。

其实就是要使用到静态变量,也不是绝对不行,解决方法有,但很复杂,我也在思考中。
zchong 发表于 2022-5-17 09:40 来自手机 | 显示全部楼层
思路不错,准备试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部