器械天生BIN文献的历程GNU Objcopy,性的SECTION依照LMA的先后按次提取出来本质上即是把ELF文献中各个界说了LOAD属,N文献中写入BI。地点倘若不是一连的SECTION的,UMMY或指定的数据间隔个别则会填充D。加上对应的SECTION的Size是以BIN文献的巨细为最大LMA。 以所,N文献很大倘若BI,码段和数据段很大那阐述可加载的代。测试项目中正在咱们的,是固定的代码段;N文献很大现正在BI,段过大导致的阐述是数据。 之后的工程编译篡改,BET188亚洲体育常运转的是能够正,标文献转为BIN文献之后然则咱们发觉当把ELF目,文献十分的大发生的BIN。IN文献实行下载的话这就导致倘若操纵B,载告捷的是无法下,赶过了Flash的存储空间由于BIN文献的巨细以及。看到BIN文献的巨细为650M由下图BIN文献属性咱们能够。 CubeIDE举动集成开拓器械越来越多的客户正在操纵STM32。DE正在编译代码的时辰STM32CubeI,链接剧本用到了。处境下平淡,会主动天生默认的链接剧本STM32CubeIDE。些处境下然则有,12博乐天堂APP。如例,段来安置代码或者数据的时辰用户步伐需求界说少许分表的,改链接剧本文献咱们就需求修。 译取得的目的ELF文献依赖篡改后的链接剧本编,段刻画查看其,的属性不再为LOAD能够晓得新增加的段。正在实行BIN文献天生的时辰GNU Objcopy器械,载这两个段也不会加。以所,蕴涵有用的代码段和数据段最终取得的BIN文献只,428字节巨细为24。188bet亚洲登录 中增加两个数组同时正在源代码,SECTIONS平分别定位正在增加的,如下参考。 ions Map中从上图的Sect,有几个闭节的参数和类型每个Section会。ection的巨细Size为每个S,n正在步伐运转时辰的地点VMA是指Sectio,正在Flash中的加载地点LMA是指Section。ash实行的步伐平淡处境下从Fl,和LMA是雷同的Code段VMA。A会放正在RAM中Data段的VM,Flash中LMA会放正在,A和LMA平淡不雷同是以Data段的VM。的类型中正在每个段,属性是LOAD尚有一个闭节的,LOAD属性倘若界说了,写入Flash中的那阐述这个段是需求。 链接剧本文献天生目的ELF文献STM32CubeIDE依赖,目的文献之后天生ELF,bjcopy器械把ELF文献转为BIN文献STM32CubeIDE会依赖GNU O。简单点来说这个历程简,载数据段依照地点音讯按次天生BIN文献即是提取ELF文献中的代码段以及可加。 述了BIN文献的发生历程本文通过一个实在的题目阐,式做了一个纯洁的先容同时对链接剧本的格。需加载却导致BIN文献过大的题目STM32用户后期倘若碰到变量无,法实行惩罚可依据该方。 么大呢?文献就出正在ld链接剧本文献这里那么是什么来因导致发生的BIN文献这。 eIDE创修工程的时辰操纵STM32Cub,成后缀为ld的链接剧本文献正在项目工程目次文献夹下生,会依赖链接剧本文献步伐的编译和链接都。图所示如下,6的RAM空间被蕴涵6块STM32H743VIT,始地点是独立的每块RAM的起,M区域安置数据或者代码的时辰倘若客户需求把指定特定的RA,链接剧本文献需求手动篡改。 篡改链接剧本后比来有客户正在,浮现题目编译没有。的BIN文献很大然则编译之后天生,到Flash中导致无法烧录。个题目维系这,的来因以及处分想法本文详明了解一下它。 粹的二进造机械代码BIN文献是最纯,按次花式或者说是。成binary machine code依照assembly code按次翻译,地点标志内部没有。的内存映象显露BIN是直接,所蕴涵的数据的本质巨细二进造文献巨细即为文献。直接的二进造文献BIN文献即是,写时从00起初普通用编程器烧,下载运转而倘若,时的地点即可则下载到编译。Javascript