VCC 发表于 2024-12-8 18:50:48

揭秘——AIappISP是如何添加型号、头文件、仿真器驱动到Keil中

不知道有没有像我一样好奇过,AIappISP的这个按钮究竟做了什么事情。
今天来揭秘一下!



器件型号的添加

在Keil中,器件型号全部存储在.\UV4\UV4.cdb这个CPU Database文件中
可以通过File菜单里的Device Database这个菜单项进入编辑页面



打开后可以看到Keil自带的全部芯片型号清单

但是里面没有STC的芯片。



这时候需要将STC官方已经整理完成的数据库文件STC.CDB存放至UV4\目录中



并在Keil安装位置的TOOLS.INI文件中,在UV2栏目中追加一条
CDB0=UV4\STC.CDB ("STC MCU Database")效果如下图:





重新打开Keil程序,就可以在设备数据库中找到新的芯片型号

新出现的STC MCU Database是刚刚新添加的cdb文件。
其中可以查到最新的AI8051U-32Bit和AI8051U-8Bit,可见它们具有完全不同的参数设定

此方法在Keil官网知识库文章《UVISION: Adding a User-specific Device Database (CDB File)》中也有介绍

头文件的添加

头文件分为汇编语言的INC格式头文件和C语言的H格式头文件两种。
汇编语言的INC格式头文件将会释放至.\C51\ASM和.\C51\INC\STC目录中,添加两份

最新版头文件打包如下:


C语言的H格式头文件将会释放至.\C51\INC\STC目录中

最新版头文件打包如下:


不需要修改Keil的任何参数,只需将文件放入,即可在编译过程中自动找到这些文件。


仿真器驱动的添加
STC的仿真器驱动名为 STC Monitor-51 Driver
这时候需要在Keil安装位置的TOOLS.INI文件中,在C51栏目中追加一条
TDRV0=BIN\STCMON51.DLL ("STC Monitor-51 Driver")同时将STCMON51.DLL文件释放至.\C51\BIN目录中


在C251栏目中追加一条
TDRV0=BIN\STCMON251.DLL ("STC Monitor-251 Driver")同时将STCMON251.DLL文件释放至.\C251\BIN目录中

其中TDRV后面的数字不能重复。默认情况下C51应该有11个仿真器驱动,STC Monitor-51 Driver将会作为TDRV12条目被添加进去

最新版本ISP软件携带的STCMON51.DLL和STCMON251.DLL文件:


这两个文件的时间戳均为2023年7月28日,使用VC++ 6.0编译


对外暴露了这些接口函数

在线搜索得知,这是Keil的AGDI调试驱动接口标准

也有一篇文章和相关的示例程序介绍仿真器驱动的开发方法(本文就不介绍了)






手动添加型号、头文件、仿真器驱动到Keil中

说了这么多,来点实战内容。怎么手动添加型号、头文件、仿真器驱动到Keil中呢


要做以下几件事:

[*]添加STCMON51.DLL到.\C51\BIN目录中
[*]添加STCMON251.DLL到.\C251\BIN目录中
[*]添加51模式汇编头文件.INC到.\C51\ASM和.\C51\INC\STC目录中
[*]添加251模式汇编头文件.INC到.\C251\ASM目录中
[*]添加51模式C头文件.H到.\C51\INC\STC目录中
[*]添加251模式C头文件.H到.\C251\INC\STC目录中
[*]添加型号数据文件STC.CDB到.\UV4目录中
[*]编辑.\TOOLS.INI文件,在UV2栏目中追加一条
CDB0=UV4\STC.CDB ("STC MCU Database")
[*]编辑.\TOOLS.INI文件,在C51栏目中追加一条,其中xxx是当前未使用的最大编号
TDRVxxx=BIN\STCMON51.DLL ("STC Monitor-51 Driver")
[*]编辑.\TOOLS.INI文件,在C251栏目中追加一条,其中xxx是当前未使用的最大编号
TDRVxxx=BIN\STCMON251.DLL ("STC Monitor-251 Driver")

前面几个文件添加步骤可以直接使用如下压缩包解压释放。



文件编辑无法通过压缩包完成,需手动操作
看来还是用AIappISP工具更方便{:ciya:}






VCC 发表于 2024-12-8 20:28:35

参考 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=599 的内容,补全了C251的相关配置

272761180 发表于 2024-12-9 08:09:59

学到了!这属于逆向吗{:4_187:}

康辉55AA 发表于 2024-12-9 08:55:14

很实用的知识。

_奶咖君_ 发表于 2024-12-9 09:40:30

<p>这等好东西,还不置顶加精么<img alt="qiang" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/qiang.gif" title="qiang" /></p>

VCC 发表于 2024-12-9 10:13:33

_奶咖君_ 发表于 2024-12-9 09:40
这等好东西,还不置顶加精么

哈哈哈哈所以是为什么呢{:4_166:}

VCC 发表于 2024-12-9 10:17:55

272761180 发表于 2024-12-9 08:09
学到了!这属于逆向吗
应该算,但这不算秘密
也没什么独家技术,最多就是个信息差


昨天发完帖子后,发现管理员提升了这个帖子: 单片机程序中头文件的使用方法 - 仿真/编译器/汇编器/头文件 国芯技术交流网站 - AI32位8051交流社区

里面有一位官方大佬分享了这个图

(我才发现我这篇文章当时忘记写C251的内容了)

说明以前的STC-ISP是软件里是会介绍这个操作步骤的,只是现在把这段文字撤掉了

页: [1]
查看完整版本: 揭秘——AIappISP是如何添加型号、头文件、仿真器驱动到Keil中