关于XCP标定CANape的界面安全会话DLL库
DLL库我们一般用VS工具来生成,首先选择生成DLL例程模板。和其他安全会话一样,主要分为3部分;首先上位机获取DLL库的权限,然后向下位机发送获取当前权限下的种子(SEED)请求,进行上位机SEED值的计算比较,然后向下位机发送KEY值来获取权限。
//*****************************************************************************
/// @fn DllMain ... Windows DLL entrance point
//*****************************************************************************
BOOL WINAPI DllMain (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
{
switch (fdwReason) {
case DLL_PROCESS_ATTACH: setMyPrivilege(); break;
case DLL_PROCESS_DETACH: break;
default: break;
} // switch
return TRUE;
}
XCP标定安全会话,一般会加密四种工况,分别为标定页切换(XcpSkPrivCalPag)、DAQ测量(XcpSkPrivDaq)、STIM旁路(XcpSkPrivStim)和PGM刷写(XcpSkPrivPgm)。根据下位机底层代码的实现情况,使能这几种模式。
static void setMyPrivilege()
{
MyPrivilege = 0;
// to do: comment out unsupported privileges
// example: MyPrivilege |= XcpSkPrivCalPag; -> //MyPrivilege |= XcpSkPrivCalPag;
MyPrivilege |= XcpSkPrivCalPag;
MyPrivilege |= XcpSkPrivDaq;
MyPrivilege |= XcpSkPrivStim;
MyPrivilege |= XcpSkPrivPgm;
}
// privileges
const BYTE XcpSkPrivCalPag = 0x01; // Calibration & Page Mngmnt privilege
const BYTE XcpSkPrivDaq = 0x04; // Acquisition privilege
const BYTE XcpSkPrivStim = 0x08; // Stimulation privilege
const BYTE XcpSkPrivPgm = 0x10; // Programming privilege
获取可用权限
EXTERN_C __declspec(dllexport) TXcpSkExtFncRet __cdecl XCP_GetAvailablePrivileges(BYTE *privilege)
{
// check input parameter
// set available privileges
}
然后发送获取种子并进行比较,并返回KEY值:
EXTERN_C __declspec(dllexport) TXcpSkExtFncRet __cdecl XCP_ComputeKeyFromSeed(BYTE privilege,
BYTE byteLenSeed, BYTE *seed,
BYTE *byteLenKey, BYTE *key)
{
// check input parameter
// unsupported privilege request
// check key length
// compute key for respective privilege
}
注意:这两个函数是CANape给的标准接口函数
EXTERN_C __declspec(dllexport) TXcpSkExtFncRet __cdecl XCP_GetAvailablePrivileges(BYTE *privilege)
EXTERN_C __declspec(dllexport) TXcpSkExtFncRet __cdecl XCP_ComputeKeyFromSeed(BYTE privilege,
BYTE byteLenSeed, BYTE *seed,
BYTE *byteLenKey, BYTE *key)
关于XCP标定CANape的界面安全会话DLL库相关推荐
- 创建XCP的CanApe工程
创建XCP的CanApe工程 ECU在标定的时候需要用到XCP模块去标定,本文简单整理了用CanApe搭建一个XCP标定工程.一般情况下我们是使用A2L文件来当作Database,所以建立一个新的工程 ...
- 融云 IM SDK 集成 — 刷新会话界面和会话列表界面
融云 IM SDK 集成 - 刷新会话界面和会话列表界面 最近集成融云 IMkit 发现, 融云 IMkit 提供的 ConversationListFragment 和 ConversationFr ...
- php融云开源sdk使用im,融云 IM SDK 集成 --- 刷新会话界面和会话列表界面
融云 IM SDK 集成 --- 刷新会话界面和会话列表界面 最近集成融云 IMkit 发现, 融云 IMkit 提供的 ConversationListFragment 和 Conversation ...
- android腾讯云im刷新会话列表,融云 IM SDK 集成 --- 刷新会话界面和会话列表界面...
融云 IM SDK 集成 --- 刷新会话界面和会话列表界面 最近集成融云 IMkit 发现, 融云 IMkit 提供的 ConversationListFragment 和 Conversation ...
- 标定协议之XCP标定协议介绍
作者 | WenDao_Engineer 微信公众号 | 闻道工程师之家 在<标定协议基础知识介绍>一文中我们介绍了常用的标定协议有CCP和XCP两种,在前面CCP标定协议系列文章对CCP ...
- 04 Xcp 标定过程介绍
要更改XCP Slave中的参数,XCP Master必须将参数的位置以及值本身发送给Slave. XCP总是用5个字节定义地址:4个字节用于实际地址,1个字节用于地址扩展.基于CAN传输,XCP消息 ...
- CCP/XCP标定协议解析
这两周在验证移植到ECU的XCP模块是否正常运转,所以干脆开个专题,说说这个汽车业内常用的标定协议. 背景概述 众所周知,一辆汽车内部会有许许多多的ECU(Electronic Control Uni ...
- 【XCP学习】CCP/XCP标定协议解析
背景概述 众所周知,一辆汽车内部会有许许多多的ECU(Electronic Control Unit),通过CAN, LIN, Gateway 等互相连接通讯,分别或者一起协作控制不同的部件.因而标定 ...
- 融云 IM SDK 集成 --- 刷新会话界面和会话列表界面
最近集成融云 IMkit 发现, 融云 IMkit 提供的 ConversationListFragment 和 ConversationFragment 都没有提供刷新方法. 我们有个需求是, 使用 ...
- Qt编写数据可视化大屏界面电子看板12-数据库采集
一.前言 数据采集是整个数据可视化大屏界面电子看板系统核心功能,没有数据源,这仅仅是个玩具UI,没啥用,当然默认做了定时器模拟数据,产生随机数据,这个可以直接配置文件修改来选择采用何种数据采集方法,总 ...
最新文章
- 嵌入式开发板老化过程中显示温度与负载的关系脚本的用法
- 全代码实现ios-4
- Android USB Host与HID通讯
- mariadb mysql 配置文件_MariaDB/MySQL配置文件my.cnf解读
- 4-1-getOutputStream()或getWriter()发送响应消息体及分析为什么不能同时使用
- 蓝桥杯 BASIC-17 基础练习 矩阵乘法
- 【更新汇总】FastReport系列更新|附下载
- 使用Prometheus监控kubernetes集群
- 【重点】LeetCode 124. Binary Tree Maximum Path Sum
- ssm三个框架分别用来干什么_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
- 【Springboot项目】电信知识库系统
- 数学家们是怎么玩趣味拼图游戏的?
- VIM复制到系统剪切板
- WSL嵌入式开发系列教程 1 —— 安装指南
- swing中通过.class文件(把.java都删除)打包成jar文件,使用皮肤包遇到的问题。
- 实例011阳阳买苹果 阳阳买苹果,每伞苹果0.8元,阳阳第一天买两个苹果,第二天开始每天买前一天的两倍, 直到购买的苹果个数为不超过100的最大值, 编程求阳阳每天平均花多少钱?
- 浙大版《C语言程序设计实验与习题指导(第4版)》题目集 实验10-1 圆形体体积计算器
- 常用数据库jdbc连接池的配置(在spring中的配置)
- android登陆界面左右两种登陆布局,Android UI组件----用相对布局RelativeLayout做一个登陆界面...
- 上海国家会计学院(SNAI)亚利桑那州立大学(ASU)合作办学EMBA项目打造兼具金融财务和服务管理专长的领袖人才!