资源简介

基于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\JlinkLog.txt
     文件         716  2019-02-27 01:30  OSEK_NM-master\App\keil\JlinkSettings.ini
     目录           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个文件信息

评论

共有 条评论