打印

远程升级两个工程的合并

[复制链接]
2228|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
21ID|  楼主 | 2012-12-20 13:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在手上有一个常规的程序和一个远程升级用小程序。用的是KEIL编译器。请问一下,我怎么把这两个工程,有两个main函数合并为一个工程。
比如256k的Rom,常规程序在烧写的时候占200k,而升级用的小程序占56K。
沙发
jack821119| | 2012-12-20 18:53 | 只看该作者
在常规程序中使用函数指针指向升级程序.

使用特权

评论回复
板凳
song19881218| | 2012-12-20 20:18 | 只看该作者
把两个程序都用Jlink写进去,然后用jlink或者ISP再读出来就行了

使用特权

评论回复
地板
21ID|  楼主 | 2012-12-21 08:17 | 只看该作者
jack821119 发表于 2012-12-20 18:53
在常规程序中使用函数指针指向升级程序.

关键一点是用KEIL写程序或者用烧写文件写程序的时候怎么分配ROM空间,升级程序是不能在升级的时候被擦掉的

使用特权

评论回复
5
21ID|  楼主 | 2012-12-21 08:18 | 只看该作者
song19881218 发表于 2012-12-20 20:18
把两个程序都用Jlink写进去,然后用jlink或者ISP再读出来就行了

可以用仿真器把两个程序都写进去,但是读出来干嘛呢?如果分两个工程的话,是可以指定ROM起始地址的。

使用特权

评论回复
6
lxyppc| | 2012-12-21 09:15 | 只看该作者
修改链接脚本,更改程序的地址空间

使用特权

评论回复
7
21ID|  楼主 | 2012-12-21 16:46 | 只看该作者
lxyppc 发表于 2012-12-21 09:15
修改链接脚本,更改程序的地址空间

我是想在同一个工程下,把放置现在的两个程序,然后在烧写的时候直接烧写到指定的ROM中。

使用特权

评论回复
8
jack821119| | 2012-12-26 19:30 | 只看该作者
在keil c设置里面直接分配好rom的区间就可以了,或者在M51文件里面改也可以

使用特权

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

本版积分规则

157

主题

912

帖子

5

粉丝