打印
[应用方案]

通过KEIL搭建工程,Option的配置记录

[复制链接]
1260|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kqh11a|  楼主 | 2023-9-21 16:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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


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文件中的代码开始位置。

使用特权

评论回复
板凳
kqh11a|  楼主 | 2023-9-21 16:08 | 只看该作者

使用特权

评论回复
地板
jflahdink09| | 2023-9-21 16:12 | 只看该作者

感谢楼主的分享

使用特权

评论回复
5
kqh11a|  楼主 | 2023-9-21 16:13 | 只看该作者
Memeoy Model:主要是设置默认变量的内存类型,如果选择Small,表明栈及默认(未显式指明内存类型)的变量都是idata类型。如果选择Compact,则表明是pdata类型。如果选择Large,则表明是xdata类型。一般默认选择Small。

使用特权

评论回复
6
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),改变初始地址之后一定要取消!!否则程序无法正确运行!

使用特权

评论回复
7
kqh11a|  楼主 | 2023-9-21 16:14 | 只看该作者

使用特权

评论回复
8
kqh11a|  楼主 | 2023-9-21 16:14 | 只看该作者
Output

使用特权

评论回复
9
kqh11a|  楼主 | 2023-9-21 16:14 | 只看该作者

使用特权

评论回复
10
kqh11a|  楼主 | 2023-9-21 16:16 | 只看该作者
Listing

使用特权

评论回复
11
kqh11a|  楼主 | 2023-9-21 16:19 | 只看该作者
User

使用特权

评论回复
12
kqh11a|  楼主 | 2023-9-21 16:19 | 只看该作者
C51

使用特权

评论回复
13
kqh11a|  楼主 | 2023-9-21 16:19 | 只看该作者
#pragma OPTIMIZE(0) //防止编译器优化导致实际操作失效,可控制函数优化等级,0为优化等级最低

使用特权

评论回复
14
kqh11a|  楼主 | 2023-9-21 16:20 | 只看该作者
A51
A51是汇编编译器,使用默认设置即可

使用特权

评论回复
15
kqh11a|  楼主 | 2023-9-21 16:20 | 只看该作者
LX51 Locate,定位器,主要是变量及函数地址定位的设置。

使用特权

评论回复
16
kqh11a|  楼主 | 2023-9-21 16:21 | 只看该作者

使用特权

评论回复
17
kqh11a|  楼主 | 2023-9-21 16:22 | 只看该作者
LX51 Misc LX51 Misc,链接器有关杂项的设置。如果少量函数定位地址,建议在Locate选项里直接设置。如果不通过文件设置链接器,则可以在Control Misc中设置REMOVEUNUSED,这样未被使用到的函数便不会被链接,但是会被编译检测语法。这样可以少用一些宏来限制链接函数链接,提升代码可读性。

使用特权

评论回复
18
udaidfa002| | 2023-9-21 16:23 | 只看该作者
kqh11a 发表于 2023-9-21 16:08
Target
代码默认从地址0开始存放,此处我需要将代码的存放地址从0x3800开始,此处需要修改Eprom Start。
不 ...

好的

使用特权

评论回复
19
kqh11a|  楼主 | 2023-9-21 16:23 | 只看该作者
Debug

使用特权

评论回复
20
kqh11a|  楼主 | 2023-9-21 16:23 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

499

帖子

0

粉丝