[应用方案] 通过KEIL搭建工程,Option的配置记录

[复制链接]
 楼主| kqh11a 发表于 2023-9-21 16:08 | 显示全部楼层 |阅读模式

背景:使用芯圣HC89S003AF4芯片,实现其ISP功能。
注意:该项目中使用到第二复位向量,第二复位向量使能时,无法在仿真环境下查看code区数据,因此不能进行硬件仿真。
Device
61857650bf9bf1844b.png

Keil μVision2是一个集成开发环境(IDE,支持编辑、编译、链接、调试)。Keil主要包括以下几大模块:
Cx51:C文件编译器,负责将C文编译成可重定位的目标文件。

Ax51:汇编文件编译器,负责将汇编文件编译成可重定位的目标文件。

BL51:链接器/定位器,组成可重定位的目标文件,生成绝对目标文件。

LX51:扩展链接器/定位器,优化了BL51的功能,可以生成更小的目标文件。

LIB51:库管理器,从目标文件生成链接器可使用的库文件。

OH51:将目标文件转换成Inter Hex文件。


 楼主| kqh11a 发表于 2023-9-21 16:08 | 显示全部楼层
Target
代码默认从地址0开始存放,此处我需要将代码的存放地址从0x3800开始,此处需要修改Eprom Start。
不要忘记还有STARTUP.A51文件中的代码开始位置。

72609650bfa0cb71bb.png
 楼主| kqh11a 发表于 2023-9-21 16:08 | 显示全部楼层
jflahdink09 发表于 2023-9-21 16:12 | 显示全部楼层
 楼主| kqh11a 发表于 2023-9-21 16:13 | 显示全部楼层
Memeoy Model:主要是设置默认变量的内存类型,如果选择Small,表明栈及默认(未显式指明内存类型)的变量都是idata类型。如果选择Compact,则表明是pdata类型。如果选择Large,则表明是xdata类型。一般默认选择Small。
 楼主| kqh11a 发表于 2023-9-21 16:14 | 显示全部楼层
Off-chip Code Momory:是用来指定代码段的位置,如果不设置由系统自动从0开始分配。
Off-chip Xdata Memroy:是用来指定xdata类型变量的代码位置,此处指定为0x6000,大小0x0C00。
Use On-chip ROM(0x0-0x3fff)和Use On-chip XRAM(0x0-0x2ff)这两个勾选项会影响 LX51 Locate上的地址区间,注意区分,当需要仿真时,代码从地址0开始,需要勾选Use On-chip ROM(0x0-0x3fff),改变初始地址之后一定要取消!!否则程序无法正确运行!
 楼主| kqh11a 发表于 2023-9-21 16:14 | 显示全部楼层
 楼主| kqh11a 发表于 2023-9-21 16:14 | 显示全部楼层
Output
58258650bfb68ee8fb.png
 楼主| kqh11a 发表于 2023-9-21 16:14 | 显示全部楼层
 楼主| kqh11a 发表于 2023-9-21 16:16 | 显示全部楼层
Listing 20877650bfbcd7f7ef.png
 楼主| kqh11a 发表于 2023-9-21 16:19 | 显示全部楼层
 楼主| kqh11a 发表于 2023-9-21 16:19 | 显示全部楼层
 楼主| kqh11a 发表于 2023-9-21 16:19 | 显示全部楼层
#pragma OPTIMIZE(0) //防止编译器优化导致实际操作失效,可控制函数优化等级,0为优化等级最低

 楼主| kqh11a 发表于 2023-9-21 16:20 | 显示全部楼层
A51
A51是汇编编译器,使用默认设置即可 30736650bfcb53609b.png
 楼主| kqh11a 发表于 2023-9-21 16:20 | 显示全部楼层
LX51 Locate,定位器,主要是变量及函数地址定位的设置。
23333650bfcce523cd.png
 楼主| kqh11a 发表于 2023-9-21 16:21 | 显示全部楼层
 楼主| kqh11a 发表于 2023-9-21 16:22 | 显示全部楼层
LX51 Misc 86984650bfd32a3dfa.png LX51 Misc,链接器有关杂项的设置。如果少量函数定位地址,建议在Locate选项里直接设置。如果不通过文件设置链接器,则可以在Control Misc中设置REMOVEUNUSED,这样未被使用到的函数便不会被链接,但是会被编译检测语法。这样可以少用一些宏来限制链接函数链接,提升代码可读性。
udaidfa002 发表于 2023-9-21 16:23 | 显示全部楼层
kqh11a 发表于 2023-9-21 16:08
Target
代码默认从地址0开始存放,此处我需要将代码的存放地址从0x3800开始,此处需要修改Eprom Start。
不 ...

好的
 楼主| kqh11a 发表于 2023-9-21 16:23 | 显示全部楼层
Debug 73179650bfd77830e0.png
 楼主| kqh11a 发表于 2023-9-21 16:23 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

552

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部