- extern uint32_t SystemCoreClock;
-#endif
-
-/* CMSIS-RTOSv2 defines 56 levels of priorities. To be able to use them
- * all and avoid application misbehavior, configUSE_PORT_OPTIMISED_TASK_SELECTION
- * must be set to 0 and configMAX_PRIORITIES to 56
- *
- */
-/* #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0*/
-/* #define configMAX_PRIORITIES ( 56 ) */
-#define configUSE_PREEMPTION 1
-#define configUSE_IDLE_HOOK 0
-#define configUSE_TICK_HOOK 0
-#define configMAX_PRIORITIES (7)
-#define configSUPPORT_STATIC_ALLOCATION 0
-#define configCPU_CLOCK_HZ (SystemCoreClock)
-#define configTICK_RATE_HZ ((TickType_t)1000)
-#define configMINIMAL_STACK_SIZE ((uint16_t)128)
-#define configTOTAL_HEAP_SIZE ((size_t)(15 * 1024))
-#define configMAX_TASK_NAME_LEN (16)
-#define configUSE_TRACE_FACILITY 1
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 8
-#define configCHECK_FOR_STACK_OVERFLOW 0
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES (2)
-
-/* Software timer definitions. */
-#define configUSE_TIMERS 0
-#define configTIMER_TASK_PRIORITY (2)
-#define configTIMER_QUEUE_LENGTH 10
-#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2)
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 0
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_xTaskGetSchedulerState 1
-
-/*------------- CMSIS-RTOS V2 specific defines -----------*/
-/* When using CMSIS-RTOSv2 set configSUPPORT_STATIC_ALLOCATION to 1
- * is mandatory to avoid compile errors.
- * CMSIS-RTOS V2 implmentation requires the following defines
- *
-#define configSUPPORT_STATIC_ALLOCATION 1 <-- cmsis_os threads are created using xTaskCreateStatic() API
-#define configMAX_PRIORITIES (56) <-- Priority range in CMSIS-RTOS V2 is [0 .. 56]
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 <-- when set to 1, configMAX_PRIORITIES can't be more than 32 which is not suitable for the new CMSIS-RTOS v2 priority range
-*/
-
-/* the CMSIS-RTOS V2 FreeRTOS wrapper is dependent on the heap implementation used
- * by the application thus the correct define need to be enabled from the list
- * below
- *
-//define USE_FreeRTOS_HEAP_1
-//define USE_FreeRTOS_HEAP_2
-//define USE_FreeRTOS_HEAP_3
-//define USE_FreeRTOS_HEAP_4
-//define USE_FreeRTOS_HEAP_5
-
-*/
-
-
-/* Cortex-M specific definitions. */
-#ifdef __NVIC_PRIO_BITS
- /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
- #define configPRIO_BITS __NVIC_PRIO_BITS
-#else
- #define configPRIO_BITS 4 /* 15 priority levels */
-#endif
-
-/* The lowest interrupt priority that can be used in a call to a "set priority"
-function. */
-#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf
-
-/* The highest interrupt priority that can be used by any interrupt service
-routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
-INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
-PRIORITY THAN THIS! (higher priorities are lower numeric values. */
-#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
-
-/* Interrupt priorities used by the kernel port layer itself. These are generic
-to all Cortex-M ports, and do not rely on any particular library functions. */
-#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
-/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
-See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
-#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
-
-/* Normal assert() semantics without relying on the provision of an assert.h
-header file. */
-#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
-
-/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
- standard names. */
-#define vPortSVCHandler SVC_Handler
-#define xPortPendSVHandler PendSV_Handler
-
-/* IMPORTANT: FreeRTOS is using the SysTick as internal time base, thus make sure the system and peripherials are
- using a different time base (TIM based for example).
- */
-#define xPortSysTickHandler SysTick_Handler
-
-#endif /* FREERTOS_CONFIG_H */
-
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/StackMacros.h b/Middlewares/Third_Party/FreeRTOS/Source/include/StackMacros.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/croutine.h b/Middlewares/Third_Party/FreeRTOS/Source/include/croutine.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h b/Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h b/Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/list.h b/Middlewares/Third_Party/FreeRTOS/Source/include/list.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/message_buffer.h b/Middlewares/Third_Party/FreeRTOS/Source/include/message_buffer.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_prototypes.h b/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_prototypes.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h b/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/portable.h b/Middlewares/Third_Party/FreeRTOS/Source/include/portable.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h b/Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h b/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h b/Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/stack_macros.h b/Middlewares/Third_Party/FreeRTOS/Source/include/stack_macros.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/stream_buffer.h b/Middlewares/Third_Party/FreeRTOS/Source/include/stream_buffer.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/task.h b/Middlewares/Third_Party/FreeRTOS/Source/include/task.h
old mode 100644
new mode 100755
index 4b8639c..4041bbf
--- a/Middlewares/Third_Party/FreeRTOS/Source/include/task.h
+++ b/Middlewares/Third_Party/FreeRTOS/Source/include/task.h
@@ -1,6 +1,6 @@
/*
- * FreeRTOS Kernel V10.3.1
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * FreeRTOS Kernel V10.2.1
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
@@ -43,10 +43,10 @@ extern "C" {
* MACROS AND DEFINITIONS
*----------------------------------------------------------*/
-#define tskKERNEL_VERSION_NUMBER "V10.3.1"
+#define tskKERNEL_VERSION_NUMBER "V10.2.0"
#define tskKERNEL_VERSION_MAJOR 10
-#define tskKERNEL_VERSION_MINOR 3
-#define tskKERNEL_VERSION_BUILD 1
+#define tskKERNEL_VERSION_MINOR 2
+#define tskKERNEL_VERSION_BUILD 0
/* MPU region parameters passed in ulParameters
* of MemoryRegion_t struct. */
@@ -314,13 +314,13 @@ is used in assert() statements. */
// an automatic stack variable it might no longer exist, or at least have been corrupted, by the time
// the new task attempts to access it.
xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );
- configASSERT( xHandle );
+ configASSERT( xHandle );
// Use the handle to delete the task.
- if( xHandle != NULL )
- {
- vTaskDelete( xHandle );
- }
+ if( xHandle != NULL )
+ {
+ vTaskDelete( xHandle );
+ }
}
* \defgroup xTaskCreate xTaskCreate
@@ -498,9 +498,9 @@ static const TaskParameters_t xCheckTaskParameters =
// for full information.
{
// Base address Length Parameters
- { cReadWriteArray, 32, portMPU_REGION_READ_WRITE },
- { cReadOnlyArray, 32, portMPU_REGION_READ_ONLY },
- { cPrivilegedOnlyAccessArray, 128, portMPU_REGION_PRIVILEGED_READ_WRITE }
+ { cReadWriteArray, 32, portMPU_REGION_READ_WRITE },
+ { cReadOnlyArray, 32, portMPU_REGION_READ_ONLY },
+ { cPrivilegedOnlyAccessArray, 128, portMPU_REGION_PRIVILEGED_READ_WRITE }
}
};
@@ -584,9 +584,9 @@ static const TaskParameters_t xCheckTaskParameters =
// for full information.
{
// Base address Length Parameters
- { cReadWriteArray, 32, portMPU_REGION_READ_WRITE },
- { cReadOnlyArray, 32, portMPU_REGION_READ_ONLY },
- { cPrivilegedOnlyAccessArray, 128, portMPU_REGION_PRIVILEGED_READ_WRITE }
+ { cReadWriteArray, 32, portMPU_REGION_READ_WRITE },
+ { cReadOnlyArray, 32, portMPU_REGION_READ_ONLY },
+ { cPrivilegedOnlyAccessArray, 128, portMPU_REGION_PRIVILEGED_READ_WRITE }
}
&xTaskBuffer; // Holds the task's data structure.
@@ -831,11 +831,6 @@ void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xT
* task will leave the Blocked state, and return from whichever function call
* placed the task into the Blocked state.
*
- * There is no 'FromISR' version of this function as an interrupt would need to
- * know which object a task was blocked on in order to know which actions to
- * take. For example, if the task was blocked on a queue the interrupt handler
- * would then need to know if the queue was locked.
- *
* @param xTask The handle of the task to remove from the Blocked state.
*
* @return If the task referenced by xTask was not in the Blocked state then
@@ -1743,7 +1738,7 @@ void vTaskGetRunTimeStats( char *pcWriteBuffer ) PRIVILEGED_FUNCTION; /*lint !e9
/**
* task. h
-* uint32_t ulTaskGetIdleRunTimeCounter( void );
+* TickType_t xTaskGetIdleRunTimeCounter( void );
*
* configGENERATE_RUN_TIME_STATS and configUSE_STATS_FORMATTING_FUNCTIONS
* must both be defined as 1 for this function to be available. The application
@@ -1758,7 +1753,7 @@ void vTaskGetRunTimeStats( char *pcWriteBuffer ) PRIVILEGED_FUNCTION; /*lint !e9
* of the accumulated time value depends on the frequency of the timer
* configured by the portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() macro.
* While uxTaskGetSystemState() and vTaskGetRunTimeStats() writes the total
-* execution time of each task into a buffer, ulTaskGetIdleRunTimeCounter()
+* execution time of each task into a buffer, xTaskGetIdleRunTimeCounter()
* returns the total execution time of just the idle task.
*
* @return The total run time of the idle task. This is the amount of time the
@@ -1766,10 +1761,10 @@ void vTaskGetRunTimeStats( char *pcWriteBuffer ) PRIVILEGED_FUNCTION; /*lint !e9
* frequency configured using the portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and
* portGET_RUN_TIME_COUNTER_VALUE() macros.
*
-* \defgroup ulTaskGetIdleRunTimeCounter ulTaskGetIdleRunTimeCounter
+* \defgroup xTaskGetIdleRunTimeCounter xTaskGetIdleRunTimeCounter
* \ingroup TaskUtils
*/
-uint32_t ulTaskGetIdleRunTimeCounter( void ) PRIVILEGED_FUNCTION;
+TickType_t xTaskGetIdleRunTimeCounter( void ) PRIVILEGED_FUNCTION;
/**
* task. h
@@ -2206,121 +2201,6 @@ uint32_t ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait
*/
BaseType_t xTaskNotifyStateClear( TaskHandle_t xTask );
-/**
-* task. h
-* uint32_t ulTaskNotifyValueClear( TaskHandle_t xTask, uint32_t ulBitsToClear );
-*
-* Clears the bits specified by the ulBitsToClear bit mask in the notification
-* value of the task referenced by xTask.
-*
-* Set ulBitsToClear to 0xffffffff (UINT_MAX on 32-bit architectures) to clear
-* the notification value to 0. Set ulBitsToClear to 0 to query the task's
-* notification value without clearing any bits.
-*
-* @return The value of the target task's notification value before the bits
-* specified by ulBitsToClear were cleared.
-* \defgroup ulTaskNotifyValueClear ulTaskNotifyValueClear
-* \ingroup TaskNotifications
-*/
-uint32_t ulTaskNotifyValueClear( TaskHandle_t xTask, uint32_t ulBitsToClear ) PRIVILEGED_FUNCTION;
-
-/**
- * task.h
- * void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut )
- *
- * Capture the current time for future use with xTaskCheckForTimeOut().
- *
- * @param pxTimeOut Pointer to a timeout object into which the current time
- * is to be captured. The captured time includes the tick count and the number
- * of times the tick count has overflowed since the system first booted.
- * \defgroup vTaskSetTimeOutState vTaskSetTimeOutState
- * \ingroup TaskCtrl
- */
-void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) PRIVILEGED_FUNCTION;
-
-/**
- * task.h
- * BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait );
- *
- * Determines if pxTicksToWait ticks has passed since a time was captured
- * using a call to vTaskSetTimeOutState(). The captured time includes the tick
- * count and the number of times the tick count has overflowed.
- *
- * @param pxTimeOut The time status as captured previously using
- * vTaskSetTimeOutState. If the timeout has not yet occurred, it is updated
- * to reflect the current time status.
- * @param pxTicksToWait The number of ticks to check for timeout i.e. if
- * pxTicksToWait ticks have passed since pxTimeOut was last updated (either by
- * vTaskSetTimeOutState() or xTaskCheckForTimeOut()), the timeout has occurred.
- * If the timeout has not occurred, pxTIcksToWait is updated to reflect the
- * number of remaining ticks.
- *
- * @return If timeout has occurred, pdTRUE is returned. Otherwise pdFALSE is
- * returned and pxTicksToWait is updated to reflect the number of remaining
- * ticks.
- *
- * @see https://www.freertos.org/xTaskCheckForTimeOut.html
- *
- * Example Usage:
- *
- // Driver library function used to receive uxWantedBytes from an Rx buffer
- // that is filled by a UART interrupt. If there are not enough bytes in the
- // Rx buffer then the task enters the Blocked state until it is notified that
- // more data has been placed into the buffer. If there is still not enough
- // data then the task re-enters the Blocked state, and xTaskCheckForTimeOut()
- // is used to re-calculate the Block time to ensure the total amount of time
- // spent in the Blocked state does not exceed MAX_TIME_TO_WAIT. This
- // continues until either the buffer contains at least uxWantedBytes bytes,
- // or the total amount of time spent in the Blocked state reaches
- // MAX_TIME_TO_WAIT – at which point the task reads however many bytes are
- // available up to a maximum of uxWantedBytes.
-
- size_t xUART_Receive( uint8_t *pucBuffer, size_t uxWantedBytes )
- {
- size_t uxReceived = 0;
- TickType_t xTicksToWait = MAX_TIME_TO_WAIT;
- TimeOut_t xTimeOut;
-
- // Initialize xTimeOut. This records the time at which this function
- // was entered.
- vTaskSetTimeOutState( &xTimeOut );
-
- // Loop until the buffer contains the wanted number of bytes, or a
- // timeout occurs.
- while( UART_bytes_in_rx_buffer( pxUARTInstance ) < uxWantedBytes )
- {
- // The buffer didn't contain enough data so this task is going to
- // enter the Blocked state. Adjusting xTicksToWait to account for
- // any time that has been spent in the Blocked state within this
- // function so far to ensure the total amount of time spent in the
- // Blocked state does not exceed MAX_TIME_TO_WAIT.
- if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) != pdFALSE )
- {
- //Timed out before the wanted number of bytes were available,
- // exit the loop.
- break;
- }
-
- // Wait for a maximum of xTicksToWait ticks to be notified that the
- // receive interrupt has placed more data into the buffer.
- ulTaskNotifyTake( pdTRUE, xTicksToWait );
- }
-
- // Attempt to read uxWantedBytes from the receive buffer into pucBuffer.
- // The actual number of bytes read (which might be less than
- // uxWantedBytes) is returned.
- uxReceived = UART_read_from_receive_buffer( pxUARTInstance,
- pucBuffer,
- uxWantedBytes );
-
- return uxReceived;
- }
-
- * \defgroup xTaskCheckForTimeOut xTaskCheckForTimeOut
- * \ingroup TaskCtrl
- */
-BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait ) PRIVILEGED_FUNCTION;
-
/*-----------------------------------------------------------
* SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES
*----------------------------------------------------------*/
@@ -2438,6 +2318,17 @@ TickType_t uxTaskResetEventItemValue( void ) PRIVILEGED_FUNCTION;
TaskHandle_t xTaskGetCurrentTaskHandle( void ) PRIVILEGED_FUNCTION;
/*
+ * Capture the current time status for future reference.
+ */
+void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) PRIVILEGED_FUNCTION;
+
+/*
+ * Compare the time status now with that previously captured to see if the
+ * timeout has expired.
+ */
+BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait ) PRIVILEGED_FUNCTION;
+
+/*
* Shortcut used by the queue implementation to prevent unnecessary call to
* taskYIELD();
*/
@@ -2492,19 +2383,6 @@ void vTaskSetTaskNumber( TaskHandle_t xTask, const UBaseType_t uxHandle ) PRIVIL
*/
void vTaskStepTick( const TickType_t xTicksToJump ) PRIVILEGED_FUNCTION;
-/* Correct the tick count value after the application code has held
-interrupts disabled for an extended period. xTicksToCatchUp is the number
-of tick interrupts that have been missed due to interrupts being disabled.
-Its value is not computed automatically, so must be computed by the
-application writer.
-
-This function is similar to vTaskStepTick(), however, unlike
-vTaskStepTick(), xTaskCatchUpTicks() may move the tick count forward past a
-time at which a task should be removed from the blocked state. That means
-tasks may have to be removed from the blocked state as the tick count is
-moved. */
-BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) PRIVILEGED_FUNCTION;
-
/*
* Only available when configUSE_TICKLESS_IDLE is set to 1.
* Provided for use within portSUPPRESS_TICKS_AND_SLEEP() to allow the port
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h b/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/list.c b/Middlewares/Third_Party/FreeRTOS/Source/list.c
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/ReadMe.txt b/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/ReadMe.txt
deleted file mode 100755
index d661449..0000000
--- a/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/ReadMe.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-There are two options for running FreeRTOS on ARM Cortex-M7 microcontrollers.
-The best option depends on the revision of the ARM Cortex-M7 core in use. The
-revision is specified by an 'r' number, and a 'p' number, so will look something
-like 'r0p1'. Check the documentation for the microcontroller in use to find the
-revision of the Cortex-M7 core used in that microcontroller. If in doubt, use
-the FreeRTOS port provided specifically for r0p1 revisions, as that can be used
-with all core revisions.
-
-The first option is to use the ARM Cortex-M4F port, and the second option is to
-use the Cortex-M7 r0p1 port - the latter containing a minor errata workaround.
-
-If the revision of the ARM Cortex-M7 core is not r0p1 then either option can be
-used, but it is recommended to use the FreeRTOS ARM Cortex-M4F port located in
-the /FreeRTOS/Source/portable/GCC/ARM_CM4F directory.
-
-If the revision of the ARM Cortex-M7 core is r0p1 then use the FreeRTOS ARM
-Cortex-M7 r0p1 port located in the /FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1
-directory.
\ No newline at end of file
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c b/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/portmacro.h b/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/portmacro.h
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c b/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/portable/readme.txt b/Middlewares/Third_Party/FreeRTOS/Source/portable/readme.txt
deleted file mode 100755
index b22b36b..0000000
--- a/Middlewares/Third_Party/FreeRTOS/Source/portable/readme.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Each real time kernel port consists of three files that contain the core kernel
-components and are common to every port, and one or more files that are
-specific to a particular microcontroller and/or compiler.
-
-
-+ The FreeRTOS/Source/Portable/MemMang directory contains the five sample
-memory allocators as described on the http://www.FreeRTOS.org WEB site.
-
-+ The other directories each contain files specific to a particular
-microcontroller or compiler, where the directory name denotes the compiler
-specific files the directory contains.
-
-
-
-For example, if you are interested in the [compiler] port for the [architecture]
-microcontroller, then the port specific files are contained in
-FreeRTOS/Source/Portable/[compiler]/[architecture] directory. If this is the
-only port you are interested in then all the other directories can be
-ignored.
-
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/queue.c b/Middlewares/Third_Party/FreeRTOS/Source/queue.c
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/readme.txt b/Middlewares/Third_Party/FreeRTOS/Source/readme.txt
deleted file mode 100755
index 81518ec..0000000
--- a/Middlewares/Third_Party/FreeRTOS/Source/readme.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Each real time kernel port consists of three files that contain the core kernel
-components and are common to every port, and one or more files that are
-specific to a particular microcontroller and or compiler.
-
-+ The FreeRTOS/Source directory contains the three files that are common to
-every port - list.c, queue.c and tasks.c. The kernel is contained within these
-three files. croutine.c implements the optional co-routine functionality - which
-is normally only used on very memory limited systems.
-
-+ The FreeRTOS/Source/Portable directory contains the files that are specific to
-a particular microcontroller and or compiler.
-
-+ The FreeRTOS/Source/include directory contains the real time kernel header
-files.
-
-See the readme file in the FreeRTOS/Source/Portable directory for more
-information.
\ No newline at end of file
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/st_readme.txt b/Middlewares/Third_Party/FreeRTOS/Source/st_readme.txt
deleted file mode 100755
index 8d7194e..0000000
--- a/Middlewares/Third_Party/FreeRTOS/Source/st_readme.txt
+++ /dev/null
@@ -1,368 +0,0 @@
-
- @verbatim
- ******************************************************************************
- *
- * Portions Copyright © 2019 STMicroelectronics International N.V. All rights reserved.
- * Portions Copyright (C) 2016 Real Time Engineers Ltd, All rights reserved
- *
- * @file st_readme.txt
- * @author MCD Application Team
- * @brief This file lists the main modification done by STMicroelectronics on
- * FreeRTOS for integration with STM32Cube solution.
- * For more details on FreeRTOS implementation on STM32Cube, please refer
- * to UM1722 "Developing Applications on STM32Cube with FreeRTOS"
- ******************************************************************************
- *
- * Copyright (c) 2019 STMicroelectronics. All rights reserved.
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- @endverbatim
-
-=======
-
-### 17-January-2020 ###
-=========================
- + Fix compile error in the GCC CM7_MPU port caused by a duplicated variable declaration
- - Source/portable/GCC/ARM_CM7_MPU/r0p1/port.c
-
-### 13-December-2019 ###
-=========================
- + Remove warnings thrown by EWARM for CM33/CM23 ports
- - IAR/ARM_CM23/non_secure/portmacro.h
- - IAR/ARM_CM23_NTZ/non_secure/portmacro.h
- - IAR/ARM_CM33/non_secure/portmacro.h
- - IAR/ARM_CM33_NTZ/non_secure/portmacro.h
-
-### 19-July-2019 ###
-=========================
- + Fix runtime error in the IAR/CM4_MPU port
- - IAR/ARM_CM4_MPU/port.c
-
-### 12-July-2019 ###
-=========================
- + FreeRTOS: Update against the FreeRTOS v10.2.1 release
- - support for the CM33 and CM23 cores
-
- + CMSIS_RTOS_V2: update against the latest CMSIS-FreeRTOS v10.2.0 release
-
- + Add MPU support for the CM7/r0p1:
- - GCC/ARM_CM7_MPU/r0p1/port.c
- - GCC/ARM_CM7_MPU/r0p1/portmacro.h
- - IAR/ARM_CM7_MPU/r0p1/port.c
- - IAR/ARM_CM7_MPU/r0p1/portasm.s
- - IAR/ARM_CM7_MPU/r0p1/portmacro.h
- - RVDS/ARM_CM7_MPU/r0p1/port.c
- - RVDS/ARM_CM7_MPU/r0p1/portmacro.h
-
- + cmsis_os.c: Fix compile errors by using the correct TimerCallbackFunction_t type for timer creation
-
-### 29-Mars-2019 ###
-=========================
- + cmsis_os.c : Fix bug in osPoolAlloc(): memory blocks can't be reused after being free'd
- + Source/CMSIS_RTOS_V2/cmsis_os, Source/CMSIS_RTOS_V2/cmsis_os1.c, Source/CMSIS_RTOS_V2/cmsis_os2.c, Source/CMSIS_RTOS_V2/cmsis_os2.h: restore original Apache license terms
- + st_readme.txt: update license terms to BSD-3-Clause
-
-
-### 13-August-2018 ###
-=========================
- + Add empty implementation for the missing function osThreadGetStackSize()
- to avoid link errors when using CMSIS-RTOS V2.
-
- + Update the FreeRTOSConfig_template.h with specific defines for the
- CMSIS-RTOS V2.
-
- + Rename the "RTE_RTOS_FreeRTOS_XXXX" macros to "USE_FreeRTOS_XXXX" in
- cmsis_os2.c.
-
-### 30-July-2018 ###
-=========================
- + Update License.txt file to MIT license instead of GPLv2
-
-### 23-July-2018 ###
-=========================
- + Fix compiler warnings thrown by IAR compiler 8.20
-
- + Add MPU support for the CM7/r0p1:
- - GCC/ARM_CM7_MPU/r0p1/port.c
- - GCC/ARM_CM7_MPU/r0p1/portmacro.h
- - IAR/ARM_CM7_MPU/r0p1/port.c
- - IAR/ARM_CM7_MPU/r0p1/portasm.s
- - IAR/ARM_CM7_MPU/r0p1/portmacro.h
- - RVDS/ARM_CM7_MPU/r0p1/port.c
- - RVDS/ARM_CM7_MPU/r0p1/portmacro.h
-
-### 09-April-2018 ###
-=========================
- Update the FreeRTOS against the latest release 10.0.1
- more details are available in: https://www.freertos.org/History.txt
-
- + Integrate support for tickless mode for ARM_CM0 core:
- - GCC/ARM_CM0/port.c
- - GCC/ARM_CM0/portmacro.h
- - IAR/ARM_CM0/port.c
- - IAR/ARM_CM0/portmacro.h
- - RVDS/ARM_CM0/port.c
-
- Integrate CMSIS-RTOSv2 wrapper based on: https://github.com/ARM-software/CMSIS-FreeRTOS/releases/tag/10.0.1
- + Add new files:
- - CMSIS_RTOS_V2/cmsis_os.h
- - CMSIS_RTOS_V2/cmsis_os1.c
- - CMSIS_RTOS_V2/cmsis_os2.c
- - CMSIS_RTOS_V2/cmsis_os2.h
- "cmsis_os1.c" and "cmsis_os1.h" contains the reference implementation of
- CMSIS-RTOSv1,i.e as released by ARM, using the CMSIS-RTOSV2 API.
-
- + The ST customized CMSIS-RTOSv1 is maintained under:
- - CMSIS_RTOS/cmsis_os.c
- - CMSIS_RTOS/cmsis_os.h
-
- + When using CMSIS-RTOSv2 APIs, the following FreeRTOS defines are required:
- - #define configMAX_PRIORITIES 56
- - #define configSUPPORT_STATIC_ALLOCATION 0
- - #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
-
-
-### 10-August-2017 ###
-=========================
- Update FreeRTOS to support MPU feature with IAR compiler.
-
- + Add the following ports:
- - IAR/ARM_CM4_MPU
- - IAR/ARM_CM7_MPU
- - RVDS/ARM_CM7_MPU
-
-
-### 03-March-2017 ###
-=========================
- Update CMSIS-RTOS drivers to support both CMSIS Core V4.x and V5.x
-
- Bug fixes:
- + CMSIS-RTOS: Wrong return value for osSignalWait()
- + CMSIS-RTOS: Not all queue size is 0 initialized with osMailCAlloc()
-
- Limitation:
- + CMSIS-RTOS: osSignalWAit() function is not fully compliant with the specification
-
-
-### 30-September-2016 ###
-=========================
- The purpose of this release is to Upgrade to use FreeRTOS V9.0.0, this version
- is a drop-in compatible replacement for FreeRTOS V8.2.3.
- For more details please refer to http://www.freertos.org/History.txt
-
- + Add support to tickless mode for MPU ports:
- - GCC/ARM_CM3_MPU/port.c
- - GCC/ARM_CM4_MPU/port.c
- - RVDS/ARM_CM4_MPU/port.c
-
- + Update CM0 ports, add possibility to use a timebase different than Systick:
- - IAR/ARM_CM0/port.c
- - RVDS/ARM_CM0/port.c
- - GCC/ARM_CM0/port.c
-
- + Fix compilation error in CM3_MPU and CM4_MPU ports:
- - GCC/ARM_CM3_MPU/portmacro.h
- - GCC/ARM_CM4_MPU/portmacro.h
- - RVDS/ARM_CM4_MPU/portmacro.h
- - Add "Source\portable\Common\" directory
-
- + cmsis_os.c
- - Add support of Statically Allocated Systems introduced with FreeRTOS V9.0.0
- - Add new wrappers CMSIS-RTOS APIs
-
- FreeRTOS APIs | CMSIS-RTOS APIs | Description
- ==================================================================================================================
- uxQueueMessagesWaiting() | osMessageWaiting() | Return the number of messages stored in a queue
- ------------------------------------------------------------------------------------------------------------------
- xTaskAbortDelay() | osAbortDelay() | Force a thread to get out the blocked state immediately
- ------------------------------------------------------------------------------------------------------------------
- uxSemaphoreGetCount() | osSemaphoreGetCount() | Return the current count of a semaphore
- ------------------------------------------------------------------------------------------------------------------
- uxQueueSpacesAvailable() | osMessageAvailableSpace() | Return the available space in a message queue
- ------------------------------------------------------------------------------------------------------------------
- vQueueDelete() | osMessageDelete() | Delete a message Queue
- ------------------------------------------------------------------------------------------------------------------
-
-
-### 22-January-2016 ###
-=======================
- The purpose of this release is to Upgrade to use FreeRTOS V8.2.3.
- It also provides fixes for minor issues.
-
- + cmsis_os.c
- - Implementation of functions "osSignalSet" and "osSignalWait" are now delimited by
- #define configUSE_TASK_NOTIFICATIONS.
- - Function "osTimerStart" : fix for an assert issue when called from an ISR.
- - Function "osMailCreate" : internal variables initialization.
- - Function "osSignalWait" : signals value is now compared versus integer zero for error checking.
-
- + freeRTOS sources
- - FreeRTOS.h file : Add configuration sanity check in case of configUSE_RECURSIVE_MUTEXES set
- and configUSE_MUTEXES not set.
-
- + STMicroelectronics license simplifications, see license disclaimer within this file's header
-
-
-### 27-March-2015 ###
-=====================
- The purpose of this release is to Upgrade to use FreeRTOS V8.2.1.
-
- + Major change of the version 8.2.1 is the support of CM7 core.
- For STM32F746xx/STM32F756xx devices, need to use port files under Source/Portable/XXX/ARM_CM7/r0p1,
- where XXX refers to the compiler used.
-
- + It also provides implementation of osSignal management APIs, osSignalSet() and osSignalWait(),
- fixes osMassage queue size, osMailQDef macro and osDelayUntil parameters.
-
- + In this release an alignment has been done in ARM_CM4 and ARM_CM3 port.c versus ARM_CM0 port.c
- regarding the use of macros configPRE_SLEEP_PROCESSING and configPOST_SLEEP_PROCESSING, these tow macros
- are now taking as parameter as pointer to TickType_t.
-
- + cmsis_os.c
- - Add implementation of osSignalSet() and osSignalWait() APIs
- - Fix massage queue size in osMessageCreate API
- - osDelayUntil: parameter PreviousWakeTime is now passed as a pointer.
- - Enabling Mail queue management APIs (temporary removed in previous version).
- - Function "osThreadGetPriority" uses now uxTaskPriorityGetFromISR if called from an interrupt handler, if not use uxTaskPriorityGet.
-
- + cmsis_os.h
- - osFeature_Wait is defined to 0 to indicate that osWait function is not available (as specified by cmsis_os template by ARM)
- - Fix compilation issue with osMailQDef macro.
- - Enabling Mail queue management APIs (temporary removed in previous version)
-
- + freeRTOS sources
- - ARM_CM3 port.c and ARM_CM4 port.c:
- function vPortSuppressTicksAndSleep : configPRE_SLEEP_PROCESSING and configPOST_SLEEP_PROCESSING are now taking
- as parameter as pointer to TickType_t.
- The purpose of this change is to align the CM3 and CM4 implementation with CM0 one.
-
- + Note
- - osSignalSet returns an int32_t value which is a a status (osOK or osError)
- instead of the previous signal value as specified in cmsis_os template by ARM.
- This is mainly due to freeRTOS implementation, the return value will be aligned (with the cmsis os template by ARM) as soon as the freeRTOS next version will allow it.
-
- - osThreadDef() macro is defined in the freeRTOS cmsis_os.h wrapper as follow :
- osThreadDef(name, thread, priority, instances, stacksz)
- the macro osThreadDef() as defined in ARM cmsis_os.h is defined with 4 parameters :
- name : name of the thread function.
- priority : initial priority of the thread function.
- instances : number of possible thread instances.
- stacksz : stack size (in bytes) requirements for the thread function.
-
- - osThreadDef as defined in the ARM template file cmsis_os.h assumes that the thread name is the same as the thread function name.
- where the freeRTOS implementation gives separate parameters for the thread name and the thread function name.
-
- care must be taken when porting an application from/to another OS to/from freeRTOS cmsis_os regarding this macro.
-
- the macro osThreadDef() as defined in ARM cmsis_os.h template is defined with 4 parameters :
- name : name of the thread function.
- priority : initial priority of the thread function.
- instances : number of possible thread instances.
- stacksz : stack size (in bytes) requirements for the thread function.
-
- the macro osThreadDef() as defined in freeRTOS cmsis_os.h is defined with 5 parameters :
- name : name of the thread (used for debugging and trace).
- thread : name of the thread function
- priority : initial priority of the thread function.
- instances : number of possible thread instances.
- stacksz : stack size (in bytes) requirements for the thread function.
-
-
-### 25-December-2014 ###
-========================
- The purpose of this release is to remove compilation errors and warning. It also reintroduces
- the function osThreadIsSuspended() which has been removed in the version V1.2.0.
-
- + cmsis_os.c
- - osThreadGetPriority() and makeCmsisPriority(): replace INCLUDE_vTaskPriorityGet by the correct
- freeRTOS constant uxTaskPriorityGet.
- The version 1.2.2 is using a wrong constant INCLUDE_vTaskPriorityGet, while the correct freeRTOS
- constant is uxTaskPriorityGet.
- This fix ensure a safe use of osThreadGetPriority() function.
-
- - osThreadIsSuspended(): this function has been removed in version V1.2.0, it is now available gain.
- User can either use this function to check if a Thread is suspended either use function osThreadGetState,
- which is more generic, to check the exact state of a thread.
-
- - osThreadList(): this function is now taking as argument a pointer to uint8_t instead of a pointer to int8_t.
- The change is made to remove a compilation warning.
-
- - osRecursiveMutexCreate(): the prototype has been changed to osMutexId osRecursiveMutexCreate (const osMutexDef_t *mutex_def)
- This change is made to make osRecursiveMutexCreate() compatible with function MutexCreate().
- It also allow the better use of the function in conjunction with the macro osMutex, note that osMutex return a
- "const osMutexDef_t *mutex_def".
- example : osMutex1Id = osRecursiveMutexCreate (osMutex(Mutex1));
-
- - Fix implementation of functions osSemaphoreWait(), osMutexRelease() and osMutexWait() by using the appropriate
- freeRTOS “FromISR” APIs when called from an interrupt.
-
- - Fix compilation warning when the constant INCLUDE_eTaskGetState is not defined
-
- + cmsis_os.h
- - osThreadIsSuspended(): add function prototype.
- - osThreadList(): function prototype modified as described in cmsis_os.c section.
- - osRecursiveMutexCreate(): function modified as described in cmsis_os.c section.
-
- + Important note:
- Mail Queue Management Functions are not supported in this cmsis_os version, will be added in the next release.
-
-
-### 04-December-2014 ###
-========================
- + cmsis_os.c, osSemaphoreCreate(): use vSemaphoreCreateBinary() instead of xSemaphoreCreateBinary(),
- to keep compatibility with application code developed on FreeRTOS V7.6.0.
-
-
-### 07-November-2014 ###
-========================
- + cmsis_os.h: modify the osThreadState enum to fix warning generated by ARMCC compiler
- + task.c: add preprocessor compilation condition for prvTaskIsTaskSuspended() function
- (it's build only when INCLUDE_vTaskSuspend option is enabled in FreeRTOSConfig.h file)
-
-
-### 04-November-2014 ###
-========================
- + Upgrade to use FreeRTOS V8.1.2 and CMSIS-RTOS V1.02.
- + cmsis_os.c
- - Almost of CMSIS-RTOS APIs are implemented for FreeRTOS
- - Additional wrapper APIs created for FreeRTOS
-
- + Important note:
- When upgrading existing application code to use this last version, the following
- update should be considered:
- - osThreadIsSuspended() is no longer public API in FreeRTOS and it should
- be replaced by the wrapping of eTaskGetState()
- - osKernelStart() API changed, must be updated
- - update FreeRTOSConfig.h file, taking FreeRTOSConfig_template.h file as reference
-
-
-### 13-June-2014 ###
-====================
- + FreeRTOSConfig_template.h: add this definition #define INCLUDE_xTaskGetSchedulerState 1
- to enable the use of xTaskGetSchedulerState() API in the
- application code.
-
-
-### 30-April-2014 ###
-=====================
- + cmsis_os.c: add preprocessor compilation condition when calling some FreeRTOS APIs, to avoid link
- errors with MDK-ARM when some FreeRTOS features are not enabled in FreeRTOSConfig.h
-
-
-### 22-April-2014 ###
-=====================
- + Add Tickles mode for CM0 port (IAR, GCC, RVDS).
-
-
-### 18-February-2014 ###
-========================
- + FreeRTOS V7.6.0 customized version for STM32Cube solution.
-
-
- * © COPYRIGHT STMicroelectronics
- */
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c b/Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/tasks.c b/Middlewares/Third_Party/FreeRTOS/Source/tasks.c
old mode 100644
new mode 100755
diff --git a/Middlewares/Third_Party/FreeRTOS/Source/timers.c b/Middlewares/Third_Party/FreeRTOS/Source/timers.c
old mode 100644
new mode 100755
diff --git a/Middlewares/eez/platform/stm32/display.cpp b/Middlewares/eez/platform/stm32/display.cpp
index f7c5ec8..58f52f3 100644
--- a/Middlewares/eez/platform/stm32/display.cpp
+++ b/Middlewares/eez/platform/stm32/display.cpp
@@ -28,10 +28,10 @@
#ifdef EEZ_PLATFORM_STM32F469I_DISCO
#include "stm32746g_discovery_lcd.h"
-extern "C" LTDC_HandleTypeDef hltdc_eval;
-extern "C" DMA2D_HandleTypeDef hdma2d_eval;
-#define hltdc hltdc_eval
-#define hdma2d hdma2d_eval
+extern "C" LTDC_HandleTypeDef hltdc;
+extern "C" DMA2D_HandleTypeDef hdma2d;
+#define hltdc hltdc
+#define hdma2d hdma2d
#endif
#include
diff --git a/STM32F746NGHX_FLASH.ld b/STM32F746NGHX_FLASH.ld
index 1781ef8..322bc42 100644
--- a/STM32F746NGHX_FLASH.ld
+++ b/STM32F746NGHX_FLASH.ld
@@ -38,8 +38,8 @@ ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
+_Min_Heap_Size = 0x200 ; /* required amount of heap */
+_Min_Stack_Size = 0x400 ; /* required amount of stack */
/* Memories definition */
MEMORY
diff --git a/Src/firmware.cpp b/Src/firmware.cpp
index 48b89b5..294543a 100644
--- a/Src/firmware.cpp
+++ b/Src/firmware.cpp
@@ -44,6 +44,7 @@ extern "C" void init() {
LCD_init();
eez::initAssetsMemory();
+
eez::gui::loadMainAssets(eez::gui::assets, sizeof(eez::gui::assets));
eez::initOtherMemory();
eez::initAllocHeap(eez::ALLOC_BUFFER, eez::ALLOC_BUFFER_SIZE);
diff --git a/Src/lcd.cpp b/Src/lcd.cpp
index a1552c8..d769a0f 100644
--- a/Src/lcd.cpp
+++ b/Src/lcd.cpp
@@ -14,8 +14,8 @@
#ifdef EEZ_PLATFORM_STM32
-extern LTDC_HandleTypeDef hltdc_eval;
-extern DMA2D_HandleTypeDef hdma2d_eval;
+extern LTDC_HandleTypeDef hltdc;
+extern DMA2D_HandleTypeDef hdma2d;
static void OnError_Handler(uint32_t condition);
@@ -38,7 +38,6 @@ void LCD_init() {
uint8_t lcd_status = LCD_OK;
lcd_status = BSP_LCD_Init();
OnError_Handler(lcd_status != LCD_OK);
-
BSP_LCD_LayerDefaultInit(0, (uint32_t)eez::VRAM_BUFFER1_START_ADDRESS);
BSP_LCD_SelectLayer(0);
//
diff --git a/USB_DEVICE/Target/usbd_conf.c b/USB_DEVICE/Target/usbd_conf.c
index 991b34e..1c1522e 100644
--- a/USB_DEVICE/Target/usbd_conf.c
+++ b/USB_DEVICE/Target/usbd_conf.c
@@ -77,15 +77,20 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
/**USB_OTG_FS GPIO Configuration
PA12 ------> USB_OTG_FS_DP
PA11 ------> USB_OTG_FS_DM
- PA10 ------> USB_OTG_FS_ID
+ PA9 ------> USB_OTG_FS_VBUS
*/
- GPIO_InitStruct.Pin = OTG_FS_P_Pin|OTG_FS_N_Pin|OTG_FS_ID_Pin;
+ GPIO_InitStruct.Pin = OTG_FS_P_Pin|OTG_FS_N_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ GPIO_InitStruct.Pin = GPIO_PIN_9;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
/* Peripheral clock enable */
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
@@ -111,9 +116,9 @@ void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
/**USB_OTG_FS GPIO Configuration
PA12 ------> USB_OTG_FS_DP
PA11 ------> USB_OTG_FS_DM
- PA10 ------> USB_OTG_FS_ID
+ PA9 ------> USB_OTG_FS_VBUS
*/
- HAL_GPIO_DeInit(GPIOA, OTG_FS_P_Pin|OTG_FS_N_Pin|OTG_FS_ID_Pin);
+ HAL_GPIO_DeInit(GPIOA, OTG_FS_P_Pin|OTG_FS_N_Pin|GPIO_PIN_9);
/* Peripheral interrupt Deinit*/
HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
@@ -340,7 +345,7 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
hpcd_USB_OTG_FS.Init.Sof_enable = DISABLE;
hpcd_USB_OTG_FS.Init.low_power_enable = DISABLE;
hpcd_USB_OTG_FS.Init.lpm_enable = DISABLE;
- hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE;
+ hpcd_USB_OTG_FS.Init.vbus_sensing_enable = ENABLE;
hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE;
if (HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK)
{
diff --git a/stm32f746g-disco.ioc b/stm32f746g-disco.ioc
index 45e85a3..556e01c 100644
--- a/stm32f746g-disco.ioc
+++ b/stm32f746g-disco.ioc
@@ -1,4 +1,6 @@
#MicroXplorer Configuration settings - do not modify
+ETH.IPParameters=MediaInterface
+ETH.MediaInterface=HAL_ETH_RMII_MODE
FATFS.BSP.number=1
FATFS0.BSP.STBoard=false
FATFS0.BSP.api=Unknown
@@ -23,19 +25,23 @@ FMC.SelfRefreshTime1=4
FMC.WriteRecoveryTime1=3
FREERTOS.IPParameters=Tasks01,configUSE_APPLICATION_TASK_TAG,configUSE_RECURSIVE_MUTEXES,configUSE_COUNTING_SEMAPHORES,configUSE_IDLE_HOOK,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,configTOTAL_HEAP_SIZE,configUSE_NEWLIB_REENTRANT,configENABLE_FPU
FREERTOS.Tasks01=defaultTask,24,4096,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL
-FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2
-FREERTOS.configENABLE_FPU=1
-FREERTOS.configTOTAL_HEAP_SIZE=32768
+FREERTOS.configCHECK_FOR_STACK_OVERFLOW=0
+FREERTOS.configENABLE_FPU=0
+FREERTOS.configTOTAL_HEAP_SIZE=131072
FREERTOS.configUSE_APPLICATION_TASK_TAG=1
FREERTOS.configUSE_COUNTING_SEMAPHORES=1
-FREERTOS.configUSE_IDLE_HOOK=1
-FREERTOS.configUSE_MALLOC_FAILED_HOOK=1
+FREERTOS.configUSE_IDLE_HOOK=0
+FREERTOS.configUSE_MALLOC_FAILED_HOOK=0
FREERTOS.configUSE_NEWLIB_REENTRANT=1
FREERTOS.configUSE_RECURSIVE_MUTEXES=1
File.Version=6
GPIO.groupedBy=Group By Peripherals
I2C1.IPParameters=Timing
I2C1.Timing=0x00C0EAFF
+I2C2.IPParameters=Timing
+I2C2.Timing=0x00C0EAFF
+I2C3.IPParameters=Timing
+I2C3.Timing=0x00C0EAFF
KeepUserPlacement=false
LTDC.ActiveH=272
LTDC.ActiveW=480
@@ -58,198 +64,175 @@ Mcu.CPN=STM32F746NGH6
Mcu.Family=STM32F7
Mcu.IP0=CORTEX_M7
Mcu.IP1=CRC
-Mcu.IP10=RCC
-Mcu.IP11=SDMMC1
-Mcu.IP12=SYS
-Mcu.IP13=TIM1
-Mcu.IP14=USB_DEVICE
-Mcu.IP15=USB_OTG_FS
+Mcu.IP10=LTDC
+Mcu.IP11=NVIC
+Mcu.IP12=QUADSPI
+Mcu.IP13=RCC
+Mcu.IP14=SDMMC1
+Mcu.IP15=SYS
+Mcu.IP16=TIM1
+Mcu.IP17=USART3
+Mcu.IP18=USART6
+Mcu.IP19=USB_DEVICE
Mcu.IP2=DMA2D
-Mcu.IP3=FATFS
-Mcu.IP4=FMC
-Mcu.IP5=FREERTOS
-Mcu.IP6=I2C1
-Mcu.IP7=LTDC
-Mcu.IP8=NVIC
-Mcu.IP9=QUADSPI
-Mcu.IPNb=16
+Mcu.IP20=USB_OTG_FS
+Mcu.IP3=ETH
+Mcu.IP4=FATFS
+Mcu.IP5=FMC
+Mcu.IP6=FREERTOS
+Mcu.IP7=I2C1
+Mcu.IP8=I2C2
+Mcu.IP9=I2C3
+Mcu.IPNb=21
Mcu.Name=STM32F746NGHx
Mcu.Package=TFBGA216
Mcu.Pin0=PE4
Mcu.Pin1=PE3
-Mcu.Pin10=PD7
-Mcu.Pin100=PD15
-Mcu.Pin101=PB13
-Mcu.Pin102=PD10
-Mcu.Pin103=PF10
-Mcu.Pin104=PF9
-Mcu.Pin105=PF8
-Mcu.Pin106=PC3
-Mcu.Pin107=PD14
-Mcu.Pin108=PB12
-Mcu.Pin109=PD9
-Mcu.Pin11=PC12
-Mcu.Pin110=PD8
-Mcu.Pin111=PC0
-Mcu.Pin112=PC1
-Mcu.Pin113=PC2
-Mcu.Pin114=PB2
-Mcu.Pin115=PF12
-Mcu.Pin116=PG1
-Mcu.Pin117=PF15
-Mcu.Pin118=PJ4
-Mcu.Pin119=PD12
-Mcu.Pin12=PA15
-Mcu.Pin120=PD13
-Mcu.Pin121=PG3
-Mcu.Pin122=PG2
-Mcu.Pin123=PJ5
-Mcu.Pin124=PH12
-Mcu.Pin125=PA1
-Mcu.Pin126=PA0/WKUP
-Mcu.Pin127=PA4
-Mcu.Pin128=PC4
-Mcu.Pin129=PF13
-Mcu.Pin13=PA14
-Mcu.Pin130=PG0
-Mcu.Pin131=PJ3
-Mcu.Pin132=PE8
-Mcu.Pin133=PD11
-Mcu.Pin134=PG5
-Mcu.Pin135=PG4
-Mcu.Pin136=PH7
-Mcu.Pin137=PH9
-Mcu.Pin138=PH11
-Mcu.Pin139=PA2
-Mcu.Pin14=PA13
-Mcu.Pin140=PA6
-Mcu.Pin141=PA5
-Mcu.Pin142=PC5
-Mcu.Pin143=PF14
-Mcu.Pin144=PJ2
-Mcu.Pin145=PF11
-Mcu.Pin146=PE9
-Mcu.Pin147=PE11
-Mcu.Pin148=PE14
-Mcu.Pin149=PB10
-Mcu.Pin15=PE5
-Mcu.Pin150=PH6
-Mcu.Pin151=PH8
-Mcu.Pin152=PH10
-Mcu.Pin153=PA3
-Mcu.Pin154=PA7
-Mcu.Pin155=PB1
-Mcu.Pin156=PB0
-Mcu.Pin157=PJ0
-Mcu.Pin158=PJ1
-Mcu.Pin159=PE7
-Mcu.Pin16=PE6
-Mcu.Pin160=PE10
-Mcu.Pin161=PE12
-Mcu.Pin162=PE15
-Mcu.Pin163=PE13
-Mcu.Pin164=PB11
-Mcu.Pin165=PB14
-Mcu.Pin166=PB15
-Mcu.Pin167=VP_CRC_VS_CRC
-Mcu.Pin168=VP_DMA2D_VS_DMA2D
-Mcu.Pin169=VP_FATFS_VS_SDIO
-Mcu.Pin17=PG13
-Mcu.Pin170=VP_FREERTOS_VS_CMSIS_V2
-Mcu.Pin171=VP_SYS_VS_tim6
-Mcu.Pin172=VP_TIM1_VS_ClockSourceINT
-Mcu.Pin173=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
-Mcu.Pin18=PB9
-Mcu.Pin19=PB7
+Mcu.Pin10=PA15
+Mcu.Pin100=PJ4
+Mcu.Pin101=PD12
+Mcu.Pin102=PD13
+Mcu.Pin103=PG3
+Mcu.Pin104=PG2
+Mcu.Pin105=PJ5
+Mcu.Pin106=PA1
+Mcu.Pin107=PA0/WKUP
+Mcu.Pin108=PC4
+Mcu.Pin109=PF13
+Mcu.Pin11=PA14
+Mcu.Pin110=PG0
+Mcu.Pin111=PJ3
+Mcu.Pin112=PE8
+Mcu.Pin113=PD11
+Mcu.Pin114=PG5
+Mcu.Pin115=PG4
+Mcu.Pin116=PH7
+Mcu.Pin117=PA2
+Mcu.Pin118=PC5
+Mcu.Pin119=PF14
+Mcu.Pin12=PA13
+Mcu.Pin120=PJ2
+Mcu.Pin121=PF11
+Mcu.Pin122=PE9
+Mcu.Pin123=PE11
+Mcu.Pin124=PE14
+Mcu.Pin125=PB10
+Mcu.Pin126=PH6
+Mcu.Pin127=PH8
+Mcu.Pin128=PA7
+Mcu.Pin129=PJ0
+Mcu.Pin13=PG13
+Mcu.Pin130=PJ1
+Mcu.Pin131=PE7
+Mcu.Pin132=PE10
+Mcu.Pin133=PE12
+Mcu.Pin134=PE15
+Mcu.Pin135=PE13
+Mcu.Pin136=PB11
+Mcu.Pin137=PB14
+Mcu.Pin138=PB15
+Mcu.Pin139=VP_CRC_VS_CRC
+Mcu.Pin14=PB9
+Mcu.Pin140=VP_DMA2D_VS_DMA2D
+Mcu.Pin141=VP_FATFS_VS_SDIO
+Mcu.Pin142=VP_FREERTOS_VS_CMSIS_V2
+Mcu.Pin143=VP_SYS_VS_tim6
+Mcu.Pin144=VP_TIM1_VS_ClockSourceINT
+Mcu.Pin145=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
+Mcu.Pin15=PB6
+Mcu.Pin16=PG15
+Mcu.Pin17=PG11
+Mcu.Pin18=PJ13
+Mcu.Pin19=PJ12
Mcu.Pin2=PE2
-Mcu.Pin20=PB6
-Mcu.Pin21=PG15
-Mcu.Pin22=PG11
-Mcu.Pin23=PJ13
-Mcu.Pin24=PJ12
-Mcu.Pin25=PD6
-Mcu.Pin26=PD0
-Mcu.Pin27=PC11
-Mcu.Pin28=PC10
-Mcu.Pin29=PA12
+Mcu.Pin20=PD6
+Mcu.Pin21=PD0
+Mcu.Pin22=PC11
+Mcu.Pin23=PC10
+Mcu.Pin24=PA12
+Mcu.Pin25=PK7
+Mcu.Pin26=PK6
+Mcu.Pin27=PK5
+Mcu.Pin28=PG12
+Mcu.Pin29=PJ14
Mcu.Pin3=PG14
-Mcu.Pin30=PI8
-Mcu.Pin31=PI4
-Mcu.Pin32=PK7
-Mcu.Pin33=PK6
-Mcu.Pin34=PK5
-Mcu.Pin35=PG12
-Mcu.Pin36=PG10
-Mcu.Pin37=PJ14
-Mcu.Pin38=PD5
-Mcu.Pin39=PD3
+Mcu.Pin30=PD5
+Mcu.Pin31=PD1
+Mcu.Pin32=PI3
+Mcu.Pin33=PI2
+Mcu.Pin34=PA11
+Mcu.Pin35=PC13
+Mcu.Pin36=PF0
+Mcu.Pin37=PI10
+Mcu.Pin38=PK4
+Mcu.Pin39=PK3
Mcu.Pin4=PE1
-Mcu.Pin40=PD1
-Mcu.Pin41=PI3
-Mcu.Pin42=PI2
-Mcu.Pin43=PA11
-Mcu.Pin44=PC13
-Mcu.Pin45=PF0
-Mcu.Pin46=PI5
-Mcu.Pin47=PI7
-Mcu.Pin48=PI10
-Mcu.Pin49=PI6
+Mcu.Pin40=PJ15
+Mcu.Pin41=PD4
+Mcu.Pin42=PD2
+Mcu.Pin43=PH15
+Mcu.Pin44=PI1
+Mcu.Pin45=PC14/OSC32_IN
+Mcu.Pin46=PF1
+Mcu.Pin47=PI12
+Mcu.Pin48=PI9
+Mcu.Pin49=PH13
Mcu.Pin5=PE0
-Mcu.Pin50=PK4
-Mcu.Pin51=PK3
-Mcu.Pin52=PG9
-Mcu.Pin53=PJ15
-Mcu.Pin54=PD4
-Mcu.Pin55=PD2
-Mcu.Pin56=PH15
-Mcu.Pin57=PI1
-Mcu.Pin58=PA10
-Mcu.Pin59=PC14/OSC32_IN
+Mcu.Pin50=PI0
+Mcu.Pin51=PA9
+Mcu.Pin52=PC15/OSC32_OUT
+Mcu.Pin53=PK1
+Mcu.Pin54=PK2
+Mcu.Pin55=PC9
+Mcu.Pin56=PA8
+Mcu.Pin57=PH0/OSC_IN
+Mcu.Pin58=PF2
+Mcu.Pin59=PI13
Mcu.Pin6=PB8
-Mcu.Pin60=PF1
-Mcu.Pin61=PI12
-Mcu.Pin62=PI9
-Mcu.Pin63=PH13
-Mcu.Pin64=PH14
-Mcu.Pin65=PI0
-Mcu.Pin66=PA9
-Mcu.Pin67=PC15/OSC32_OUT
-Mcu.Pin68=PK1
-Mcu.Pin69=PK2
-Mcu.Pin7=PB5
-Mcu.Pin70=PC9
-Mcu.Pin71=PA8
-Mcu.Pin72=PH0/OSC_IN
-Mcu.Pin73=PF2
-Mcu.Pin74=PI13
-Mcu.Pin75=PI15
-Mcu.Pin76=PJ11
-Mcu.Pin77=PK0
-Mcu.Pin78=PC8
-Mcu.Pin79=PC7
-Mcu.Pin8=PB4
-Mcu.Pin80=PH1/OSC_OUT
-Mcu.Pin81=PF3
-Mcu.Pin82=PI14
-Mcu.Pin83=PH4
-Mcu.Pin84=PJ8
-Mcu.Pin85=PJ10
-Mcu.Pin86=PG8
-Mcu.Pin87=PC6
-Mcu.Pin88=PF4
-Mcu.Pin89=PH5
-Mcu.Pin9=PB3
-Mcu.Pin90=PH3
-Mcu.Pin91=PJ7
-Mcu.Pin92=PJ9
-Mcu.Pin93=PG7
-Mcu.Pin94=PG6
-Mcu.Pin95=PF7
-Mcu.Pin96=PF6
-Mcu.Pin97=PF5
-Mcu.Pin98=PH2
-Mcu.Pin99=PJ6
-Mcu.PinsNb=174
+Mcu.Pin60=PI15
+Mcu.Pin61=PJ11
+Mcu.Pin62=PK0
+Mcu.Pin63=PC8
+Mcu.Pin64=PC7
+Mcu.Pin65=PH1/OSC_OUT
+Mcu.Pin66=PF3
+Mcu.Pin67=PI14
+Mcu.Pin68=PH4
+Mcu.Pin69=PJ8
+Mcu.Pin7=PB4
+Mcu.Pin70=PJ10
+Mcu.Pin71=PG8
+Mcu.Pin72=PC6
+Mcu.Pin73=PF4
+Mcu.Pin74=PH5
+Mcu.Pin75=PH3
+Mcu.Pin76=PJ7
+Mcu.Pin77=PJ9
+Mcu.Pin78=PG7
+Mcu.Pin79=PG6
+Mcu.Pin8=PB3
+Mcu.Pin80=PF7
+Mcu.Pin81=PF6
+Mcu.Pin82=PF5
+Mcu.Pin83=PH2
+Mcu.Pin84=PJ6
+Mcu.Pin85=PD15
+Mcu.Pin86=PD10
+Mcu.Pin87=PF10
+Mcu.Pin88=PF9
+Mcu.Pin89=PF8
+Mcu.Pin9=PC12
+Mcu.Pin90=PC3
+Mcu.Pin91=PD14
+Mcu.Pin92=PD9
+Mcu.Pin93=PD8
+Mcu.Pin94=PC0
+Mcu.Pin95=PC1
+Mcu.Pin96=PB2
+Mcu.Pin97=PF12
+Mcu.Pin98=PG1
+Mcu.Pin99=PF15
+Mcu.PinsNb=146
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F746NGHx
@@ -284,11 +267,8 @@ PA0/WKUP.Signal=ADCx_IN0
PA1.GPIOParameters=GPIO_Label
PA1.GPIO_Label=RMII_REF_CLK [LAN8742A-CZ-TR_REFCLK0]
PA1.Locked=true
+PA1.Mode=RMII
PA1.Signal=ETH_REF_CLK
-PA10.GPIOParameters=GPIO_Label
-PA10.GPIO_Label=OTG_FS_ID
-PA10.Locked=true
-PA10.Signal=USB_OTG_FS_ID
PA11.GPIOParameters=GPIO_Label
PA11.GPIO_Label=OTG_FS_N
PA11.Locked=true
@@ -319,26 +299,12 @@ PA15.Signal=S_TIM2_CH1_ETR
PA2.GPIOParameters=GPIO_Label
PA2.GPIO_Label=RMII_MDIO [LAN8742A-CZ-TR_MDIO]
PA2.Locked=true
+PA2.Mode=RMII
PA2.Signal=ETH_MDIO
-PA3.GPIOParameters=GPIO_Label
-PA3.GPIO_Label=ULPI_D0 [USB3320C-EZK_D0]
-PA3.Locked=true
-PA3.Mode=Host_HS
-PA3.Signal=USB_OTG_HS_ULPI_D0
-PA4.GPIOParameters=GPIO_Label
-PA4.GPIO_Label=DCMI_HSYNC
-PA4.Locked=true
-PA4.Signal=DCMI_HSYNC
-PA5.GPIOParameters=GPIO_Label
-PA5.GPIO_Label=ULPI_CLK [USB3320C-EZK_CLKOUT]
-PA5.Locked=true
-PA5.Mode=Host_HS
-PA5.Signal=USB_OTG_HS_ULPI_CK
-PA6.Locked=true
-PA6.Signal=DCMI_PIXCLK
PA7.GPIOParameters=GPIO_Label
PA7.GPIO_Label=RMII_CRS_DV [LAN8742A-CZ-TR_CRS_DV]
PA7.Locked=true
+PA7.Mode=RMII
PA7.Signal=ETH_CRS_DV
PA8.GPIOParameters=GPIO_ModeDefaultPP,GPIO_Speed,GPIO_PuPd,GPIO_Label
PA8.GPIO_Label=ARDUINO PWM/D10
@@ -347,42 +313,15 @@ PA8.GPIO_PuPd=GPIO_NOPULL
PA8.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA8.Locked=true
PA8.Signal=S_TIM1_CH1
-PA9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
-PA9.GPIO_Label=VCP_TX [STM32F103CBT6_PA3]
-PA9.GPIO_Mode=GPIO_MODE_AF_PP
-PA9.GPIO_PuPd=GPIO_NOPULL
-PA9.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA9.Locked=true
-PA9.Signal=USART1_TX
-PB0.GPIOParameters=GPIO_Label
-PB0.GPIO_Label=ULPI_D1 [USB3320C-EZK_D1]
-PB0.Locked=true
-PB0.Mode=Host_HS
-PB0.Signal=USB_OTG_HS_ULPI_D1
-PB1.GPIOParameters=GPIO_Label
-PB1.GPIO_Label=ULPI_D2 [USB3320C-EZK_D2]
-PB1.Locked=true
-PB1.Mode=Host_HS
-PB1.Signal=USB_OTG_HS_ULPI_D2
-PB10.GPIOParameters=GPIO_Label
-PB10.GPIO_Label=ULPI_D3 [USB3320C-EZK_D3]
+PA9.Mode=Activate_VBUS
+PA9.Signal=USB_OTG_FS_VBUS
PB10.Locked=true
-PB10.Signal=USB_OTG_HS_ULPI_D3
-PB11.GPIOParameters=GPIO_Label
-PB11.GPIO_Label=ULPI_D4 [USB3320C-EZK_D4]
+PB10.Mode=Asynchronous
+PB10.Signal=USART3_TX
PB11.Locked=true
-PB11.Mode=Host_HS
-PB11.Signal=USB_OTG_HS_ULPI_D4
-PB12.GPIOParameters=GPIO_Label
-PB12.GPIO_Label=ULPI_D5 [USB3320C-EZK_D5]
-PB12.Locked=true
-PB12.Mode=Host_HS
-PB12.Signal=USB_OTG_HS_ULPI_D5
-PB13.GPIOParameters=GPIO_Label
-PB13.GPIO_Label=ULPI_D6 [USB3320C-EZK_D6]
-PB13.Locked=true
-PB13.Mode=Host_HS
-PB13.Signal=USB_OTG_HS_ULPI_D6
+PB11.Mode=Asynchronous
+PB11.Signal=USART3_RX
PB14.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
PB14.GPIO_Label=ARDUINO MISO/D12
PB14.GPIO_Mode=GPIO_MODE_AF_PP
@@ -411,23 +350,11 @@ PB4.GPIO_PuPd=GPIO_NOPULL
PB4.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB4.Locked=true
PB4.Signal=S_TIM3_CH1
-PB5.GPIOParameters=GPIO_Label
-PB5.GPIO_Label=ULPI_D7 [USB3320C-EZK_D7]
-PB5.Locked=true
-PB5.Mode=Host_HS
-PB5.Signal=USB_OTG_HS_ULPI_D7
PB6.GPIOParameters=GPIO_Label
PB6.GPIO_Label=QSPI_NCS [N25Q128A13EF840E_S]
PB6.Locked=true
PB6.Mode=Single Bank 1
PB6.Signal=QUADSPI_BK1_NCS
-PB7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
-PB7.GPIO_Label=VCP_RX [STM32F103CBT6_PA2]
-PB7.GPIO_Mode=GPIO_MODE_AF_PP
-PB7.GPIO_PuPd=GPIO_NOPULL
-PB7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PB7.Locked=true
-PB7.Signal=USART1_RX
PB8.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Pu,GPIO_Mode
PB8.GPIO_Label=ARDUINO SCL/D15
PB8.GPIO_Mode=GPIO_MODE_AF_OD
@@ -446,14 +373,12 @@ PB9.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB9.Locked=true
PB9.Mode=I2C
PB9.Signal=I2C1_SDA
-PC0.GPIOParameters=GPIO_Label
-PC0.GPIO_Label=ULPI_STP [USB3320C-EZK_STP]
PC0.Locked=true
-PC0.Mode=Host_HS
-PC0.Signal=USB_OTG_HS_ULPI_STP
+PC0.Signal=FMC_SDNWE
PC1.GPIOParameters=GPIO_Label
PC1.GPIO_Label=RMII_MDC [LAN8742A-CZ-TR_MDC]
PC1.Locked=true
+PC1.Mode=RMII
PC1.Signal=ETH_MDC
PC10.GPIOParameters=GPIO_Label
PC10.GPIO_Label=SDMMC_D2
@@ -485,11 +410,6 @@ PC15/OSC32_OUT.GPIO_Label=RCC_OSC32_OUT
PC15/OSC32_OUT.Locked=true
PC15/OSC32_OUT.Mode=LSE-External-Oscillator
PC15/OSC32_OUT.Signal=RCC_OSC32_OUT
-PC2.GPIOParameters=GPIO_Label
-PC2.GPIO_Label=ULPI_DIR [USB3320C-EZK_DIR]
-PC2.Locked=true
-PC2.Mode=Host_HS
-PC2.Signal=USB_OTG_HS_ULPI_DIR
PC3.GPIOParameters=GPIO_Label
PC3.GPIO_Label=FMC_SDCKE0 [MT48LC4M32B2B5-6A_CKE]
PC3.Locked=true
@@ -498,18 +418,22 @@ PC3.Signal=FMC_SDCKE0
PC4.GPIOParameters=GPIO_Label
PC4.GPIO_Label=RMII_RXD0 [LAN8742A-CZ-TR_RXD0]
PC4.Locked=true
+PC4.Mode=RMII
PC4.Signal=ETH_RXD0
PC5.GPIOParameters=GPIO_Label
PC5.GPIO_Label=RMII_RXD1 [LAN8742A-CZ-TR_RXD1]
PC5.Locked=true
+PC5.Mode=RMII
PC5.Signal=ETH_RXD1
PC6.GPIOParameters=GPIO_Label
PC6.GPIO_Label=ARDUINO TX/D1
PC6.Locked=true
+PC6.Mode=Asynchronous
PC6.Signal=USART6_TX
PC7.GPIOParameters=GPIO_Label
PC7.GPIO_Label=ARDUINO RX/D0
PC7.Locked=true
+PC7.Mode=Asynchronous
PC7.Signal=USART6_RX
PC8.Locked=true
PC8.Mode=SD_4_bits_Wide_bus
@@ -557,10 +481,6 @@ PD2.GPIO_Label=SDMMC_CMD
PD2.Locked=true
PD2.Mode=SD_4_bits_Wide_bus
PD2.Signal=SDMMC1_CMD
-PD3.GPIOParameters=GPIO_Label
-PD3.GPIO_Label=DCMI_D5
-PD3.Locked=true
-PD3.Signal=DCMI_D5
PD4.GPIOParameters=GPIO_Label
PD4.GPIO_Label=OTG_FS_OverCurrent [STMPS2141STR_Fault]
PD4.Locked=true
@@ -575,10 +495,6 @@ PD6.GPIO_Label=Audio_INT
PD6.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
PD6.Locked=true
PD6.Signal=GPXTI6
-PD7.GPIOParameters=GPIO_Label
-PD7.GPIO_Label=SPDIF_RX0 [74LVC1G04SE_4]
-PD7.Locked=true
-PD7.Signal=SPDIFRX_IN0
PD8.GPIOParameters=GPIO_Label
PD8.GPIO_Label=FMC_D13 [MT48LC4M32B2B5-6A_DQ13]
PD8.Locked=true
@@ -633,14 +549,6 @@ PE4.GPIO_Label=LCD_B0 [RK043FN48H-CT672B_B0]
PE4.Locked=true
PE4.Mode=RGB888
PE4.Signal=LTDC_B0
-PE5.GPIOParameters=GPIO_Label
-PE5.GPIO_Label=DCMI_D6
-PE5.Locked=true
-PE5.Signal=DCMI_D6
-PE6.GPIOParameters=GPIO_Label
-PE6.GPIO_Label=DCMI_D7
-PE6.Locked=true
-PE6.Signal=DCMI_D7
PE7.GPIOParameters=GPIO_Label
PE7.GPIO_Label=FMC_D4 [MT48LC4M32B2B5-6A_DQ4]
PE7.Locked=true
@@ -735,13 +643,10 @@ PG1.GPIOParameters=GPIO_Label
PG1.GPIO_Label=FMC_A11 [MT48LC4M32B2B5-6A_A11]
PG1.Locked=true
PG1.Signal=FMC_A11
-PG10.GPIOParameters=GPIO_Label
-PG10.GPIO_Label=SAI2_SDB [WM8994ECS/R_ADCDAT1]
-PG10.Locked=true
-PG10.Signal=SAI2_SD_B
PG11.GPIOParameters=GPIO_Label
PG11.GPIO_Label=RMII_TX_EN [LAN8742A-CZ-TR_TXEN]
PG11.Locked=true
+PG11.Mode=RMII
PG11.Signal=ETH_TX_EN
PG12.GPIOParameters=GPIO_Label
PG12.GPIO_Label=LCD_B4 [RK043FN48H-CT672B_B4]
@@ -751,10 +656,12 @@ PG12.Signal=LTDC_B4
PG13.GPIOParameters=GPIO_Label
PG13.GPIO_Label=RMII_TXD0 [LAN8742A-CZ-TR_TXD0]
PG13.Locked=true
+PG13.Mode=RMII
PG13.Signal=ETH_TXD0
PG14.GPIOParameters=GPIO_Label
PG14.GPIO_Label=RMII_TXD1 [LAN8742A-CZ-TR_TXD1]
PG14.Locked=true
+PG14.Mode=RMII
PG14.Signal=ETH_TXD1
PG15.GPIOParameters=GPIO_Label
PG15.GPIO_Label=FMC_SDNCAS [MT48LC4M32B2B5-6A_CAS]
@@ -788,10 +695,6 @@ PG8.GPIOParameters=GPIO_Label
PG8.GPIO_Label=FMC_SDCLK [MT48LC4M32B2B5-6A_CLK]
PG8.Locked=true
PG8.Signal=FMC_SDCLK
-PG9.GPIOParameters=GPIO_Label
-PG9.GPIO_Label=DCMI_VSYNC
-PG9.Locked=true
-PG9.Signal=DCMI_VSYNC
PH0/OSC_IN.GPIOParameters=GPIO_Label
PH0/OSC_IN.GPIO_Label=OSC_25M [NZ2520SB-25.00M_OUT]
PH0/OSC_IN.Locked=true
@@ -800,26 +703,10 @@ PH0/OSC_IN.Signal=RCC_OSC_IN
PH1/OSC_OUT.Locked=true
PH1/OSC_OUT.Mode=HSE-External-Oscillator
PH1/OSC_OUT.Signal=RCC_OSC_OUT
-PH10.GPIOParameters=GPIO_Label
-PH10.GPIO_Label=DCMI_D1
-PH10.Locked=true
-PH10.Signal=DCMI_D1
-PH11.GPIOParameters=GPIO_Label
-PH11.GPIO_Label=DCMI_D2
-PH11.Locked=true
-PH11.Signal=DCMI_D2
-PH12.GPIOParameters=GPIO_Label
-PH12.GPIO_Label=DCMI_D3
-PH12.Locked=true
-PH12.Signal=DCMI_D3
PH13.GPIOParameters=GPIO_Label
PH13.GPIO_Label=DCMI_PWR_EN
PH13.Locked=true
PH13.Signal=GPIO_Output
-PH14.GPIOParameters=GPIO_Label
-PH14.GPIO_Label=DCMI_D4
-PH14.Locked=true
-PH14.Signal=DCMI_D4
PH15.GPIOParameters=GPIO_Label
PH15.GPIO_Label=TP3
PH15.Locked=true
@@ -833,33 +720,20 @@ PH3.GPIO_Label=FMC_SDNE0 [MT48LC4M32B2B5-6A_CS]
PH3.Locked=true
PH3.Mode=SdramChipSelect1_1
PH3.Signal=FMC_SDNE0
-PH4.GPIOParameters=GPIO_Label
-PH4.GPIO_Label=ULPI_NXT [USB3320C-EZK_NXT]
PH4.Locked=true
-PH4.Mode=Host_HS
-PH4.Signal=USB_OTG_HS_ULPI_NXT
-PH5.GPIOParameters=GPIO_Label
-PH5.GPIO_Label=FMC_SDNME [MT48LC4M32B2B5-6A_WE]
+PH4.Mode=I2C
+PH4.Signal=I2C2_SCL
PH5.Locked=true
-PH5.Signal=FMC_SDNWE
+PH5.Mode=I2C
+PH5.Signal=I2C2_SDA
PH6.GPIOParameters=GPIO_Label
PH6.GPIO_Label=ARDUINO PWM/D6
PH6.Locked=true
PH6.Signal=S_TIM12_CH1
-PH7.GPIOParameters=GPIO_Label,GPIO_Pu
-PH7.GPIO_Label=LCD_SCL [RK043FN48H-CT672B_SCL]
-PH7.GPIO_Pu=GPIO_PULLUP
-PH7.Locked=true
+PH7.Mode=I2C
PH7.Signal=I2C3_SCL
-PH8.GPIOParameters=GPIO_Label,GPIO_Pu
-PH8.GPIO_Label=LCD_SDA [RK043FN48H-CT672B_SDA]
-PH8.GPIO_Pu=GPIO_PULLUP
-PH8.Locked=true
+PH8.Mode=I2C
PH8.Signal=I2C3_SDA
-PH9.GPIOParameters=GPIO_Label
-PH9.GPIO_Label=DCMI_D0
-PH9.Locked=true
-PH9.Signal=DCMI_D0
PI0.GPIOParameters=GPIO_ModeDefaultPP,GPIO_Speed,GPIO_PuPd,GPIO_Label
PI0.GPIO_Label=ARDUINO PWM/CS/D5
PI0.GPIO_ModeDefaultPP=GPIO_MODE_AF_PP
@@ -907,26 +781,6 @@ PI3.GPIOParameters=GPIO_Label
PI3.GPIO_Label=ARDUINO D7
PI3.Locked=true
PI3.Signal=GPIO_Output
-PI4.GPIOParameters=GPIO_Label
-PI4.GPIO_Label=SAI2_MCLKA [WM8994ECS/R_MCLK1]
-PI4.Locked=true
-PI4.Signal=SAI2_MCLK_A
-PI5.GPIOParameters=GPIO_Label
-PI5.GPIO_Label=SAI2_SCKA [WM8994ECS/R_BCLK1]
-PI5.Locked=true
-PI5.Signal=SAI2_SCK_A
-PI6.GPIOParameters=GPIO_Label
-PI6.GPIO_Label=SAI2_SDA [WM8994ECS/R_DACDAT1]
-PI6.Locked=true
-PI6.Signal=SAI2_SD_A
-PI7.GPIOParameters=GPIO_Label
-PI7.GPIO_Label=SAI2_FSA [WM8994ECS/R_LRCLK1]
-PI7.Locked=true
-PI7.Signal=SAI2_FS_A
-PI8.GPIOParameters=GPIO_Label
-PI8.GPIO_Label=NC1 [TP2]
-PI8.Locked=true
-PI8.Signal=RTC_TS
PI9.GPIOParameters=GPIO_Label
PI9.GPIO_Label=LCD_VSYNC [RK043FN48H-CT672B_VSYNC]
PI9.Locked=true
@@ -1059,8 +913,8 @@ ProjectManager.BackupPrevious=false
ProjectManager.CompilerOptimize=6
ProjectManager.ComputerToolchain=false
ProjectManager.CoupleFile=true
-ProjectManager.CustomerFirmwarePackage=
-ProjectManager.DefaultFWLocation=true
+ProjectManager.CustomerFirmwarePackage=../../../STM32Cube/Repository/STM32Cube_FW_F7_V1.16.0
+ProjectManager.DefaultFWLocation=false
ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32F746NGHx
ProjectManager.FirmwarePackage=STM32Cube FW_F7 V1.17.0
@@ -1081,7 +935,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=STM32CubeIDE
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_CRC_Init-CRC-false-HAL-true,4-MX_DMA2D_Init-DMA2D-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_I2C1_Init-I2C1-false-HAL-true,7-MX_LTDC_Init-LTDC-false-HAL-true,8-MX_QUADSPI_Init-QUADSPI-false-HAL-true,9-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_FATFS_Init-FATFS-false-HAL-false,12-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
+ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_CRC_Init-CRC-false-HAL-true,4-MX_DMA2D_Init-DMA2D-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_I2C1_Init-I2C1-false-HAL-true,7-MX_LTDC_Init-LTDC-false-HAL-true,8-MX_QUADSPI_Init-QUADSPI-false-HAL-true,9-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_FATFS_Init-FATFS-false-HAL-false,12-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,13-MX_ETH_Init-ETH-false-HAL-true,14-MX_I2C2_Init-I2C2-false-HAL-true,15-MX_I2C3_Init-I2C3-false-HAL-true,16-MX_USART3_UART_Init-USART3-false-HAL-true,17-MX_USART6_UART_Init-USART6-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
QUADSPI.ChipSelectHighTime=QSPI_CS_HIGH_TIME_5_CYCLE
QUADSPI.ClockPrescaler=1
QUADSPI.FifoThreshold=4
@@ -1244,6 +1098,10 @@ SH.S_TIM3_CH1.0=TIM3_CH1
SH.S_TIM3_CH1.ConfNb=1
SH.S_TIM5_CH4.0=TIM5_CH4
SH.S_TIM5_CH4.ConfNb=1
+USART3.IPParameters=VirtualMode-Asynchronous
+USART3.VirtualMode-Asynchronous=VM_ASYNC
+USART6.IPParameters=VirtualMode-Asynchronous
+USART6.VirtualMode-Asynchronous=VM_ASYNC
USB_DEVICE.CLASS_NAME_FS=CDC
USB_DEVICE.IPParameters=VirtualMode-CDC_FS,VirtualModeFS,CLASS_NAME_FS
USB_DEVICE.VirtualMode-CDC_FS=Cdc
@@ -1266,4 +1124,3 @@ VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS
VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS
board=STM32F746G-DISCO
boardIOC=true
-isbadioc=false