打印

keil

[复制链接]
2026|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无限追求|  楼主 | 2014-8-3 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2014-8-3 16:53 | 只看该作者
不会,最终只会一个

使用特权

评论回复
板凳
lr2131| | 2014-8-3 20:13 | 只看该作者
搞两个工程不就可以了嘛

使用特权

评论回复
地板
liu1004010308| | 2014-8-3 21:01 | 只看该作者
难道不是一个工程,一个主函数C,其他的都是次的吗?还是以主函数为主啊

使用特权

评论回复
5
444745317| | 2014-8-3 21:59 | 只看该作者
何必弄2个c文件呢,是一个程序吗?

使用特权

评论回复
6
ningling_21| | 2014-8-3 22:52 | 只看该作者
生成两个HEX 有啥用呢,分时执行?

使用特权

评论回复
7
清寒素尘| | 2014-8-4 08:16 | 只看该作者
一个工程只生成一个Hex文件。

使用特权

评论回复
8
无限追求|  楼主 | 2014-8-4 10:51 | 只看该作者
ayb_ice 发表于 2014-8-3 16:53
不会,最终只会一个

那么除了主函数.c外 其它的起什么用

使用特权

评论回复
9
无限追求|  楼主 | 2014-8-4 10:52 | 只看该作者
清寒素尘 发表于 2014-8-4 08:16
一个工程只生成一个Hex文件。

那么除了主函数.c外 其它的起什么用

使用特权

评论回复
10
ayb_ice| | 2014-8-4 11:01 | 只看该作者
无限追求 发表于 2014-8-4 10:52
那么除了主函数.c外 其它的起什么用

其它也是项目的一部分啊

一个大项目不可能把所有程序放在一个文件里,那样程序没有办法维护的

使用特权

评论回复
11
longmaodo| | 2014-8-4 13:59 | 只看该作者
444745317 发表于 2014-8-3 21:59
何必弄2个c文件呢,是一个程序吗?

对于一些比较大的程序 C文件的数量可能有几个甚至十几个 不可能一个程序就一个C函数的,除非你是在学校

使用特权

评论回复
12
很忙| | 2014-8-4 14:12 | 只看该作者
我看不如谈论下这种情况。C文件,怎么样把一个C文件编译为HEX文件。然后我的主函数调用的时候,我直接运行这段HEX文件。这样的目的就跟我调用OBJ文件一样,不同的在于我的库文件,基于保密的算法,已经变成了可执行HEX文件。这样做可以更加保密了。我是这样认为的,可以实现吗?

使用特权

评论回复
13
bluefire612| | 2014-8-4 14:31 | 只看该作者
为什么要生成一个obj的中间文件呢?直接生成一个库,工程中包含这个库不就行了吗。

使用特权

评论回复
14
NWPU_CHEN| | 2014-8-4 15:17 | 只看该作者
模块化编程的思想都没有,一棵树任其枝叶多繁茂,每一个树枝都是一个分支(都是一个文件),但终究它还是一棵树,不会变成两棵树,ok

使用特权

评论回复
15
清寒素尘| | 2014-8-4 21:39 | 只看该作者
无限追求 发表于 2014-8-4 10:52
那么除了主函数.c外 其它的起什么用

其他的文件有负责编译(即编码解码),负责与应用程序交互等各种作用!

使用特权

评论回复
16
无限追求|  楼主 | 2014-8-5 19:28 | 只看该作者
谢谢大家的指导  让我知道了自己只是知道了一小点  不过我会努力  争取毕业找个好工作

使用特权

评论回复
17
lr2131| | 2014-8-5 22:17 | 只看该作者
很忙 发表于 2014-8-4 14:12
我看不如谈论下这种情况。C文件,怎么样把一个C文件编译为HEX文件。然后我的主函数调用的时候,我直接运行 ...

呵呵,如果说你想搞2个hex文件,其中一个直接烧写到flash中,然后另一个工程能直接调用这个在flash中的程序是吗?

如果是这样的话,我之前搞好发了个帖子就是讨论这个的,只是这样的需求几乎很少人用到,所以很少有提出解决方法的,不过我的是可以的,我已经验证过了。

https://bbs.21ic.com/icview-736038-1-1.html

使用特权

评论回复
18
很忙| | 2014-8-6 16:56 | 只看该作者
lr2131 发表于 2014-8-5 22:17
呵呵,如果说你想搞2个hex文件,其中一个直接烧写到flash中,然后另一个工程能直接调用这个在flash中的程 ...

您说的确实是我想说的。看了你提供的链接,还是没有搞明白怎么实现的。有时候做MCU软件,做完一个项目,你的代码要给到别人,你如果想把自己的算法加密的话,方式目前所能想到的就是不提供C文件,只提供LIB或OBJ文件,但是如果可以把你的算法编译后的代码变成可执行的代码放在一个数组里面,FALSH工作后把这些数组放到固定的地址去。这样按照你说的就能实现函数调用。这样的加密方式不是更加的简洁吗?你说你可以做到,能不能交流下。

使用特权

评论回复
19
lr2131| | 2014-8-6 18:58 | 只看该作者
很忙 发表于 2014-8-6 16:56
您说的确实是我想说的。看了你提供的链接,还是没有搞明白怎么实现的。有时候做MCU软件,做完一个项目, ...

你根本的想法是想加密算法,不想让别人获取你的源码。我最初的想法倒不是为了保密,只是为了节省空间,不过保密的效果也是有的。不过即使把需要调用的函数专门编译成bin或hex文件烧写到flash中,一样也会被别人读出来然后反汇编。

用obj或lib的方式,虽然看不到源代码,但每次编译都会编译进去。虽然这样的方式,一样可以获得中间代码然后反编译出来,但bin文件直接烧到flash里面,总还需要个读出的过程,另外中间代码的反编译要比直接二进制代码的反编译简单。所以说,烧写到flash中的这种方式还是会更能保密。不知道对于那些专门做**的来说,**这两种方式的难度有多大差距。

我在那个贴子中是没有给出具体的操作方法,我自己留有备份,晚上我再找找,把方法和步骤提出来。

使用特权

评论回复
20
很忙| | 2014-8-7 09:17 | 只看该作者
lr2131 发表于 2014-8-6 18:58
你根本的想法是想加密算法,不想让别人获取你的源码。我最初的想法倒不是为了保密,只是为了节省空间,不 ...

是想做加密的一种方法。加密根据不同的需求有不同的方法。目前这种方式可以用来做方案商的解决方案,代码可以公开一些,但是核心的算法就用这种直接嵌入执行码的方式来解决。其实这种做法在其它的应用上我见过,在MCU上没有玩过。这种方法如果要更近一步的话可以多对这个可执行的数组进行压缩。在程序初始化的时候才解压到固定的地址去。这样即省了空间,又完善了加密。

使用特权

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

本版积分规则

21

主题

86

帖子

1

粉丝