打印

程序代码比单片机内部ROM大了,怎么办?

[复制链接]
4366|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zxq1234508|  楼主 | 2007-5-23 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
Airwill| | 2007-5-23 16:50 | 只看该作者

哈哈

1. 换大rom 的片子
2. 代码优化(指针和循环往往会出奇制胜)
3. 外挂 rom 可是不好的选择(大多片子也不支持)

使用特权

评论回复
板凳
zxq1234508|  楼主 | 2007-5-23 16:50 | 只看该作者

自己顶一下先!

使用特权

评论回复
地板
zxq1234508|  楼主 | 2007-5-23 17:06 | 只看该作者

回2楼

大ROM的单片机有那些啊,我估计我这各程序代码由几十K吧,如果要从外部调用的话是不是要具有BOOTLOADER功能的芯片?

使用特权

评论回复
5
后学| | 2007-5-23 17:57 | 只看该作者

EA

使用特权

评论回复
6
ww4u| | 2007-5-23 19:18 | 只看该作者

同意

利用EA可以选择程序启动方式为低时读外部ROM,为高时读内部ROM

使用特权

评论回复
7
winhiwang| | 2007-5-23 19:48 | 只看该作者

你用的是什么单片机呀

  大多少,压缩一下程序,多做些子程序什么的

使用特权

评论回复
8
zxq1234508|  楼主 | 2007-5-24 07:56 | 只看该作者

用的是AT89S2的内部ROM8K,用keil编译后
Program Size: data=60.6 xdata=759 code=17594
想请教一下,keil 里怎么看编译后的代码有多长?
另外,5楼说的利用EA,那程序代码要不 要做特殊处理?直接把程序烧录到外部ROM就可以了?

使用特权

评论回复
9
后学| | 2007-5-24 08:01 | 只看该作者

code=17594

直接把程序烧录到外部ROM就可以了

使用特权

评论回复
10
fsaok| | 2007-5-24 08:40 | 只看该作者

.

用的是AT89S2的内部ROM8K,用keil编译后
Program Size: data=60.6 xdata=759 code=17594

换89C55就可以了

使用特权

评论回复
11
救火车| | 2007-5-24 08:55 | 只看该作者

AT89C55WD

使用特权

评论回复
12
hqgboy| | 2007-5-24 10:43 | 只看该作者

stc89c516 64k w78e516 64k

atmega128 128k
lpc2138 512k
mc9s08aw60 60k

使用特权

评论回复
13
conwh| | 2007-5-24 10:48 | 只看该作者

因为是单片机能不加外片的就不加

使用特权

评论回复
14
孤独泪| | 2007-5-24 10:57 | 只看该作者

还可以选择优化方式9

应该可以为你节省很多空间,
综合比较方法如下:
1:编译器优化方法选择
2:程序精简
3:选择片内rom较大的cpu,原则兼容,成本变化不大。
4:外部扩展rom.
5: 实在没办法了,改cpu,能够扩展更大的rom。
6: 在实在没办法,程序还是太大了,别找理由了,不就是想把项目XX吗?

使用特权

评论回复
15
zxq1234508|  楼主 | 2007-5-24 13:30 | 只看该作者

====

外部扩展ROM有没有特殊的要求?只要把程序烧进去就可以了?
还有就是keil里编译了的代码长度怎么看?还是计算?

使用特权

评论回复
16
古道热肠| | 2007-5-24 13:35 | 只看该作者

Keil环境代码长度能看到

  如楼上朋友的结果Program Size: data=60.6 xdata=759 code=17594
  代码长度为17594Byte,17K多一点,记住8K长度最大8192 32K最大32768
......

使用特权

评论回复
17
zxq1234508|  楼主 | 2007-5-24 15:37 | 只看该作者

多谢古道热肠

明白怎么看代码长度了,嘿嘿。。。。

使用特权

评论回复
18
yinjunlei| | 2007-5-24 15:56 | 只看该作者

C8051F120 ROM 120K

使用特权

评论回复
19
孤独泪| | 2007-5-24 16:16 | 只看该作者

还有老兄不仅是ROM不够

Program Size: data=60.6 xdata=759 code=17594。
89c52本人记得片内没有xdata,就是有肯定没有759。只有128字节data.
你这个程序可以选有sm8958或者stc8958接近。
资源分别为sm8958, 256data  1024-256 xdata, 32768flash(rom).
          stc8958,256data  1024xdata,      32768-2048 flash(rom).
还有写程序时尽量用data。

使用特权

评论回复
20
zxq1234508|  楼主 | 2007-5-24 16:59 | 只看该作者

可以把程序下载到外部ROM吗?

多谢孤独泪的提醒,不过我在外部扩展了RAM了的,不怕XDATA不够。
现在我想知道的是可不可以把程序全部烧录到外部ROM里吗?那样的话硬件上要不要特殊设计?51系列的单片机有没有这种功能?DSP好象有这功能
BOOTLOADER?)

使用特权

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

本版积分规则

90

主题

486

帖子

0

粉丝