a 单片 PC 程序所需rom大小如何计算?51 单片 PC 程序、51 单片 PC /,最大操作尺寸是多少?51 单片 machine是一个准16位单片 machine,寻址范围为2 16 KB。如果程序很大,建议更换芯片,ROM的情况比较简单,一般情况下,ROM 单片 machine有多少,以及程序 machine用了多少,都会在编译时汇总,如果不是直接给定,生成的地图文件肯定会包含这些信息。
什么意思?这个问题不清楚。简单点说吧。存储空间分为ROM和RAM。ROM的情况比较简单。一般情况下,ROM 单片 machine有多少,以及程序 machine用了多少,都会在编译时汇总。如果不是直接给定,生成的地图文件肯定会包含这些信息。RAM的使用可以分为两部分:静态分配和动态分配。静态分配是指静态变量、全局变量等。比如写程序时分配的显示缓冲区,编译时也会汇总,也可以看看映射文件。
堆由程序员通过编程控制,通过malloc和free申请和释放,使用多少由程序 member决定。最后,stack,这是最复杂的。局部变量一般分配在堆栈上,也有少部分局部变量可能作为寄存器变量放在寄存器上,但大部分都放在堆栈上。堆栈空间的具体使用取决于sub 程序之间的调用。如果child 程序嵌套层数较少,则堆栈的空间可能使用较少,如果层数较多,则空间可能使用较多。
大部分人不会统计ROM的大小,最多只是估计。因为一个完整的程序,不同的人,即使是同一个人,思维方式也是不一样的,程序,大小也会不一样。除了算法,你的程序还有很多其他的东西,比如显示,按键,通讯等等,可能比你的算法的程序要大很多。所以我建议你先用仿真(比如PROTEUS仿真),选择一个ROM 单片足够大的机器,编译一个完整的程序就知道程序空间花了多少了。
3、 单片机 程序大小是看生成的HEX文件的大小还是看KEIL编译结束后显示的CO...当然是代码的大小,hex是你的文本文件的大小,和代码的大小不一样。那当然是KEIL编译后显示的代码大小。它是十六进制的大小,因为十六进制文件是下载到单片 machine的。这里需要的是,无论是HEX的大小,还是编译代码的大小,都不是烧录到MCU中的代码的“真实”容量。因为涉及到数据存储格式,我就不详细说了。
4、请问51 单片机最大可以运行多大的 程序,最好是STC的,C语言这款的最大内部空间单片machine程序是60K,可以解决堆栈溢出的问题,内部2KRAM就可以了,不用担心堆栈溢出的问题。stc12c5a60s2芯片集成了1280个扩展ram。51 单片 machine是一个准16位单片 machine,寻址范围为2 16 KB。如果程序很大,建议更换芯片。最后,这个语言有点霸道,不过还是回答你的问题比较好:STC12C5A60S2大概能运行5960K 程序,子功能很多,有几个?
5、51 单片机的 程序大小问题?你实际下载到单片 machine的不是十六进制文件而是bin文件。虽然你用下载软件选择了一个hex文件,但是下载软件会把hex转换成bin文件,下载到单片 machine。没有可以把hex转换成bin的小工具。其实4khex入bin不止1k。bin是一个二进制文件。模拟极限是64K。实际单片电脑内存有64k,看最简单的型号,内存只有2k。hex是一个可执行文件,也可以看作是actual 程序 size。其实可以压缩成bin文件,体积可以更小。
file 6、51 单片机 程序空间大小
HEX为19KB,实际代码量估计在6~7KB左右,而STC89C51为8KB,刚好可以放进去。你要看你写的代码的大小,只看编译后的代码等于多少,而不是看十六进制文件的大小,用HEX2BIN直播把HEX文件转换成BIN格式,然后看看有多大。下载到电脑上的单片-1/是二进制数据,十六进制文件的内容是用ASCII码表示的数据,所以一个19KB的十六进制文件转换成二进制文件可能只有几公斤,很难说一个8kb的flash能允许多大的十六进制文件,除了一个8kb的flash可以存储一个8kb的二进制文件。
文章TAG:单片 程序 机中 拷贝 怎样看单片机程序有多大