This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
默认的F28035.cmd中有如下定义:
PAGE 1 : /* Data Memory */ /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */ /* Registers remain on PAGE1 */ BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */ RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */ RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ RAML2 : origin = 0x008C00, length = 0x000400 /* on-chip RAM block L2 */ RAML3 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L3 */ FLASHB : origin = 0x3F4000, length = 0x002000 /* on-chip FLASH */
想问一下那个FLASHB的定义是什么意思?怎么用?
感谢回答。
Flash分块我理解,我是疑问如下:
cmd文件里通常定义两个Memory Page(0和1),0是Program memory, 1是Data memory。
Program memory定义了.text等代码空间,Data memory定义了stack和ebss等数据空间,所以RAMM0和RAML1这些我能理解,我的问题是:
为什么Data memory里也有一个FLASH块?难道我可以把一部分Data放到flash上吗?如果是,那这部分Data是可写呢还是只读?
是不是可以定义这样一个section:
constdata : >FLASHB, Page = 1
用于存放程序中的常量?
cmd文件里通常定义两个Memory Page(0和1),0是Program memory, 1是Data memory。
Program memory定义了.text等代码空间,Data memory定义了stack和ebss等数据空间,所以RAMM0和RAML1这些我能理解,我的问题是:
为什么Data memory里也有一个FLASH块?难道我可以把一部分Data放到flash上吗?如果是,那这部分Data是可写呢还是只读?
是不是可以定义这样一个section:
constdata : >FLASHB, Page = 1
用于存放程序中的常量?
ERIC: page0, page1程序空间,数据空间的概念是以前老一代C2000沿用下来的概念,现在而言,两者可以视为一样的东西,不用去区分具体含义。
你只要记住,不变的数据分配在FLASH,变化的数据放在RAM。 如你定义的const常量数据,放在FLASHB是没问题的。
另外,举例,也可以如此来做
constdata : >FLASHC, Page = 0