概述
MDK中三种linker
1、采用target对话框中的ROM和RAM地址
采用此方式,需在Linker选项卡中勾选Use Memory Layout from Target Dialog选项(选中这一项实际上是默认在Target中对Flash和RAM的地址配置,编译链接时会产生一个默认的脚本文件),并且在Target中设置好RAM、ROM地址,图2所示。MDK会根据Target选项中设定的RAM和ROM地址自动加载生成一个加载文件。最后链接器会根据此文件中的信息对目标文件进行链接,生成axf镜像文件。
2、直接通过Linker选项卡中的R/O Base和R/W Base来设定链接信息。
链接器最后可根据此处指定的地址信息进行链接,链接的文件应该是顺序存放了,最多RO和RW分开。此时需要注意的是应将Use Memory Layout from Target Diaglog前的勾去掉,且保证Scatter File一栏中未包含分散加载文件,并且要在Misc controls中设定镜像文件的入口点,
R/W Base空着没填,意思就是说紧跟着R/O Base地址。
3、最后一种为直接采用分散加载文件。
将R/O Base R/M Base内容去掉,选择使用scatter file文件(分撒加载描述文件),那么其他链接方式的设置自动失效。可以从Linker control string的信息可以看出来。
为了将我们裸机代码下载到NandFlash的0地址处,并正确运行,必须得掌握ROM和RAM的地址分配。
最后
以上就是奋斗身影为你收集整理的MDK中三种linker的全部内容,希望文章能够帮你解决MDK中三种linker所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复