发新帖我要提问
12
返回列表
打印
[MCU]

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

[复制链接]
楼主: lr2131
手机看帖
扫描二维码
随时随地手机跟帖
21
为什么不搞成一个工程呢,反正你是要烧到一起的!

使用特权

评论回复
22
奔牛滚滚| | 2014-5-22 17:17 | 只看该作者
我也遇到这个问题,关注一下.
关键是共用部分怎么处理.我希望共用的函数地址一直不变.iap和app都调用这个共用部分

使用特权

评论回复
23
lr2131|  楼主 | 2014-5-22 20:14 | 只看该作者
已经搞定了代码公用的问题了。

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

然后是数据公用的问题看要怎么解决。

使用特权

评论回复
24
lr2131|  楼主 | 2014-5-22 20:17 | 只看该作者
贾丝文 发表于 2014-5-22 14:11
编译第一个文件时,把函数指定绝对地址,第二个文件声明这个函数地址,就可以直接用了
...

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

函数不像数组那样可以计算编译出来后的长度。

使用特权

评论回复
25
lr2131|  楼主 | 2014-5-22 20:18 | 只看该作者
奔牛滚滚 发表于 2014-5-22 17:17
我也遇到这个问题,关注一下.
关键是共用部分怎么处理.我希望共用的函数地址一直不变.iap和app都调用这个共 ...

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

函数不像数组那样可以计算编译出来后的长度。

使用特权

评论回复
26
lr2131|  楼主 | 2014-5-22 20:18 | 只看该作者
已经搞定了代码公用的问题了。

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

然后是数据公用的问题看要怎么解决。

使用特权

评论回复
27
lr2131|  楼主 | 2014-5-22 20:21 | 只看该作者
通宵敲代码 发表于 2014-5-22 17:11
为什么不搞成一个工程呢,反正你是要烧到一起的!

IAP和APP搞到一个工程就够烦死了,3个4个的放一起更烦。
出厂的时候,可能会一起烧,但以后卖出去做IAP就不一定了。
另外,公用函数也说不定有升级的可能。

使用特权

评论回复
28
lr2131|  楼主 | 2014-5-22 20:22 | 只看该作者
奔牛滚滚 发表于 2014-5-22 17:17
我也遇到这个问题,关注一下.
关键是共用部分怎么处理.我希望共用的函数地址一直不变.iap和app都调用这个共 ...

你也遇到这样的问题吗?
好像有这种节省空间需求的不多吧。

使用特权

评论回复
29
lr2131|  楼主 | 2014-5-22 20:27 | 只看该作者
奔牛滚滚 发表于 2014-5-22 17:17
我也遇到这个问题,关注一下.
关键是共用部分怎么处理.我希望共用的函数地址一直不变.iap和app都调用这个共 ...

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


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

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

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

其实就是要使用到静态变量,也不是绝对不行,解决方法有,但很复杂,我也在思考中。

使用特权

评论回复
30
zchong| | 2022-5-17 09:40 | 只看该作者
思路不错,准备试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则