在你告诉我我的程序使用太多内存之前......
我知道"无法向后移动位置计数器意味着" ... 这是真正的问题...... 我有一个编译器没有问题的链接器文件。
调用此链接器文件发布版本....
toggle = (user) => this.setState({DropdownOpen: !this.state.DropdownOpen});
注意占用的整个空间是64k ......这个编译 但是当我尝试使用以下链接器文件(debug)时;我得到了位置计数器错误
MEMORY
{
/* SOFTCONSOLE FLASH USE: microsemi-smartfusion2-envm */
rom (rx) : ORIGIN = 0x20000000, LENGTH = 35k
/* SmartFusion2 internal eSRAM */
ram (rwx) : ORIGIN = 0x20008C00, LENGTH = 29k
}
RAM_START_ADDRESS = 0x20008C00; /* Must be the same value MEMORY region ram ORIGIN above. */
RAM_SIZE = 29k; /* Must be the same value MEMORY region ram LENGTH above. */
MAIN_STACK_SIZE = 11k; /* Cortex main stack size. */
MIN_SIZE_HEAP = 512; /* needs to be calculated for your application */
两个链接器文件之间的唯一区别是show plus在发布版本中有任何> rom或> ram AT> rom指令,它在调试版本中被> ram替换......
我正在使用相同的优化和调试标志 当我尝试链接调试版本时,我收到以下错误
MEMORY
{
/* SmartFusion2 internal eSRAM */
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64k
}
RAM_START_ADDRESS = 0x20000000; /* Must be the same value MEMORY region ram ORIGIN above. */
RAM_SIZE = 64k; /* Must be the same value MEMORY region ram LENGTH above. */
MAIN_STACK_SIZE = 11k; /* Cortex main stack size. */
MIN_SIZE_HEAP = 512; /* needs to be calculated for your application */
任何人有任何想法???