CycloneBOOT 2.6.6
Secure Bootloader for ARM Cortex-M MCU
Loading...
Searching...
No Matches
boot_trigger.h File Reference

CycloneBOOT standalone bootloader update entry triggers. More...

#include "boot_config.h"
#include "core/cboot_error.h"
#include "core/mcu.h"
#include "os_port.h"

Go to the source code of this file.

Classes

struct  UpdateEntryRequest
 Update entry request. More...
 

Macros

#define BOOT_MAX_TRIGGERS   5
 

Enumerations

enum  UpdateEntryMode { UPDATE_ENTRY_NONE = 0 , UPDATE_ENTRY_WINDOW = 1 , UPDATE_ENTRY_REQUIRED = 2 }
 Update entry mode. More...
 

Functions

cboot_error_t bootTriggerInit (void)
 Initializes the enabled update entry triggers.
 
cboot_error_t bootTriggerGetRequest (UpdateEntryRequest *request)
 Collects every enabled trigger and arbitrates between them.
 
cboot_error_t bootTriggerArbitrateHook (const UpdateEntryRequest *requests, size_t count, UpdateEntryRequest *result)
 Arbitrates between the collected trigger requests. The default keeps the strongest request, and the longest window when two agree. It is declared weak and may be replaced in the user code space.
 
bool_t bootTriggerGpioActiveHook (void)
 GPIO trigger status callback. It is declared weak and must be implemented in the user code space.
 
bool_t bootTriggerNoAppHook (void)
 No-application trigger status callback. It is declared weak and must be implemented in the user code space.
 

Detailed Description

CycloneBOOT standalone bootloader update entry triggers.

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2021-2026 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneBOOT Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.6.6

Enumeration Type Documentation

◆ UpdateEntryMode

Update entry mode.

Enumerator
UPDATE_ENTRY_NONE 

Boot the resident image.

UPDATE_ENTRY_WINDOW 

Listen for a window, then boot.

UPDATE_ENTRY_REQUIRED 

Receive an update now.

Function Documentation

◆ bootTriggerArbitrateHook()

cboot_error_t bootTriggerArbitrateHook ( const UpdateEntryRequest *  requests,
size_t  count,
UpdateEntryRequest *  result 
)

Arbitrates between the collected trigger requests. The default keeps the strongest request, and the longest window when two agree. It is declared weak and may be replaced in the user code space.

Parameters
[in]requestsRequests raised by the enabled triggers
[in]countNumber of requests
[out]resultRequest to be acted on
Returns
Error code.

◆ bootTriggerGetRequest()

cboot_error_t bootTriggerGetRequest ( UpdateEntryRequest *  request)

Collects every enabled trigger and arbitrates between them.

Parameters
[out]requestArbitrated update entry request
Returns
Error code.

◆ bootTriggerGpioActiveHook()

bool_t bootTriggerGpioActiveHook ( void  )

GPIO trigger status callback. It is declared weak and must be implemented in the user code space.

Returns
TRUE or FALSE

◆ bootTriggerInit()

cboot_error_t bootTriggerInit ( void  )

Initializes the enabled update entry triggers.

Returns
Error code.

◆ bootTriggerNoAppHook()

bool_t bootTriggerNoAppHook ( void  )

No-application trigger status callback. It is declared weak and must be implemented in the user code space.

Returns
TRUE or FALSE