資源簡介
基于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個文件信息
評論
共有 條評論