资源简介
基于OsekNM 2.5.3协议实现的OsekNM,跨平台的结构,目前只实现了STM32F407ZGT6平台的驱动。
1. 目录结构
1.1 App目录是一个keil5工程,App/keil/Objects/OsekNM.hex是一个可以直接在STM32F407ZGT6平台运 行的hex文件。
1.2 Driver目录包含了stm32f407子目录和Win7子目录,stm32f407目录下就是实现的STM32F407ZGT6平台的底层驱动,包括定时器和CAN模块的驱动,以及Stm32标准库的东西;Win7子目录是在windows7平台下执行的一些文件;Driver_Common.c是一些公用的驱动,由OsekNM_core统一调用。
1.3 OsekNM_core实现了OsekNM 2.5.3协议的核心逻辑,OsekNM.c实现了对各个节点各状态的处理,OsekNMServer.c实现了OsekNM 2.5.3协议提供给应用程序的API。
2. 移植
2.1 在Driver目录新建文件夹,保存新平台的驱动程序,新的平台下需要实现CAN模块和定时器及中断的驱动程序。
2.2 修改Driver_Common.c文件,修改TX_CAN_Transmit()函数,调用新平台发送CAN报文的CAN模块驱动程序,修改InitPlatform()函数,调用新平台初始化CAN模块和定时器的函数;Recv_EveryMessage()被CAN接受报文中断服务函数调用。
2.3 修改Driver_Common.h文件,#define 新的平台,并包含驱动相关的头文件,#define NMID 新的网络管理报文ID,#define ADDR_SELF 新的节点源地址。
2.4 可以参考stm32f407的例子来实现自己平台的移植。
3. 附注
整个代码移植到我的开发板,并且在CANoe平台验证过。
专门在Vspy平台实现了虚拟的网络管理节点
代码片段和文件信息
////////////////////////////////////////
// 应用程序,调用OSEK_NM的服务
////////////////////////////////////////
#include “OsekNM.h“
#include “Driver_Common.h“ //平台相关的配置
#include “OsekNMServer.h“
#include “Timer.h“
#include “usart.h“
#include “CAN.h“
#include “delay.h“
#include “led.h“
#define PRINT
int main()
{
/*平台初始化*/
#ifdef STM32F407
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
uart_init(115200); //初始化串口波特率为115200
delay_init(168); //初始化延时函数
/*收到报文闪烁LED0*/
InitLed0();
#ifdef PRINT
printf(“at main\n“);
#endif
#endif
StartNM();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-02-27 01:30 OSEK_NM-master\
目录 0 2019-02-27 01:30 OSEK_NM-master\App\
文件 618 2019-02-27 01:30 OSEK_NM-master\App\Test.c
目录 0 2019-02-27 01:30 OSEK_NM-master\App\keil\
目录 0 2019-02-27 01:30 OSEK_NM-master\App\keil\DebugConfig\
文件 2804 2019-02-27 01:30 OSEK_NM-master\App\keil\DebugConfig\OSEKNM_STM32F407ZGTx.dbgconf
文件 2804 2019-02-27 01:30 OSEK_NM-master\App\keil\DebugConfig\Target_1_STM32F407ZGTx.dbgconf
文件 78608 2019-02-27 01:30 OSEK_NM-master\App\keil\Jli
文件 716 2019-02-27 01:30 OSEK_NM-master\App\keil\Jli
目录 0 2019-02-27 01:30 OSEK_NM-master\App\keil\Listings\
文件 203303 2019-02-27 01:30 OSEK_NM-master\App\keil\Listings\OSEKNM.map
文件 81968 2019-02-27 01:30 OSEK_NM-master\App\keil\Listings\startup_stm32f40_41xxx.lst
文件 94959 2019-02-27 01:30 OSEK_NM-master\App\keil\OSEKNM.uvguix.Administrator
文件 28183 2019-02-27 01:30 OSEK_NM-master\App\keil\OSEKNM.uvoptx
文件 25700 2019-02-27 01:30 OSEK_NM-master\App\keil\OSEKNM.uvprojx
目录 0 2019-02-27 01:30 OSEK_NM-master\Driver\
文件 7203 2019-02-27 01:30 OSEK_NM-master\Driver\Driver_Common.c
文件 1736 2019-02-27 01:30 OSEK_NM-master\Driver\Driver_Common.h
目录 0 2019-02-27 01:30 OSEK_NM-master\Driver\Win7\
文件 4936 2019-02-27 01:30 OSEK_NM-master\Driver\Win7\Win7.c
文件 2188 2019-02-27 01:30 OSEK_NM-master\Driver\Win7\Win7.h
目录 0 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\
目录 0 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CAN\
文件 4944 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CAN\CAN.c
文件 153 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CAN\CAN.h
目录 0 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CORE\
文件 7117 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CORE\arm_common_tables.h
文件 244621 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CORE\arm_math.h
文件 112545 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CORE\core_cm4.h
文件 17659 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CORE\core_cmFunc.h
文件 26992 2019-02-27 01:30 OSEK_NM-master\Driver\stm32f407\CORE\core_cmInstr.h
............此处省略113个文件信息
相关资源
- OSEKVCX汽车电子嵌入式软件编程技术
- ucosII在动态内存管理漏洞
- 基于物联网的温室监测管理系统设计
- 新能源汽车旋变软件解码方案 (已在
- 基于C的图书管理系统 毕业设计
- C++实战源码-简单的汽车销售商场(入
- C++实战源码-管理计算机内图片文件的
- C++ 检索任务管理器中的任务列表(提
- C++ 创建用户并分配管理员权限(提高
- c++学生成绩管理系统源码(入门级)
- 公司人事管理系统控制台源码(c++ 入
- C/C++ 学生管理系统源码(控制台)
- c++ 一个宿舍管理查询软件源码(适用
- C++实战源码-使用函数指针制作菜单管
- c语言通讯录管理系统源码.zip
- c语言学生成绩管理系统源码.zip
- c语言教工工资管理系统源码(附课程
- ccp用于新能源汽车控制器数据标定
- c语言学生管理系统源码(基于codebl
- 成绩管理(无文件流版本)
- C语言超市管理系统(控制台项目源码
- c++ 酒店管理入门级(控制台实现)
- c++班级档案管理系统源码(控制台)
- 地铁收费管理系统(文件形式是cpp但
- c++ 课程设计 超市管理系统(源代码和
- c++ 学生管理系统源码(mysql数据库)
- 员工信息管理系统Qt+SQLite源码
- Qt做的一个员工管理系统
- 汽车仪表盘Qt demo
- QT文件管理器
评论
共有 条评论