您的位置:首页 > 其它

STM32 分散加载文件 IAP —MDK

2013-06-07 12:33 253 查看
作者:阿拉丁神丢

转自:http://blog.sina.com.cn/s/blog_6035432c0100u5v6.html

; *************************************************************

; *** Scatter-Loading Description File generated by uVision ***

; *************************************************************
LR_IROM1 0x08000000 0x00004000 ; load region size_region 第一个加载域,起始地址0x08000000,{ 大小0x00004000
ER_IROM1 0x08000000 0x00004000 ; load address = execution address 第一个运行时域,
{ 起始0x08000000,大小0x00004000
*.o (RESET, +First) IAP第一阶段还是在FLASH中运行

*(InRoot$$Sections)

startup_stm32f10x_md.o

}

ER_IROM2 0x20008000 0x00004000 ; load address = execution address第二个运行时域,

{ 起始0x20008000,大小0x00004000
.ANY (+RO) IAP第二阶段加载到SDRAM中运行

}

RW_IRAM1 0x20000000 0x00008000 ; RW data 把可读写的数据和初始化为0的数据放在内存SDRAM的开头
{
.ANY (+RW +ZI)

}

}

做个比喻:就像一列火车在起始地址0x08000000装上大小0x00004000的货物,然后把特定的货物送到指定的地方拿下来运行或者存放。上面这辆火车就停了3个地方。

编译时出现一下警告:
warning: L6314W: No section matches pattern address(RO).




在Target中的Linker中有一栏Misc controls,键入
--diag_suppress=L6314
即可,如下




--diag_suppress 
taglist

禁用所有具有指定标签的诊断消息。
此选项需要以逗号分隔的诊断消息编号列表,用于指定要禁止显示的消息。 例如,要禁止显示编号为 [code]L6314W
L6305W
的警告消息,请使用以下命令:
armlink --diag_suppress L6314,L6305 ...


LR_IROM1 0x08000000 0x00004000 { ; load region size_region

ER_IROM1 0x08000000 0x00004000 { ; load address = execution
;address

*.o (RESET, +First)

*(InRoot$$Sections)

startup_stm32f10x_md.o

}

ER_IROM2 0x20008000 0x00004000 { ; load address = execution
;address

.ANY (+RO)

}

RW_IRAM1 0x20000000 0x00008000 { ; RW data

.ANY (+RW +ZI)

}

}
把两个address注释掉就可以了,没有任何警告
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: