见附图
MCU为 STM32F042C6T6,32Kbytes Flash,6Kbytes SRAM。
请问,使用MDK5.20生成 10Kbytes 的hex,可以 在该MCU上 正常运行吗 ?
谢谢 !
附图
本帖最后由 yhye2world 于 2016-11-6 00:41 编辑
HEX里面是ROM的镜像,从文件大小推断ROM装下没问题的,得看RAM的用量了。
假如程序代码不多,但是要求使用RAM超过6kB的话就不行。
但是,关键的一点,STM32型号众多,你这个工程是为什么器件编译的?
可以,看下keil的编译信息
Code 代表执行的代码,程序中所有的函数都位于此处。
RO-data 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。
RW-data 代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。
ZI-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 是否 够用呢 ?
附图:
本帖最后由 yhye2world 于 2016-11-6 00:43 编辑
看你的截图里面,MCU选的是STM32F10x, 但是你的MCU是STM32F042,硬件不兼容,不能运行的。
见附图,为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
不是的,你要分清哪些需要用到ram,你的变量,数组,申请的内存这些是占内存的,还有就是函数调用用到的栈,建议看一下堆栈的区别就知道了。