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.

c6748 map如何解读?

c6748 map如何解读?

其中 定义的全局数组 (初始化的)是在fardata2中的,出现过全局数据好像被修改过的,请问什么情况会出现该问题?

 

  • 在map文件里对每一列都有标注,如output section, page, origin, length, used等等
  • 其中 定义的全局数组 (初始化的)是在fardata2中的,出现过全局数据好像被修改过的,请问什么情况会出现该问题?
  • 你没有完全初始化嘛,链接的时候会扫描并尝试用copy table做处理,在load后进入main前会执行copy table的再次搬移/memcpy/等操作,以减少链接出来的文件大小。简单来说就是,你定义个1000的数组并初始化了前面的128个头,那么这128个数据会放在cinit段或其他初始化段,并用一个memcpy+memclear操作在运行时完成你的这段数据的初始化,而不需要弄个128初始化+大坨0的段,这样编译出来的镜像会小很多并且加载更快。
    当前也可以强制弄成后面这种,在链接时指定RAM mode(-cr)而不是默认的ROM mode即可