微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新人求助:如何解决CubeSuit+ 编译E3206错误 的问题?

新人求助:如何解决CubeSuit+ 编译E3206错误 的问题?

时间:10-02 整理:3721RD 点击:
如何解决CubeSuit+ 编译  RA78K0 error E3206:Segment'@@CODE' can't allocate to memory -ignored 的问题?


问题是由于程序代码大于共用flash引起的,需要把部分代码放到Bank(bank0或者其他)中。
解决办法:
(1)创建一个lk.dr文件,然后编入:merge segment1 :=BANK0
;merge segment2 :=BANK1
(2)把lk.dr添加到工程中;
(3)把要放在bank中的C文件,在C代码文件的头顶加入
#pragma section @@CNST segment1
然后编译,观察map文件再做调整。
以上方法由QQ群:瑞萨(NEC)应用交流 173700459 古董大神提供。
问题是我这样操作了,编译后查看map发现有以下疑问:
78K/0 Series Linker V4.01                     Date:22 Jan 2015 Page:   3
                  @@R_INIS @ROM       00085H    00000H
         @@CNST                       00085H    00000H  CSEG UNITP
                  @@CNST   @cstart    00085H    00000H
                  @@CNST   MCU_Init   00085H    00000H
* gap *                               00085H    0000AH
* gap (Not Free Area) *               0008FH    00101H
         @@LCODE                      00190H    000AFH  CSEG
                  @@LCODE  @cstart    00190H    00076H
                  @@LCODE  @imul      00206H    00014H
                  @@LCODE  @hdwinit   0021AH    00001H
                  @@LCODE  exit       0021BH    00024H
         @@CODE                       0023FH    07C34H  CSEG
                  @@CODE   main       0023FH    04F42H
                  @@CODE   MCU_Init   05181H    000E8H
                  @@CODE   ZGDSP2Comm
                                      05269H    0080EH
                  @@CODE   ZGDSPComm
                                      05A77H    0079DH
                  @@CODE   ZGInComm   06214H    0062CH
                  @@CODE   ZGOutComm
                                      06840H    006BBH
                  @@CODE   ZGPMVPro   06EFBH    00BEAH
                  @@CODE   ZGSamp     07AE5H    0038EH
* gap *                               07E73H    0018DH
  MEMORY=BANK0
  BASE ADDRESS=08000H   SIZE=04000H
         OUTPUT   INPUT    INPUT      BASE      SIZE
         SEGMENT  SEGMENT  MODULE     ADDRESS
         segment1                     08000H    0183AH  CSEG UNITP
                  segment1 main       08000H    00330H
                  segment1 ZGDSP2Comm
                                      08330H    00446H
                  segment1 ZGDSPComm
                                      08776H    00812H
                  segment1 ZGInComm   08F88H    00108H
                  segment1 ZGOutComm
                                      09090H    00000H
                  segment1 ZGPMVPro   09090H    00190H
                  segment1 ZGSamp     09220H    0061AH
* gap *                               0983AH    027C6H
@@CODE都是在共用Flash
而@@CNST是指 代码中定义的常量在bank0中
那么如果我的code还需要增加一些,那怎么办?
可不可以设置把@@CODE也放一部分到bank0呢?

希望各位大神能答疑!谢谢……

上一篇:STM32迷茫中
下一篇:串口调试教程

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top