80 lines
5.1 KiB
ArmAsm
80 lines
5.1 KiB
ArmAsm
/**************************************************************************/
|
|
/* */
|
|
/* Copyright (c) Microsoft Corporation. All rights reserved. */
|
|
/* */
|
|
/* This software is licensed under the Microsoft Software License */
|
|
/* Terms for Microsoft Azure RTOS. Full text of the license can be */
|
|
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
|
|
/* and in the root directory of this software. */
|
|
/* */
|
|
/**************************************************************************/
|
|
|
|
|
|
/**************************************************************************/
|
|
/**************************************************************************/
|
|
/** */
|
|
/** ThreadX Component */
|
|
/** */
|
|
/** Thread */
|
|
/** */
|
|
/**************************************************************************/
|
|
/**************************************************************************/
|
|
|
|
.text 32
|
|
.align 4
|
|
.syntax unified
|
|
/**************************************************************************/
|
|
/* */
|
|
/* FUNCTION RELEASE */
|
|
/* */
|
|
/* _tx_thread_interrupt_control Cortex-M7/GNU */
|
|
/* 6.1.7 */
|
|
/* AUTHOR */
|
|
/* */
|
|
/* Scott Larson, Microsoft Corporation */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* This function is responsible for changing the interrupt lockout */
|
|
/* posture of the system. */
|
|
/* */
|
|
/* INPUT */
|
|
/* */
|
|
/* new_posture New interrupt lockout posture */
|
|
/* */
|
|
/* OUTPUT */
|
|
/* */
|
|
/* old_posture Old interrupt lockout posture */
|
|
/* */
|
|
/* CALLS */
|
|
/* */
|
|
/* None */
|
|
/* */
|
|
/* CALLED BY */
|
|
/* */
|
|
/* Application Code */
|
|
/* */
|
|
/* RELEASE HISTORY */
|
|
/* */
|
|
/* DATE NAME DESCRIPTION */
|
|
/* */
|
|
/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
|
|
/* */
|
|
/**************************************************************************/
|
|
// UINT _tx_thread_interrupt_control(UINT new_posture)
|
|
// {
|
|
.global _tx_thread_interrupt_control
|
|
.thumb_func
|
|
_tx_thread_interrupt_control:
|
|
#ifdef TX_PORT_USE_BASEPRI
|
|
MRS r1, BASEPRI // Pickup current interrupt posture
|
|
MSR BASEPRI, r0 // Apply the new interrupt posture
|
|
MOV r0, r1 // Transfer old to return register
|
|
#else
|
|
MRS r1, PRIMASK // Pickup current interrupt lockout
|
|
MSR PRIMASK, r0 // Apply the new interrupt lockout
|
|
MOV r0, r1 // Transfer old to return register
|
|
#endif
|
|
BX lr // Return to caller
|
|
// }
|