[AutoSar]状态管理(四)单核BswM(二)流程、配置、 代码

这篇具有很好参考价值的文章主要介绍了[AutoSar]状态管理(四)单核BswM(二)流程、配置、 代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


  

关键词

嵌入式、C语言、autosar、BswM

平台说明

项目 Value
OS autosar OS
autosar厂商 vector
芯片厂商 TI
编程语言 C,C++
编译器 HighTec (GCC)

bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM

>>>>>回到总目录<<<<<<

一、BswM的模式处理流程图

  蓝色箭头为SWC的上层交互,红色箭头为Bsw内部模块间的交互。

bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM

二、stand state handling

bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM

bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM

三、配置、代码、状态转移

3.1 initial -> wakeup   

EcuM 初始化完毕后开始BswM初始化并调度mainfunction执行状态机。
rules:ESH_InitToWakeup
Expression:ESH_LE_InitToWakeup
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM

Code:1.判定当前模式处于Init

  if(BswM_GetGenericState(3, 0u) == BSWM_GENERICVALUE_ESH_State_ESH_INIT)
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_InitToWakeup. */
    retVal = BSWM_ID_AL_ESH_AL_InitToWakeup;
  }

Action list:
ESH_AL_InitToWakeup
{
ESH_Action_OnEnterWakeup
ESH_Action_SwitchWakeup
ESH_Action_ESH_Wakeup
}
Code: 1.请求模式切换到Wakeup。

BSWM_LOCAL FUNC(Std_ReturnType, BSWM_CODE) BswM_ActionList_ESH_AL_InitToWakeup(BswM_PCPartitionConfigIdxOfPartitionIdentifiersType partitionIdx)
{
  BswM_ESH_OnEnterWakeup();
  BswM_Switch_ESH_ModeSwitch_BswM_MDGP_ESH_Mode = RTE_MODE_ESH_Mode_WAKEUP;
  BswM_RequestMode(BSWM_GENERIC_ESH_State, BSWM_GENERICVALUE_ESH_State_ESH_WAKEUP);
  BSWM_DUMMY_STATEMENT(partitionIdx); /* PRQA S 1338, 2983, 3112 */ /* MD_MSR_DummyStmt */
  return E_OK;
}/* PRQA S 6010, 6030, 6050 */ /* MD_MSR_STPTH, MD_MSR_STCYC, MD_MSR_STCAL */

3.2 WakeUp -> Run

rules:ESH_WakeupToRun
Expression:ESH_LE_WakeupToRun
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM

Code
1.判定当前状态是否为wakeup;
2.判定是否有唤醒事件;
3.判定ComM request 是否为pending且上一次目标模式通知是否为wakeup。

  if((BswM_GetGenericState(3, 0u) == BSWM_GENERICVALUE_ESH_State_ESH_WAKEUP) && ((EcuM_GetValidatedWakeupEvents() != 0u) || (BswM_GetGenericState(0, 0u) == BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_PENDING_REQUEST)) && ((BswM_GetNvMJobState(0, 0u) != NVM_REQ_PENDING) || (BswM_GetTimerState(0, 0u) != BSWM_TIMER_STARTED)) && (BswM_Mode_Notification_ESH_ModeNotification_BswM_MDGP_ESH_Mode == RTE_MODE_ESH_Mode_WAKEUP))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_WakeupToRun. */
    retVal = BSWM_ID_AL_ESH_AL_WakeupToRun;
  }

Action list:
1.在 ComM request pending 状态下允许通信;
2.更新BswM 计时器;
3.request 到 RUN 状态;
ESH_AL_WakeupToRun
{
ESH_Action_ComMAllow_CN_xxxxx
ESH_Action_SelfRunRequestTimer_Start
ESH_Action_OnEnterRun
ESH_Action_SwitchRun
ESH_Action_ESH_Run
}

Code:1.用户自定义实现代码

  ComM_CommunicationAllowed(ComMConf_ComMChannel_CN_, TRUE);
  BswM_UpdateTimer(partitionIdx, BSWM_TMR_ESH_SelfRunRequestTimer, 10u);
  BswM_ESH_OnEnterRun();
  BswM_Switch_ESH_ModeSwitch_BswM_MDGP_ESH_Mode = RTE_MODE_ESH_Mode_RUN;
  BswM_RequestMode(BSWM_GENERIC_ESH_State, BSWM_GENERICVALUE_ESH_State_ESH_RUN);

