freemann 发表于 2008-10-28 16:40:24

请教NEC compiler 问题【恢复】

我用CC78K0S编译通过, 但link有下面的问题: 

*** ERROR F206 Segment '@@DATA' can't allocate to memory - ignored. 

*** ERROR F206 Segment '@@INIT' can't allocate to memory - ignored. 



我用的是F9222. 下面是MAP文档,  



8K/0S Series Linker W1.40                    Date:28 Oct 2008 Page:   1 

Command:   -fmain.plk 

Para-file: -yC:\NECTOOLS32\DEV\ 

           main.rel 

            

Out-file:  main.lmf 

Map-file:  main.map 

Direc-file: 

Directive: 



*** Link information *** 



    12 output segment(s) 

  C28H byte(s) real data 

   427 symbol(s) defined 





*** Memory map *** 





  SPACE=REGULAR 



  MEMORY=ROM 

  BASE ADDRESS=0000H    SIZE=1000H 

         OUTPUT   INPUT    INPUT      BASE      SIZE 

         SEGMENT  SEGMENT  MODULE     ADDRESS 

* gap *                               0000H     0008H 

         @@VECT08                     0008H     0002H   CSEG AT 

                  @@VECT08 main       0008H     0002H 

* gap *                               000AH     000CH 

         @@VECT16                     0016H     0006H   CSEG AT 

                  @@VECT16 main       0016H     0006H 

* gap *                               001CH     0002H 

         @@VECT1E                     001EH     0002H   CSEG AT 

                  @@VECT1E main       001EH     0002H 

* gap *                               0020H     0020H 

         @@CALT                       0040H     0000H   CSEG CALLT0 

                  @@CALT   main       0040H     0000H 

* gap *                               0040H     0040H 

         opt                          0080H     0B19H   CSEG AT 

                  opt      main       0080H     0B19H 

         @@R_INIS                     0B99H     0000H   CSEG UNITP 

                  @@R_INIS main       0B99H     0000H 

         @@CNST                       0B99H     0009H   CSEG 

                  @@CNST   main       0B99H     0009H 

         @@R_INIT                     0BA2H     00FCH   CSEG 

                  @@R_INIT main       0BA2H     00FCH 

* gap *                               0C9EH     0362H 



  MEMORY=RAM 

  BASE ADDRESS=FE00H    SIZE=0200H 

         OUTPUT   INPUT    INPUT      BASE      SIZE 

         SEGMENT  SEGMENT  MODULE     ADDRESS 

* gap *                               FE00H     0020H 

         @@INIS                       FE20H     0000H   DSEG SADDRP 

                  @@INIS   main       FE20H     0000H 

         @@DATS                       FE20H     0000H   DSEG SADDRP 

                  @@DATS   main       FE20H     0000H 







78K/0S Series Linker W1.40                    Date:28 Oct 2008 Page:   2 



         @@DATA                       FE20H     008BH   DSEG 

                  @@DATA   main       FE20H     008BH 

         @@BITS                       FEABH     0000H   BSEG 

                  @@BITS   main       FEABH.0   0000H.0 

* gap *                               FEABH     0055H 

* gap (Not Free Area) *               FF00H     0100H 







78K/0S Series Linker W1.40                    Date:28 Oct 2008 Page:   3 



*** Not allocated segment *** 



SEGMENT   SIZE     TYPE         MEMORY 



@@INIT    00FCH    DSEG         RAM 







请教高手, 这是什么问题?  是不是Flash不够用了? 

liu.zy 发表于 2008-11-3 09:38:11

@@INIT段用于存放有初值的数据段,@@DATA是无初值的数据段,知道了段的作用,对修改程序也是会有帮助的。

具体可参见CC78K0 C编译器语言篇P528,B1,文档编号U17200EJ1V0UM00。

freemann 发表于 2008-10-29 13:35:36

提醒我了, 是常数太多, 已解决, 非常感谢

RENESAS-etouch 发表于 2008-10-29 12:29:39

不知你能否将你的程序贴上来呢?我今天还帮一个客户解决了类似你这样的问题,他的问题是在程序中定义了大量的变量,我建议他把常量存储在FLASH后,就解决问题了。

希望看着你的代码,这样找问题比较容易

freemann 发表于 2008-10-28 18:15:19

非常感谢, 拿掉上面的option后,

 

去掉了*** ERROR F206 Segment '@@DATA' can't allocate to memory - ignored.  



但还有"  *** ERROR F206 Segment '@@INIT' can't allocate to memory - ignored. " 



不知道该怎么处理? 请高手指较, 多谢

本贴被 freemann 编辑过,最后修改时间:2008-10-29,09:06:39.

sophie0403 发表于 2008-10-28 17:13:00

先试着把图片上fix area上的钩去掉

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_472238.JPG

 (原文件名:1.JPG) 
页: [1]
查看完整版本: 请教NEC compiler 问题【恢复】