2709|8

189

帖子

5

TA的资源

一粒金砂(中级)

楼主
 

问个关于Open.mems和license的问题 [复制链接]

 因为lisence是通过ST BlueMS申请的,当收到邮件回复后将收到的代码通过ST BlueMS进行lisence注册。
那么这个lisence是注册ST BlueMS请求的还是将这些代码烧入到SenseTile硬件的,前者可以注册过程可以分析明白,但是好像是通过后者进行注册的。那么这个注册过程是怎么样的,是将这些代码烧入到硬件哪个部分的,肯定不可能是直接插入到固件的吧!应该是烧入到Flash的一个内存地址的吧,然后固件运行读取该地址的内容。如果是这样的那么这个内存地址在哪里,固件关于license验证读取的部分代码在哪里?
或者是其他的方式进行的license注册使用,了解的朋友帮忙解答一下,感激!

最新回复

像strong161说的把license写到SensorTile代码里这种方法比较简单 我猜测license就是通过STM32的UID和某些算法生成一段序列号 这个STM32在调用对应的open.mems库时需要提供自身的UID open.mems库再用同样的方法生成一段序列号,和ST发给你的比较,如果相同就通过验证 上位机检测到SensorTile的open.mems库没有验证通过时会提示你向ST申请,或者载入序列号 如果序列号已经写在SensorTile中,也能验证通过就会直接启用某些功能 但好像有时还需要在上位机操作一下,比如点一下load,但不需要你输入序列号就直接完成 SensorTile有一个函数,在DebugConsoleCommandParsing在sensor_service.c中 当使用BLUEMS上传序列号时会调用这个函数 不过没有找到对应写FLASH地址的函数,有可能是在另人函数里完成,或者直接调用了open.mems的库文件实现保存的   详情 回复 发表于 2017-6-19 16:01
点赞 关注
 
 

回复
举报

9792

帖子

24

TA的资源

版主

沙发
 
BLUE MS会把序列号写到STM32单片机 我电脑坏了 等修好后帮你看下
 
 
 

回复

2774

帖子

8

TA的资源

版主

板凳
 
本帖最后由 strong161 于 2017-6-18 17:17 编辑

你可以编译固件的时候把lisence 放到 Middlewares/ST/STM32_OSX_********_Library 下面 有一个osx_license.h如: STM32_OSX_AcousticSL_Library 下面osx_license.h,把对应的 osx_asl_license[3][4] 换成ST发给你的,
这样license就写入到你的固件了,当然也可以在手机APP上面注册,那样license会通过手机BLE通讯的时候发给Sensortile,直接改的好处就是你手机不用去管这玩意了,直接放在sdk里面,以后的工程直接使用,换手机也不影响。

#ifndef _OSX_ACOUSTIC_SL_LICENSE_
#define _OSX_ACOUSTIC_SL_LICENSE_
uint32_t osx_asl_license[3][4] =
{
        { 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
        { 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
        { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }
};
#endif // _OSX_ACOUSTIC_SL_LICENSE_



点评

那这样的话是每次和上位机连接后重新写入还是直接写在某个地址段了  详情 回复 发表于 2017-6-19 08:21
 
 
 

回复

189

帖子

5

TA的资源

一粒金砂(中级)

4
 
strong161 发表于 2017-6-18 17:12
你可以编译固件的时候把lisence 放到 Middlewares/ST/STM32_OSX_********_Library 下面 有一个osx_license. ...

是放在上位机的sdk还是硬件固件的sdk
 
 
 

回复

189

帖子

5

TA的资源

一粒金砂(中级)

5
 
strong161 发表于 2017-6-18 17:12
你可以编译固件的时候把lisence 放到 Middlewares/ST/STM32_OSX_********_Library 下面 有一个osx_license. ...

那这样的话是每次和上位机连接后重新写入还是直接写在某个地址段了

点评

Sensortile代码里面仿佛会直接验证有没有license,没有才会通过上位机获得,所以按理加入了后不会需要通过上位机获得license  详情 回复 发表于 2017-6-19 09:22
 
 
 

回复

2774

帖子

8

TA的资源

版主

6
 
WZH70246 发表于 2017-6-19 08:21
那这样的话是每次和上位机连接后重新写入还是直接写在某个地址段了

Sensortile代码里面仿佛会直接验证有没有license,没有才会通过上位机获得,所以按理加入了后不会需要通过上位机获得license

点评

SensorTile验证license的时候是向上位机请求还是向硬件请求呢?因为我在第一个手机上获取了license后,SensorTile就可以在所有的设备上使用相应运动算法。所以我的感觉就是license直接烧入硬件中了,而且是烧入了一  详情 回复 发表于 2017-6-20 10:12
 
 
 

回复

9792

帖子

24

TA的资源

版主

7
 
像strong161说的把license写到SensorTile代码里这种方法比较简单
我猜测license就是通过STM32的UID和某些算法生成一段序列号
这个STM32在调用对应的open.mems库时需要提供自身的UID
open.mems库再用同样的方法生成一段序列号,和ST发给你的比较,如果相同就通过验证
上位机检测到SensorTile的open.mems库没有验证通过时会提示你向ST申请,或者载入序列号
如果序列号已经写在SensorTile中,也能验证通过就会直接启用某些功能
但好像有时还需要在上位机操作一下,比如点一下load,但不需要你输入序列号就直接完成
SensorTile有一个函数,在DebugConsoleCommandParsing在sensor_service.c中
当使用BLUEMS上传序列号时会调用这个函数
不过没有找到对应写FLASH地址的函数,有可能是在另人函数里完成,或者直接调用了open.mems的库文件实现保存的

点评

验证license确实应该是这样验证的,  详情 回复 发表于 2017-6-20 10:15
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

189

帖子

5

TA的资源

一粒金砂(中级)

8
 
strong161 发表于 2017-6-19 09:22
Sensortile代码里面仿佛会直接验证有没有license,没有才会通过上位机获得,所以按理加入了后不会需要 ...

SensorTile验证license的时候是向上位机请求还是向硬件请求呢?因为我在第一个手机上获取了license后,SensorTile就可以在所有的设备上使用相应运动算法。所以我的感觉就是license直接烧入硬件中了,而且是烧入了一个特殊的地址,这个地址段应该是被保护的。因为我这边手头事情太多,没时间查阅那么多的相关资料。所以想验证自己的这个想法,并寻求license存放的地址。
 
 
 

回复

189

帖子

5

TA的资源

一粒金砂(中级)

9
 
littleshrimp 发表于 2017-6-19 16:01
像strong161说的把license写到SensorTile代码里这种方法比较简单
我猜测license就是通过STM32的UID和某些 ...

验证license确实应该是这样验证的,
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表