芯片IC单片机解密百科

十年专注单片机解密

意法STM32的icf文件有何作用?

每个芯片开发商都会针对每款芯片来编写一个。icf文件就是传说中的链接文件。对于基本的应用,这个。icf文件足以满足你的工程需要。但有时也会需要改动,比如当你的项目要添加外部RAM时就要修改一下icf。

1、Icf到底干了啥呢?

定义了芯片存储空间的大小。

定义ROM的大小和起始、结束地址。

定义RAM的大小和起始、结束地址。

当然这些都是最基本的,你也可以设置以下的东西来匹配你的具体项目。

链接时是否保存位块与符号

设置你的启动过程

设置你的堆与栈的大小和对齐方式

修改编译器默认的初始化过程。

关于默认库的处理等。。。

2、意法STM32的icf文件有何作用?下面简单介绍几个功能:

宝赢彩票平台2.1  添加额外的region

比如我要添加另一个名为ROM2的ROM区域,大小是256bytes,起始地址是0x80000.

define region ROM = Mem:[from 0x80000 size 0x100];

2。2 教你怎样放置SECTION

如果你要把你的只读常量放置在你指定的域而不是编译器默认的位置,你就得按如下操作了:

define region CONST_region = Mem:[from 0x100 size 0x100];

place in CONST_region{readonly section 。rodata}

2.3 把一个段放置在指定位置

place at address Mem:[0]  {readonly section .intvec} //--将向量表放置在地址0处。

STM32芯片解密

      Note:之前在看启动代码时,老在想这个向量表示怎么放到地址0处的呢,查了一下reference

__vector_table是编译器专有字符,表示出处开始放置向量表。

在代码开始处就声明了此段为.intvec。链接的时候在依据icf把它放到地址0处。

2。4 将需要从RAM中运行的代码搬到RAM中

Initialize by copy {section .textrw}


内蒙古快3走势图 百盈彩票平台 内蒙古快3走势图 爱尚彩票充值 内蒙古快3走势图 内蒙古快3 170彩票 博牛彩票计划软件 内蒙古快3 内蒙古快三走势图