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

CycloneBOOT standalone bootloader update entry triggers. More...

#include <string.h>
#include "standalone/boot.h"
#include "standalone/boot_trigger.h"
#include "core/mailbox.h"
#include "debug.h"

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.
 
__weak_func 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.
 
__weak_func bool_t bootTriggerGpioActiveHook (void)
 GPIO trigger status callback. It is declared weak and must be implemented in the user code space.
 
__weak_func 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

Function Documentation

◆ bootTriggerArbitrateHook()

__weak_func 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()

__weak_func 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()

__weak_func 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