forked from epagris/FreeRTOS-Kernel
		
	Add check for if the scheduler is running to ARMv8M MPU ports (#960)
* Allow access to any buffer in xPortIsAuthorizedToAccessBuffer if xSchedulerRunning is set to pdFALSE * Allow access to any buffer in xPortIsAuthorizedToAccessBuffer if xSchedulerRunning is set to pdFALSE in the copied ARMv8M Port Files
This commit is contained in:
		
							parent
							
								
									72c7d86276
								
							
						
					
					
						commit
						8e664fc984
					
				@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1906,7 +1906,15 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
 | 
			
		||||
        BaseType_t xAccessGranted = pdFALSE;
 | 
			
		||||
        const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
 | 
			
		||||
 | 
			
		||||
        if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        if( xSchedulerRunning == pdFALSE )
 | 
			
		||||
        {
 | 
			
		||||
            /* Grant access to all the kernel objects before the scheduler
 | 
			
		||||
            * is started. It is necessary because there is no task running
 | 
			
		||||
            * yet and therefore, we cannot use the permissions of any
 | 
			
		||||
            * task. */
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
        else if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
 | 
			
		||||
        {
 | 
			
		||||
            xAccessGranted = pdTRUE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user