3.3 Run -> PostRun (first step)

rules:ESH_RunToPostRun
Expression:ESH_LE_RunToPostRunTransition
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM

Code:1.判定当前模式是否在RUN且上一次 request 为run;
2.判定ComM是否为NO_COMMUNICATION;
3.SWC没有模式请求;
4.判定BswM转换计时器超时(在mainfunction中调用BswM_DecreaseTimer(partitionIdx)–和转状态转换时update;);

 if(((BswM_GetGenericState(1, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == BSWM_GENERICVALUE_ESH_State_ESH_RUN) && (BswM_Mode_Notification_ESH_ModeNotification_BswM_MDGP_ESH_Mode == RTE_MODE_ESH_Mode_RUN)) && (((BswM_GetComMChannelState(0, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == COMM_NO_COMMUNICATION) && (BswM_GetComMChannelState(4, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == COMM_NO_COMMUNICATION) && (BswM_GetComMChannelState(1, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == COMM_NO_COMMUNICATION) && (BswM_GetComMChannelState(3, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == COMM_NO_COMMUNICATION) && (BswM_GetComMChannelState(2, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == COMM_NO_COMMUNICATION)) && ((Request_ESH_RunRequest_0_requestedMode == RELEASED) && (Request_ESH_RunRequest_1_requestedMode == RELEASED)) && (BswM_GetTimerState(0, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == BSWM_TIMER_EXPIRED)))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_ExitRun. */
    retVal = BSWM_ID_AL_ESH_AL_ExitRun;
  }


**Action list:**1.进入ESH_RunToPostRunNested rules;
ESH_AL_ExitRun
{
ESH_Action_EnterExclusiveArea
ESH_RunToPostRunNested
ESH_Action_ComMCheckPendingRequests
ESH_Action_ExitExclusiveArea

}

Code

  SchM_Enter_BswM_BSWM_EXCLUSIVE_AREA_0();
  /*lint -restore */
  ESH_ComM_CheckPendingRequests();
  (void)BswM_Action_RuleHandler(BSWM_ID_RULE_ESH_RunToPostRunNested, partitionIdx);
  /*lint -save -e534 *//* PRQA S 3109, 3200 1 */ /* MD_MSR_14.3, MD_BSWM_3200 */
  SchM_Exit_BswM_BSWM_EXCLUSIVE_AREA_0();
  /*lint -restore */
  BSWM_DUMMY_STATEMENT(partitionIdx); /* PRQA S 1338, 2983, 3112 */ /* MD_MSR_DummyStmt */

3.4 Run -> PostRun (second step)

rules:ESH_RunToPostRunNested
Expression:ESH_LE_ComMNoPendingRequests
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM
Code:1.判定当前ComM pending是否有请求。

  if(BswM_GetGenericState(0, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_NO_REQUEST)
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_RunToPostRun. */
    retVal = BSWM_ID_AL_ESH_AL_RunToPostRun;
  }

Action list:
ESH_AL_RunToPostRun
{
ESH_Action_ComMDisallow_CN_XXX
ESH_Action_EcuMClearValidatedWakeupEvents
ESH_Action_OnEnterPostRun
ESH_Action_SwitchPostRun
ESH_Action_ESH_PostRun
}

Code
1.禁止ComM通信;
2.清除唤醒事件;
3.请求模式转换到POSTRUN;

  ComM_CommunicationAllowed(ComMConf_ComMChannel_CN_, FALSE);
  /*lint -save -e534 *//* PRQA S 3109, 3200 1 */ /* MD_MSR_14.3, MD_BSWM_3200 */
  EcuM_ClearValidatedWakeupEvent(ECUM_WKSOURCE_ALL_SOURCES);
  /*lint -restore */
  BswM_ESH_OnEnterPostRun();
  BswM_Switch_ESH_ModeSwitch_BswM_MDGP_ESH_Mode = RTE_MODE_ESH_Mode_POSTRUN;
  BswM_RequestMode(BSWM_GENERIC_ESH_State, BSWM_GENERICVALUE_ESH_State_ESH_POST_RUN);

3.5 PostRun -> PreShutdown(first step)

rules:ESH_PostRun
Expression:ESH_LE_PostRun
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM
Code:1.判定当前模式是否为POSTRUN且上一次请求通知为POSTRUN;

  if((Request_ESH_PostRunRequest_0_requestedMode == RELEASED) && (Request_ESH_PostRunRequest_1_requestedMode == RELEASED))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_PostRunToPrepShutdown. */
    retVal = BSWM_ID_AL_ESH_AL_PostRunToPrepShutdown;
  }

Action list:
ESH_AL_ExitPostRun
{
ESH_Action_EnterExclusiveArea
ESH_Action_ComMCheckPendingRequests
ESH_PostRunNested
ESH_Action_ExitExclusiveArea
}

Code:1.根据ComM状态是否为COMM_NO_COM_NO_PENDING_REQUEST 设置BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_PENDING_REQUEST还是BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_NO_REQUEST;
2.进入ruler ESH_PostRunNested;

  SchM_Enter_BswM_BSWM_EXCLUSIVE_AREA_0();
  /*lint -restore */
  ESH_ComM_CheckPendingRequests();
  (void)BswM_Action_RuleHandler(BSWM_ID_RULE_ESH_PostRunNested, partitionIdx);
  /*lint -save -e534 *//* PRQA S 3109, 3200 1 */ /* MD_MSR_14.3, MD_BSWM_3200 */
  SchM_Exit_BswM_BSWM_EXCLUSIVE_AREA_0();

3.6 PostRun -> PreShutdown(second step)

这里为中间态,判定是回到RUN还是到preShutdown。
rules:ESH_PostRunNested
Expression:ESH_LE_PostRunToRun
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM
Code
1.判定SWC是否有模式请求;
2.判定是否有唤醒事件;
3.判定ComM 请求是否为 pengding;

  /* Evaluate logical expression ESH_LE_PostRunToRun. */
  if(((Request_ESH_RunRequest_0_requestedMode == REQUESTED) || (Request_ESH_RunRequest_1_requestedMode == REQUESTED)) || ((EcuM_GetValidatedWakeupEvents() != 0u) || (BswM_GetGenericState(0, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_PENDING_REQUEST)))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_PostRunToRun. */
    retVal = BSWM_ID_AL_ESH_AL_PostRunToRun;
  }
  else
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_ESH_PostRunToPrepCheck. */
    retVal = BSWM_ID_AL_ESH_AL_ESH_PostRunToPrepCheck;
  }

Action list:
如果仲裁为TRUE;执行actionlist:ESH_AL_PostRunToRun;
如果仲裁为FALSE;执行rules:ESH_AL_ESH_PostRunToPrepCheck;
ESH_AL_PostRunToRun
{
ESH_Action_ComMAllow_CN_XXXXX
ESH_Action_SelfRunRequestTimer_Start
ESH_Action_OnEnterRun
ESH_Action_SwitchRun
}

Code
1.允许Com通信;
2.更新BswM状态转换计时器;
3.请求转换到RUN ;

  ComM_CommunicationAllowed(ComMConf_ComMChannel_CN_xxx, TRUE);
  BswM_UpdateTimer(partitionIdx, BSWM_TMR_ESH_SelfRunRequestTimer, 10u);
  BswM_ESH_OnEnterRun();
  BswM_Switch_ESH_ModeSwitch_BswM_MDGP_ESH_Mode = RTE_MODE_ESH_Mode_RUN;
  BswM_RequestMode(BSWM_GENERIC_ESH_State, BSWM_GENERICVALUE_ESH_State_ESH_RUN);


3.7 PostRun -> PreShutdown(third step)

rules:ESH_PostRunToPrepNested
Expression:ESH_LE_Dem_PostRunRequested
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM
Code:1.判定当前是否有SWC模式请求;

 /* Evaluate logical expression ESH_LE_Dem_PostRunRequested. */
  if((Request_ESH_PostRunRequest_0_requestedMode == RELEASED) && (Request_ESH_PostRunRequest_1_requestedMode == RELEASED))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_PostRunToPrepShutdown. */
    retVal = BSWM_ID_AL_ESH_AL_PostRunToPrepShutdown;
  }

Action list:
ESH_AL_PostRunToPrepShutdown
{
ESH_Action_OnEnterPrepShutdown
ESH_Action_SwitchShutdown
ESH_Action_ESH_PrepShutdown
}

Code
1.请求进入preShutDown

  BswM_ESH_OnEnterPrepShutdown();
  BswM_Switch_ESH_ModeSwitch_BswM_MDGP_ESH_Mode = RTE_MODE_ESH_Mode_SHUTDOWN;
  BswM_RequestMode(BSWM_GENERIC_ESH_State, BSWM_GENERICVALUE_ESH_State_ESH_PREP_SHUTDOWN);

3.8 PREP_SHUTDOWN-> WAIT_FOR_NVM

rules:ESH_PrepToWait
Expression:ESH_LE_PrepShutdownToWaitForNvM
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM
Code:1.判定当前模式处于PRE_SHUTDOWN且上一次请求通知为SHUTDOWN;

  if((BswM_GetGenericState(1, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == BSWM_GENERICVALUE_ESH_State_ESH_PREP_SHUTDOWN) && (BswM_Mode_Notification_ESH_ModeNotification_BswM_MDGP_ESH_Mode == RTE_MODE_ESH_Mode_SHUTDOWN))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_PrepShutdownToWaitForNvM. */
    retVal = BSWM_ID_AL_ESH_AL_PrepShutdownToWaitForNvM;
  }

Action list:
ESH_AL_PrepShutdownToWaitForNvM
{
ESH_Action_WriteAllTimer_Start
ESH_Action_NvMWriteAll
ESH_Action_ComMCheckPendingRequests
ESH_Action_OnEnterWaitForNvm
ESH_Action_ESH_WaitForNvm
}

Code
1.设定NVM写超时计时器;
2.writeall;
3.根据ComM状态是否为COMM_NO_COM_NO_PENDING_REQUEST 设置BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_PENDING_REQUEST还是BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_NO_REQUEST;
4.NVM实现;
5.请求切换到ESH_WAIT_FOR_NVM

  BswM_UpdateTimer(partitionIdx, BSWM_TMR_ESH_NvM_WriteAllTimer, 6000u);
  /*lint -save -e534 *//* PRQA S 3109, 3200 1 */ /* MD_MSR_14.3, MD_BSWM_3200 */
  NvM_WriteAll();
  /*lint -restore */
  ESH_ComM_CheckPendingRequests();
  BswM_ESH_OnEnterWaitForNvm();
  BswM_RequestMode(BSWM_GENERIC_ESH_State, BSWM_GENERICVALUE_ESH_State_ESH_WAIT_FOR_NVM);

3.9 WAIT_FOR_NVM -> SHUTDOWN

rules:ESH_WaitToShutdown
Expression:ESH_LE_WaitForNvMToShutdown
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM
Code:1.判定当前状态是否为WAIT_FOR_NVM;
2.判定是否完成NVMwriteall;
3.判定是否有唤醒事件;
4.ComM是否有request;

  /* Evaluate logical expression ESH_LE_WaitForNvMToShutdown. */ /* PRQA S 3415 1 */ /* MD_BSWM_3415 */
  if((BswM_GetGenericState(3, 0u) == BSWM_GENERICVALUE_ESH_State_ESH_WAIT_FOR_NVM) && ((BswM_GetNvMJobState(0, 0u) != NVM_REQ_PENDING) || (BswM_GetTimerState(1, 0u) != BSWM_TIMER_STARTED)) && ((EcuM_GetValidatedWakeupEvents() == 0u) && (BswM_GetGenericState(0, 0u) == BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_NO_REQUEST)))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_WaitForNvMToShutdown. */
    retVal = BSWM_ID_AL_ESH_AL_WaitForNvMToShutdown;
  }

Action list:
ESH_AL_WaitForNvMToShutdown
{
ESH_Action_WriteAllTimer_Stop
ESH_Action_OnEnterShutdown
ESH_Action_EcuMGoToSelectedShutdownTarget
}
Code
1.关闭NVM计时器;
2.请求到Shutdown状态;
3.用户自定义代码实现;

  BswM_ESH_OnEnterShutdown();
  /*lint -save -e534 *//* PRQA S 3109, 3200 1 */ /* MD_MSR_14.3, MD_BSWM_3200 */
  (void)EcuM_GoToSelectedShutdownTarget();

3.10 WakeUp -> Run

rules:ESH_WaitToWakeup
Expression:ESH_LE_WaitForNvMToWakeup
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM
Code
1.判定当前模式是否在WAIT_FOR_NVM
2.是否有唤醒事件;
3.ComM是否为PENDING;

  if((BswM_GetGenericState(1, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == BSWM_GENERICVALUE_ESH_State_ESH_WAIT_FOR_NVM) && ((EcuM_GetValidatedWakeupEvents() != 0u) || (BswM_GetGenericState(0, BswM_GetInternalPartitionIdx(SystemApplication_OsCore3)) == BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_PENDING_REQUEST)))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_WaitForNvMWakeup. */
    retVal = BSWM_ID_AL_ESH_AL_WaitForNvMWakeup;
  }

Action list:
ESH_AL_WaitForNvMWakeup
{
ESH_Action_WriteAllTimer_Stop
ESH_Action_CancelWriteAllTimer_Start
ESH_Action_CancelNvMWriteAll
ESH_Action_OnEnterWakeup
ESH_Action_SwitchWakeup
ESH_Action_ESH_Wakeup.
}

Code
1.更新NVM计时器防止超时;
2.取消writeall;
3.请求跳转到wakeup;

  BswM_UpdateTimer(partitionIdx, BSWM_TMR_ESH_NvM_WriteAllTimer, 0u);
  BswM_UpdateTimer(partitionIdx, BSWM_TMR_ESH_NvM_CancelWriteAllTimer, 6000u);
  /*lint -save -e534 *//* PRQA S 3109, 3200 1 */ /* MD_MSR_14.3, MD_BSWM_3200 */
  NvM_CancelWriteAll();
  /*lint -restore */
  BswM_ESH_OnEnterWakeup();
  BswM_Switch_ESH_ModeSwitch_BswM_MDGP_ESH_Mode = RTE_MODE_ESH_Mode_WAKEUP;
  BswM_RequestMode(BSWM_GENERIC_ESH_State, BSWM_GENERICVALUE_ESH_State_ESH_WAKEUP);


3.11 WakeUp -> preshutdown

rules:ESH_WakeupToPrep
Expression:ESH_LE_WakeupToPrepShutdown
bswm_action_rulehandler,CP_Autosar,Autosar,汽车,c语言,mcu,BswM
Code
1.判定当前是否处于wankeup;
2.判定是否在执行writeAll;
3.判定cancel wariteAll是否超时;
4.是否有唤醒事件;
5.ComM是否为NO_REQUEST;
6.上一次模式请求为wankeup?

  if((BswM_GetGenericState(3, 0u) == BSWM_GENERICVALUE_ESH_State_ESH_WAKEUP) && ((BswM_GetNvMJobState(0, 0u) != NVM_REQ_PENDING) || (BswM_GetTimerState(0, 0u) != BSWM_TIMER_STARTED)) && (EcuM_GetPendingWakeupEvents() == 0u) && ((EcuM_GetValidatedWakeupEvents() == 0u) && (BswM_GetGenericState(0, 0u) == BSWM_GENERICVALUE_ESH_ComMPendingRequests_ESH_COMM_NO_REQUEST)) && (BswM_Mode_Notification_ESH_ModeNotification_BswM_MDGP_ESH_Mode == RTE_MODE_ESH_Mode_WAKEUP))
  {
    /* Return conditional action list BswM_ActionList_ESH_AL_WakeupToPrep. */
    retVal = BSWM_ID_AL_ESH_AL_WakeupToPrep;
  }

Action list:
ESH_AL_WakeupToPrep
{
ESH_Action_OnEnterPrepShutdown
ESH_Action_SwitchShutdown
ESH_Action_ESH_PrepShutdown

}

Code
1.切换模式到shutdown
用户代码自定义实现下电的相关操作。

  BswM_ESH_OnEnterPrepShutdown();
  BswM_Switch_ESH_ModeSwitch_BswM_MDGP_ESH_Mode = RTE_MODE_ESH_Mode_SHUTDOWN;
  BswM_RequestMode(BSWM_GENERIC_ESH_State, BSWM_GENERICVALUE_ESH_State_ESH_PREP_SHUTDOWN);


>>>>>回到总目录<<<<<<文章来源地址https://www.toymoban.com/news/detail-798800.html

到了这里,关于[AutoSar]状态管理(四)单核BswM(二)流程、配置、 代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入 Pinia:从代码出发探索 Vue 状态管理的奥秘

    🍍 项目地址:https://github.com/mk965/read-pinia 🧑🏼‍💻 本节代码:https://github.com/mk965/read-pinia/tree/article_1 🚗源码地址: github.com/vuejs/pinia 📦打包文件: rollup.config.js 🚪入口文件: packages/pinia/src/index.ts 将 pinia/packages/pinia/src 目录下的所有文件复制到我们之前生成项目的 /src

    2023年04月25日
    浏览(84)
  • git代码管理工具使用全流程

    使用git进行代码的分布式版本管理,首先需要在本地安装、创建本地仓库以及配置git ① 安装git Windows下载安装即可 https://git-scm.com/downloads ② 创建本地仓库 ③ git配置 git本地仓库创建完成之后就可以开始从远程仓库开始拉取代码了 ① clone远程仓库代码 ② 同步远程分支代码到

    2024年02月14日
    浏览(44)
  • uniapp小程序自定义loding,通过状态管理配置全局使用

    一、在项目中创建loding组件 在uniapp的components文件夹下创建loding组件,如图: 示例代码: 二、在main.js中全局挂载store 三、配置loding状态管理(状态管理可以按自己的需求配置) 状态管理存储: 在store文件夹下创建modules文件,里面创建loding.js 模块统一暴露: 在store文件夹下创

    2024年02月15日
    浏览(26)
  • 【AUTOSAR】--01 AUTOSAR网络管理基础

    AUTOSAR网络管理做了几个项目了,但发现还是有些理解不够深入的地方,最近趁着有个新项目也要做AUTOSAR网络管理,再从头梳理一下AUTOSAR网络管理,预计用2-3篇文章,把AUTOSAR网络重新梳理完成。 这是第一篇,主要从如下三部分展开描述: 1)AUTOSAR网络管理的基础知识; 2)

    2024年01月20日
    浏览(58)
  • 【状态估计】基于随机方法优化PMU优化配置(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 文献来源 🌈4 Matlab代码、数据、文章

    2024年02月06日
    浏览(33)
  • 【AUTOSAR】 项目和代码详解(四)----AUTOSAR COM

    在AUTOSAR分层架构中,AUTOSAR COM模块位于RTE和PDUR之间,提供面向信号的数据接口的RTE包装AUTOSAR信号I-PDUs拆包的传输收到I-PDUs和提供收到收到I-PDUs信号。RTE路由的信号分成I-PDUs成为传播信号路由组从收到I-PDUs,I-PDUs成为传播通信传输控制(启动/停止I-PDU组)复制发送请求之间最小距

    2024年02月09日
    浏览(31)
  • AUTOSAR 项目和代码详解(一)----AUTOSAR开发工具链

    AUTOSAR开发工具链介绍 软件名版本 功能说明等 资源情况及指导文件 安装情况 备注 集成编译环境 CW for MPC55xx and MPC56xx 2.10 针对MPC55xx和MPC56xx系列,32位芯片。 FSLFlexLM,CW2.10和CW5.1的license管理器,需绑定真实的MAC地址 CWS12v5.1 针对S12系列,16位芯片。若需G64,则要安装补丁包《

    2024年02月16日
    浏览(40)
  • git代码管理操作全流程之一: 提交、更新、解决冲突、合并等操作

    Step 1, 检查自己的代码改动。执行 git commit -am\\\"\\\"  提交到本地仓库。注意写好准确的描述信息。 Step 2 ,执行 git pull --rebase ,将当前分支的代码更新到远程仓库的最新版本。如果有冲突解决冲突。解决git冲突请见后续介绍。 Step 3 ,上述步骤执行结束,测试代码。在git bash 命

    2024年02月16日
    浏览(32)
  • 车载网络 - Autosar网络管理 - 网络管理报文

            NM报文的ID一般定义为:基础ID+源地址,每个节点应分配一个唯一的标识符(ECU地址)Node_ID,网络管理报文一般会统一一个基地址,这个是根据主机厂不同而不同,有些是用0x400 - 0x4FF或者0x500 - 0x5FF,也有0x600 - 0x6FF,这个根据实际情况来确认。不过Node_ID的取值范围

    2023年04月14日
    浏览(29)
  • K8S应用流程安全(镜像安全 配置管理 访问安全)

    1.1.1 构建原则 学习目标 这一节,我们从 基础知识、原则解读、小结 三个方面来学习。 基础知识 k8s平台使用业务环境 需求 镜像的使用流程 Docker镜像加载 UnionFS 原则解读 构建样式 构建原则 实践原则 分层效果 功能效果 小结 1.1.2 Dockerfile实践 学习目标 这一节,我们从 基础

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包