打印
[开发工具]

STVP工具中的HaplSwim.dll中HReadByte函数参数问题

[复制链接]
1691|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lanjackg2003|  楼主 | 2015-11-17 15:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在帖子 请教怎么用st-link API或者dll读出stm32或者8的唯一ID 有人给出了如下答复:
在HaplSwim.dll里有个未公开的API:HReadByte,可以读取任意地址的值。
给出代码吧(以STM8L101为例):

typedef int (*HBeforeRead)(void);
typedef int (*HReadByte)(int,int,int,BYTE*);
HBeforeRead pHBeforeRead;
HReadByte   pHReadByte;

HINSTANCE dll = LoadLibrary("C:\\Program Files\\STMicroelectronics\\st_toolset\\stvp\\HaplSwim.dll");
pHBeforeRead = (HBeforeRead)GetProcAddress(dll, "HBeforeRead");
pHReadByte = (HReadByte)GetProcAddress(dll, "HReadByte");

BYTE uid[12];
if((*pHBeforeRead)() == TRUE){
        for(int i=0;i<12;i++){
                (*pHReadByte)(4, 0x4925+i, 1, uid+i);
        }
}



从代码中,我只能才出第二,第四参数的意思是,目标地址跟数据BUFFER,但第一、第三个参数是什么意思就没办法知道了。
因此想请教一下,HReadByte函数的各个参数分别是什么意思.


沙发
lanjackg2003|  楼主 | 2015-11-17 18:09 | 只看该作者
补充一下问题
如果*pHBeforeRead)()这个函数调用会出现 "Access violation reading location 0x00000000." 错误.
应该是没有传入参数给*pHBeforeRead)()导致的。

使用特权

评论回复
板凳
lanjackg2003|  楼主 | 2015-11-19 10:26 | 只看该作者
看来要沉贴了,托一下

使用特权

评论回复
地板
lanjackg2003|  楼主 | 2015-11-23 10:13 | 只看该作者
没有搞过这块东西的大侠吗?

使用特权

评论回复
5
lanjackg2003|  楼主 | 2015-12-3 19:15 | 只看该作者
终于自己搞定了......

使用特权

评论回复
6
tianchangming| | 2017-10-25 11:38 | 只看该作者
请教一下是如何解决的?

使用特权

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

本版积分规则

56

主题

440

帖子

7

粉丝