[求助] 32Kbytes Flash,6Kbytes SRAM,可以运行多大的hex ?

yhye2world   2016-11-5 16:47 楼主
见附图 MCU为 STM32F042C6T6,32Kbytes Flash,6Kbytes SRAM。 请问,使用MDK5.20生成 10Kbytes 的hex,可以 在该MCU上 正常运行吗 ? 谢谢 ! 附图 111.png 本帖最后由 yhye2world 于 2016-11-6 00:41 编辑

回复评论 (14)

2推荐 cruelfox 

HEX里面是ROM的镜像,从文件大小推断ROM装下没问题的,得看RAM的用量了。
假如程序代码不多,但是要求使用RAM超过6kB的话就不行。
但是,关键的一点,STM32型号众多,你这个工程是为什么器件编译的?
点赞  2016-11-5 20:55
可以,看下keil的编译信息

Code 代表执行的代码,程序中所有的函数都位于此处。
RO-data 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。
RW-data 代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。
ZI-data 代表未初始化的读写数据,程序中定义了但没有初始化的全局变量和静态变量位于此处。

training
点赞  2016-11-5 20:32
引用: 白丁 发表于 2016-11-5 20:32
可以,看下keil的编译信息

Code 代表执行的代码,程序中所有的函数都位于此处。
RO-data 代表只读数据 ...

谢谢版主,学习了
点赞  2016-11-5 21:28
引用: cruelfox 发表于 2016-11-5 20:55
HEX里面是ROM的镜像,从文件大小推断ROM装下没问题的,得看RAM的用量了。
假如程序代码不多,但是要求使用 ...

谢谢大侠指点!

MCU的型号是:STM32F042C6T6
点赞  2016-11-5 21:54
引用: 白丁 发表于 2016-11-5 20:32 可以,看下keil的编译信息 Code 代表执行的代码,程序中所有的函数都位于此处。 RO-data 代表只读数据 ...
谢谢版主 ! 见附图,为uVision V5.20.0.0的编译信息: Program Size: Code=3336 RO-data=224 RW-data=24 ZI-data=1088 我的理解如下: 3336 + 224 + 24 + 1088 = 4,672 bytes 也就是说:程序对flash的需求是 4,672bytes( STM32F042C6T6 的flash为32Kbytes),因此,flash够用。 (不知我的理解是否正确,还请大侠 轻拍、指点!) 请教: 如何知道SRAM 是否 够用呢 ? 附图: 112.png 本帖最后由 yhye2world 于 2016-11-6 00:43 编辑
点赞  2016-11-5 22:04
看你的截图里面,MCU选的是STM32F10x,  但是你的MCU是STM32F042,硬件不兼容,不能运行的。
点赞  2016-11-5 22:46
引用: cruelfox 发表于 2016-11-5 22:46
看你的截图里面,MCU选的是STM32F10x,  但是你的MCU是STM32F042,硬件不兼容,不能运行的。

谢谢大侠 !

已经 更改过了,请帮我看看
点赞  2016-11-6 00:44
见附图,为uVision V5.20.0.0的编译信息:
Program Size: Code=3336 RO-data=224 RW-data=24 ZI-data=1088  

这个编译信息:

flash = code + RO = 3336+224 = 3560


RAM = RW+ ZI_data = 1088+24 = 1112

对32Kbytes Flash,6Kbytes SRAM。

完全够用,请放心用吧
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2016-11-6 09:57
引用: ddllxxrr 发表于 2016-11-6 09:57
见附图,为uVision V5.20.0.0的编译信息:
Program Size: Code=3336 RO-data=224 RW-data=24 ZI-data=1088 ...

明白了 ,谢谢 版主的详细 指点 !
点赞  2016-11-6 13:14
10K的hex文件,4K的RAM,不可以
点赞  2016-11-6 14:19
引用: yhye2world 发表于 2016-11-5 22:04
谢谢版主 !

见附图,为uVision V5.20.0.0的编译信息:
Program Size: Code=3336 RO-data=224 RW-dat ...

不是的,你要分清哪些需要用到ram,你的变量,数组,申请的内存这些是占内存的,还有就是函数调用用到的栈,建议看一下堆栈的区别就知道了。
training
点赞  2016-11-6 19:02
引用: suoma 发表于 2016-11-6 14:19
10K的hex文件,4K的RAM,不可以

不是4K的RAM,是6K的SRAM
点赞  2016-11-7 09:10
引用: suoma 发表于 2016-11-6 14:19
10K的hex文件,4K的RAM,不可以

大多数人都说可以,我感觉 说的 也有道理
你说不可以,能详细的说下 原因 吗 ?
点赞  2016-11-7 09:12
引用: 白丁 发表于 2016-11-6 19:02
不是的,你要分清哪些需要用到ram,你的变量,数组,申请的内存这些是占内存的,还有就是函数调用用到的 ...

谢谢版主的 精彩 回帖 !
明白了
点赞  2016-11-7 09:12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复