Initial commit

This commit is contained in:
Rémi Heredero 2024-03-04 12:49:28 +01:00
commit a55b4f6d88
23 changed files with 8461 additions and 0 deletions

79
.gitignore vendored Normal file
View File

@ -0,0 +1,79 @@
# A .gitignore for Keil projects.
# Taken mostly from http://www.keil.com/support/man/docs/uv4/uv4_b_filetypes.htm
# User-specific uVision files
*.opt
*.uvopt
*.uvoptx
*.uvgui
*.uvgui.*
*.uvguix.*
# Listing files
*.cod
*.htm
*.i
*.lst
*.map
*.m51
*.m66
# define exception below if needed
*.scr
# Object and HEX files
*.axf
*.b[0-3][0-9]
*.hex
*.d
*.crf
*.elf
*.hex
*.h86
*.lib
*.obj
*.o
*.sbr
# Build files
# define exception below if needed
*.bat
*._ia
*.__i
*._ii
# Generated output files
/Listings/*
/Objects/*
# Debugger files
# define exception below if needed
*.ini
# Other files
*.build_log.htm
*.cdb
*.dep
*.ic
*.lin
*.lnp
*.orc
# define exception below if needed
*.pack
# define exception below if needed
*.pdsc
*.plg
# define exception below if needed
*.sct
*.sfd
*.sfr
# Miscellaneous
*.tra
*.bin
*.fed
*.l1p
*.l2p
*.iex
# To explicitly override the above, define any exceptions here; e.g.:
# !my_customized_scatter_file.sct

View File

@ -0,0 +1,148 @@
// <<< Use Configuration Wizard in Context Menu >>>
// <h> Debug MCU Configuration
// <o0.0> DBG_SLEEP
// <i> Debug Sleep Mode
// <i> 0: (FCLK=On, HCLK=Off) FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled
// <i> 1: (FCLK=On, HCLK=On) HCLK is fed by the same clock that is provided to FCLK
// <o0.1> DBG_STOP
// <i> Debug Stop Mode
// <i> 0: (FCLK=Off, HCLK=Off) Clock controller disables all clocks
// <i> 1: (FCLK=On, HCLK=On) FCLK and HCLK are provided by the internal RC oscillator which remains active
// <o0.2> DBG_STANDBY
// <i> Debug Standby Mode
// <i> 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered.
// <i> 1: (FCLK=On, HCLK=On) Digital part is powered and FCLK and HCLK are provided by the internal RC oscillator which remains active
// </h>
DbgMCU_CR = 0x00000007;
// <h> Debug MCU APB1 Configuration
// <o0.0> DBG_TIM2_STOP
// <i> TIM2 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.1> DBG_TIM3_STOP
// <i> TIM3 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.2> DBG_TIM4_STOP
// <i> TIM4 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.3> DBG_TIM5_STOP
// <i> TIM5 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.4> DBG_TIM6_STOP
// <i> TIM6 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.5> DBG_TIM7_STOP
// <i> TIM7 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.6> DBG_TIM12_STOP
// <i> TIM12 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.7> DBG_TIM13_STOP
// <i> TIM13 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.8> DBG_TIM14_STOP
// <i> TIM14 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.9> DBG_LPTIM1_STOP
// <i> LPTMI1 counter stopped when core is halted
// <i> 0: The clock of LPTIM1 counter is fed even if the core is halted
// <i> 1: The clock of LPTIM1 counter is stopped when the core is halted
// <o0.10> DBG_RTC_STOP
// <i> RTC stopped when Core is halted
// <i> 0: The RTC counter clock continues even if the core is halted
// <i> 1: The RTC counter clock is stopped when the core is halted
// <o0.11> DBG_WWDG_STOP
// <i> Debug Window Watchdog stopped when Core is halted
// <i> 0: The window watchdog counter clock continues even if the core is halted
// <i> 1: The window watchdog counter clock is stopped when the core is halted
// <o0.12> DBG_IWDG_STOP
// <i> Debug independent watchdog stopped when core is halted
// <i> 0: The independent watchdog counter clock continues even if the core is halted
// <i> 1: The independent watchdog counter clock is stopped when the core is halted
// <o0.21> DBG_I2C1_SMBUS_TIMEOUT
// <i> I2C1 SMBUS timeout mode stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: The SMBUS timeout is frozen
// <o0.22> DBG_I2C2_SMBUS_TIMEOUT
// <i> I2C2 SMBUS timeout mode stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: The SMBUS timeout is frozen
// <o0.23> DBG_I2C3_SMBUS_TIMEOUT
// <i> I2C3 SMBUS timeout mode stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: The SMBUS timeout is frozen
// <o0.24> DBG_I2C4_SMBUS_TIMEOUT
// <i> I2C4 SMBUS timeout mode stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: The SMBUS timeout is frozen
// <o0.25> DBG_CAN1_STOP
// <i> Debug CAN1 stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: The CAN1 receive registers are frozen
// <o0.26> DBG_CAN2_STOP
// <i> Debug CAN2 stopped when Core is halted
// <i> 0: Same behavior as in normal mode
// <i> 1: The CAN2 receive registers are frozen
// </h>
DbgMCU_APB1_Fz = 0x00000000;
// <h> Debug MCU APB2 Configuration
// <o0.0> DBG_TIM1_STOP
// <i> TIM1 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.1> DBG_TIM8_STOP
// <i> TIM8 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.16> DBG_TIM9_STOP
// <i> TIM9 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.17> DBG_TIM10_STOP
// <i> TIM10 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// <o0.18> DBG_TIM11_STOP
// <i> TIM11 counter stopped when core is halted
// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
// </h>
DbgMCU_APB2_Fz = 0x00000000;
// <h> TPIU Pin Routing (TRACECLK fixed on Pin PE2)
// <o0> TRACED0
// <i> ETM Trace Data 0
// <0=> Pin PC1
// <1=> Pin PE3
// <2=> Pin PG13
// <o1> TRACED1
// <i> ETM Trace Data 1
// <0=> Pin PC8
// <1=> Pin PE4
// <2=> Pin PG14
// <o2> TRACED2
// <i> ETM Trace Data 2
// <0=> Pin PD2
// <1=> Pin PE5
// <o3> TRACED3
// <i> ETM Trace Data 3
// <0=> Pin PC12
// <1=> Pin PE6
ETMTrace_D0 = 1;
ETMTrace_D1 = 1;
ETMTrace_D2 = 1;
ETMTrace_D3 = 1;
// </h>
// <<< end of configuration section >>>

View File

@ -0,0 +1,76 @@
// File: STM32F74x_75x.dbgconf
// Version: 1.0.0
// Note: refer to STM32F75xxx STM32F74xxx reference manual (RM0385)
// refer to STM32F75xxx STM32F74xxx datasheets
// <<< Use Configuration Wizard in Context Menu >>>
// <h> Debug MCU configuration register (DBGMCU_CR)
// <o.2> DBG_STANDBY <i> Debug standby mode
// <o.1> DBG_STOP <i> Debug stop mode
// <o.0> DBG_SLEEP <i> Debug sleep mode
// </h>
DbgMCU_CR = 0x00000007;
// <h> Debug MCU APB1 freeze register (DBGMCU_APB1_FZ)
// <i> Reserved bits must be kept at reset value
// <o.26> DBG_CAN2_STOP <i> Debug CAN2 stopped when core is halted
// <o.25> DBG_CAN1_STOP <i> Debug CAN1 stopped when core is halted
// <o.24> DBG_I2C4_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.23> DBG_I2C3_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.22> DBG_I2C2_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.21> DBG_I2C1_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.12> DBG_IWDG_STOP <i> Debug independent watchdog stopped when core is halted
// <o.11> DBG_WWDG_STOP <i> Debug window watchdog stopped when core is halted
// <o.10> DBG_RTC_STOP <i> RTC stopped when core is halted
// <o.9> DBG_LPTIM1_STOP <i> LPTMI1 counter stopped when core is halted
// <o.8> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
// <o.7> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
// <o.6> DBG_TIM12_STOP <i> TIM12 counter stopped when core is halted
// <o.5> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
// <o.4> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
// <o.3> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
// <o.2> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
// <o.1> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
// <o.0> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
// </h>
DbgMCU_APB1_Fz = 0x00000000;
// <h> Debug MCU APB2 freeze register (DBGMCU_APB2_FZ)
// <i> Reserved bits must be kept at reset value
// <o.18> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
// <o.17> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
// <o.16> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
// <o.1> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
// <o.0> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
// </h>
DbgMCU_APB2_Fz = 0x00000000;
// <h> TPIU Pin Routing (TRACECLK fixed on Pin PE2)
// <i> TRACECLK: Pin PE2
// <o1> TRACED0
// <i> ETM Trace Data 0
// <0x00040003=> Pin PE3
// <0x00020001=> Pin PC1
// <0x0006000D=> Pin PG13
// <o2> TRACED1
// <i> ETM Trace Data 1
// <0x00040004=> Pin PE4
// <0x00020008=> Pin PC8
// <0x0006000E=> Pin PG14
// <o3> TRACED2
// <i> ETM Trace Data 2
// <0x00040005=> Pin PE5
// <0x00030002=> Pin PD2
// <o4> TRACED3
// <i> ETM Trace Data 3
// <0x00040006=> Pin PE6
// <0x0002000C=> Pin PC12
// </h>
TraceClk_Pin = 0x00040002;
TraceD0_Pin = 0x00040003;
TraceD1_Pin = 0x00040004;
TraceD2_Pin = 0x00040005;
TraceD3_Pin = 0x00040006;
// <<< end of configuration section >>>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="EventRecorderStub" version="1.0.0"/>
<events>
</events>
</component_viewer>

View File

@ -0,0 +1,63 @@
/*
* Copyright (c) 2013-2017 ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* -----------------------------------------------------------------------------
*
* $Revision: V5.1.0
*
* Project: CMSIS-RTOS RTX
* Title: RTX Configuration
*
* -----------------------------------------------------------------------------
*/
#include "cmsis_compiler.h"
#include "rtx_os.h"
// OS Idle Thread
__WEAK __NO_RETURN void osRtxIdleThread (void *argument) {
(void)argument;
for (;;) {}
}
// OS Error Callback function
__WEAK uint32_t osRtxErrorNotify (uint32_t code, void *object_id) {
(void)object_id;
switch (code) {
case osRtxErrorStackUnderflow:
// Stack underflow detected for thread (thread_id=object_id)
break;
case osRtxErrorISRQueueOverflow:
// ISR Queue overflow detected when inserting object (object_id)
break;
case osRtxErrorTimerQueueOverflow:
// User Timer Callback Queue overflow detected for timer (timer_id=object_id)
break;
case osRtxErrorClibSpace:
// Standard C/C++ library libspace not available: increase OS_THREAD_LIBSPACE_NUM
break;
case osRtxErrorClibMutex:
// Standard C/C++ library mutex initialization failed
break;
default:
break;
}
for (;;) {}
//return 0U;
}

View File

@ -0,0 +1,379 @@
/*
* Copyright (c) 2013-2017 ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* -----------------------------------------------------------------------------
*
* $Revision: V5.1.0
*
* Project: CMSIS-RTOS RTX
* Title: RTX Configuration definitions
*
* -----------------------------------------------------------------------------
*/
#ifndef RTX_CONFIG_H_
#define RTX_CONFIG_H_
//-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
// <h>System Configuration
// =======================
// <o>Global Dynamic Memory size [bytes] <0-1073741824:8>
// <i> Defines the combined global dynamic memory size.
// <i> Default: 4096
#ifndef OS_DYNAMIC_MEM_SIZE
#define OS_DYNAMIC_MEM_SIZE 4096
#endif
// <o>Kernel Tick Frequency [Hz] <1-1000000>
// <i> Defines base time unit for delays and timeouts.
// <i> Default: 1000 (1ms tick)
#ifndef OS_TICK_FREQ
#define OS_TICK_FREQ 1000
#endif
// <e>Round-Robin Thread switching
// <i> Enables Round-Robin Thread switching.
#ifndef OS_ROBIN_ENABLE
#define OS_ROBIN_ENABLE 1
#endif
// <o>Round-Robin Timeout <1-1000>
// <i> Defines how many ticks a thread will execute before a thread switch.
// <i> Default: 5
#ifndef OS_ROBIN_TIMEOUT
#define OS_ROBIN_TIMEOUT 20
#endif
// </e>
// <h>Event Recording
// <q>Memory Management
// <i> Enables Memory Management events recording.
#ifndef OS_EVR_MEMORY
#define OS_EVR_MEMORY 1
#endif
// <q>Kernel
// <i> Enables Kernel events recording.
#ifndef OS_EVR_KERNEL
#define OS_EVR_KERNEL 1
#endif
// <q>Thread
// <i> Enables Thread events recording.
#ifndef OS_EVR_THREAD
#define OS_EVR_THREAD 1
#endif
// <q>Timer
// <i> Enables Timer events recording.
#ifndef OS_EVR_TIMER
#define OS_EVR_TIMER 1
#endif
// <q>Event Flags
// <i> Enables Event Flags events recording.
#ifndef OS_EVR_EVFLAGS
#define OS_EVR_EVFLAGS 1
#endif
// <q>Mutex
// <i> Enables Mutex events recording.
#ifndef OS_EVR_MUTEX
#define OS_EVR_MUTEX 1
#endif
// <q>Semaphore
// <i> Enables Semaphore events recording.
#ifndef OS_EVR_SEMAPHORE
#define OS_EVR_SEMAPHORE 1
#endif
// <q>Memory Pool
// <i> Enables Memory Pool events recording.
#ifndef OS_EVR_MEMPOOL
#define OS_EVR_MEMPOOL 1
#endif
// <q>Message Queue
// <i> Enables Message Queue events recording.
#ifndef OS_EVR_MSGQUEUE
#define OS_EVR_MSGQUEUE 1
#endif
// </h>
// <o>ISR FIFO Queue
// <4=> 4 entries <8=> 8 entries <12=> 12 entries <16=> 16 entries
// <24=> 24 entries <32=> 32 entries <48=> 48 entries <64=> 64 entries
// <96=> 96 entries <128=> 128 entries <196=> 196 entries <256=> 256 entries
// <i> RTOS Functions called from ISR store requests to this buffer.
// <i> Default: 16 entries
#ifndef OS_ISR_FIFO_QUEUE
#define OS_ISR_FIFO_QUEUE 16
#endif
// </h>
// <h>Thread Configuration
// =======================
// <e>Object specific Memory allocation
// <i> Enables object specific memory allocation.
#ifndef OS_THREAD_OBJ_MEM
#define OS_THREAD_OBJ_MEM 0
#endif
// <o>Number of user Threads <1-1000>
// <i> Defines maximum number of user threads that can be active at the same time.
// <i> Applies to user threads with system provided memory for control blocks.
#ifndef OS_THREAD_NUM
#define OS_THREAD_NUM 1
#endif
// <o>Number of user Threads with default Stack size <0-1000>
// <i> Defines maximum number of user threads with default stack size.
// <i> Applies to user threads with zero stack size specified.
#ifndef OS_THREAD_DEF_STACK_NUM
#define OS_THREAD_DEF_STACK_NUM 0
#endif
// <o>Total Stack size [bytes] for user Threads with user-provided Stack size <0-1073741824:8>
// <i> Defines the combined stack size for user threads with user-provided stack size.
// <i> Applies to user threads with user-provided stack size and system provided memory for stack.
// <i> Default: 0
#ifndef OS_THREAD_USER_STACK_SIZE
#define OS_THREAD_USER_STACK_SIZE 0
#endif
// </e>
// <o>Default Thread Stack size [bytes] <96-1073741824:8>
// <i> Defines stack size for threads with zero stack size specified.
// <i> Default: 200
#ifndef OS_STACK_SIZE
#define OS_STACK_SIZE 200
#endif
// <o>Idle Thread Stack size [bytes] <72-1073741824:8>
// <i> Defines stack size for Idle thread.
// <i> Default: 200
#ifndef OS_IDLE_THREAD_STACK_SIZE
#define OS_IDLE_THREAD_STACK_SIZE 200
#endif
// <q>Stack overrun checking
// <i> Enable stack overrun checks at thread switch.
// <i> Enabling this option increases slightly the execution time of a thread switch.
#ifndef OS_STACK_CHECK
#define OS_STACK_CHECK 1
#endif
// <q>Stack usage watermark
// <i> Initialize thread stack with watermark pattern for analyzing stack usage.
// <i> Enabling this option increases significantly the execution time of thread creation.
#ifndef OS_STACK_WATERMARK
#define OS_STACK_WATERMARK 1
#endif
// <o>Processor mode for Thread execution
// <0=> Unprivileged mode
// <1=> Privileged mode
// <i> Default: Privileged mode
#ifndef OS_PRIVILEGE_MODE
#define OS_PRIVILEGE_MODE 1
#endif
// </h>
// <h>Timer Configuration
// ======================
// <e>Object specific Memory allocation
// <i> Enables object specific memory allocation.
#ifndef OS_TIMER_OBJ_MEM
#define OS_TIMER_OBJ_MEM 0
#endif
// <o>Number of Timer objects <1-1000>
// <i> Defines maximum number of objects that can be active at the same time.
// <i> Applies to objects with system provided memory for control blocks.
#ifndef OS_TIMER_NUM
#define OS_TIMER_NUM 1
#endif
// </e>
// <o>Timer Thread Priority
// <8=> Low
// <16=> Below Normal <24=> Normal <32=> Above Normal
// <40=> High
// <48=> Realtime
// <i> Defines priority for timer thread
// <i> Default: High
#ifndef OS_TIMER_THREAD_PRIO
#define OS_TIMER_THREAD_PRIO 40
#endif
// <o>Timer Thread Stack size [bytes] <0-1073741824:8>
// <i> Defines stack size for Timer thread.
// <i> May be set to 0 when timers are not used.
// <i> Default: 200
#ifndef OS_TIMER_THREAD_STACK_SIZE
#define OS_TIMER_THREAD_STACK_SIZE 200
#endif
// <o>Timer Callback Queue entries <0-256>
// <i> Number of concurrent active timer callback functions.
// <i> May be set to 0 when timers are not used.
// <i> Default: 4
#ifndef OS_TIMER_CB_QUEUE
#define OS_TIMER_CB_QUEUE 4
#endif
// </h>
// <h>Event Flags Configuration
// ============================
// <e>Object specific Memory allocation
// <i> Enables object specific memory allocation.
#ifndef OS_EVFLAGS_OBJ_MEM
#define OS_EVFLAGS_OBJ_MEM 0
#endif
// <o>Number of Event Flags objects <1-1000>
// <i> Defines maximum number of objects that can be active at the same time.
// <i> Applies to objects with system provided memory for control blocks.
#ifndef OS_EVFLAGS_NUM
#define OS_EVFLAGS_NUM 1
#endif
// </e>
// </h>
// <h>Mutex Configuration
// ======================
// <e>Object specific Memory allocation
// <i> Enables object specific memory allocation.
#ifndef OS_MUTEX_OBJ_MEM
#define OS_MUTEX_OBJ_MEM 0
#endif
// <o>Number of Mutex objects <1-1000>
// <i> Defines maximum number of objects that can be active at the same time.
// <i> Applies to objects with system provided memory for control blocks.
#ifndef OS_MUTEX_NUM
#define OS_MUTEX_NUM 1
#endif
// </e>
// </h>
// <h>Semaphore Configuration
// ==========================
// <e>Object specific Memory allocation
// <i> Enables object specific memory allocation.
#ifndef OS_SEMAPHORE_OBJ_MEM
#define OS_SEMAPHORE_OBJ_MEM 0
#endif
// <o>Number of Semaphore objects <1-1000>
// <i> Defines maximum number of objects that can be active at the same time.
// <i> Applies to objects with system provided memory for control blocks.
#ifndef OS_SEMAPHORE_NUM
#define OS_SEMAPHORE_NUM 1
#endif
// </e>
// </h>
// <h>Memory Pool Configuration
// ============================
// <e>Object specific Memory allocation
// <i> Enables object specific memory allocation.
#ifndef OS_MEMPOOL_OBJ_MEM
#define OS_MEMPOOL_OBJ_MEM 0
#endif
// <o>Number of Memory Pool objects <1-1000>
// <i> Defines maximum number of objects that can be active at the same time.
// <i> Applies to objects with system provided memory for control blocks.
#ifndef OS_MEMPOOL_NUM
#define OS_MEMPOOL_NUM 1
#endif
// <o>Data Storage Memory size [bytes] <0-1073741824:8>
// <i> Defines the combined data storage memory size.
// <i> Applies to objects with system provided memory for data storage.
// <i> Default: 0
#ifndef OS_MEMPOOL_DATA_SIZE
#define OS_MEMPOOL_DATA_SIZE 0
#endif
// </e>
// </h>
// <h>Message Queue Configuration
// ==============================
// <e>Object specific Memory allocation
// <i> Enables object specific memory allocation.
#ifndef OS_MSGQUEUE_OBJ_MEM
#define OS_MSGQUEUE_OBJ_MEM 0
#endif
// <o>Number of Message Queue objects <1-1000>
// <i> Defines maximum number of objects that can be active at the same time.
// <i> Applies to objects with system provided memory for control blocks.
#ifndef OS_MSGQUEUE_NUM
#define OS_MSGQUEUE_NUM 1
#endif
// <o>Data Storage Memory size [bytes] <0-1073741824:8>
// <i> Defines the combined data storage memory size.
// <i> Applies to objects with system provided memory for data storage.
// <i> Default: 0
#ifndef OS_MSGQUEUE_DATA_SIZE
#define OS_MSGQUEUE_DATA_SIZE 0
#endif
// </e>
// </h>
// Number of Threads which use standard C/C++ library libspace
// (when thread specific memory allocation is not used).
#if (OS_THREAD_OBJ_MEM == 0)
#define OS_THREAD_LIBSPACE_NUM 4
#else
#define OS_THREAD_LIBSPACE_NUM OS_THREAD_NUM
#endif
//------------- <<< end of configuration section >>> ---------------------------
#endif // RTX_CONFIG_H_

View File

@ -0,0 +1,44 @@
/*------------------------------------------------------------------------------
* MDK - Component ::Event Recorder
* Copyright (c) 2016 ARM Germany GmbH. All rights reserved.
*------------------------------------------------------------------------------
* Name: EventRecorderConf.h
* Purpose: Event Recorder Configuration
* Rev.: V1.0.0
*----------------------------------------------------------------------------*/
//-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
// <h>Event Recorder
// <o>Number of Records
// <8=>8 <16=>16 <32=>32 <64=>64 <128=>128 <256=>256 <512=>512 <1024=>1024
// <2048=>2048 <4096=>4096 <8192=>8192 <16384=>16384 <32768=>32768
// <65536=>65536 <131072=>131072 <262144=>262144 <524288=>524288
// <1048576=>1048576
// <i>Configure size of Event Record Buffer (each record is 16 bytes)
// <i>Must be 2^n (min=8, max=1048576)
#define EVENT_RECORD_COUNT 1024U
// <o>Time Stamp Source
// <0=> DWT Cycle Counter <1=> SysTick
// <3=> User Timer (Normal Reset) <4=> User Timer (Power-On Reset)
// <i>Selects source for 32-bit time stamp
#define EVENT_TIMESTAMP_SOURCE 0
// <h>SysTick Configuration
// <i>Configure values when Time Stamp Source is set to SysTick
// <o>SysTick Input Clock Frequency [Hz] <1-1000000000>
// <i>Defines SysTick input clock (typical identical with processor clock)
#define SYSTICK_CLOCK 216000000U
// <o>SysTick Interrupt Period [us] <1-1000000000>
// <i>Defines time period of the SysTick timer interrupt
#define SYSTICK_PERIOD_US 1000U
// </h>
// </h>
//------------- <<< end of configuration section >>> ---------------------------

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,485 @@
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
;* File Name : startup_stm32f746xx.s
;* Author : MCD Application Team
;* Version : V1.2.0
;* Date : 30-December-2016
;* Description : STM32F746xx devices vector table for MDK-ARM toolchain.
;* This module performs:
;* - Set the initial SP
;* - Set the initial PC == Reset_Handler
;* - Set the vector table entries with the exceptions ISR address
;* - Branches to __main in the C library (which eventually
;* calls main()).
;* After Reset the CortexM7 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>
;*******************************************************************************
;
;* Redistribution and use in source and binary forms, with or without modification,
;* are permitted provided that the following conditions are met:
;* 1. Redistributions of source code must retain the above copyright notice,
;* this list of conditions and the following disclaimer.
;* 2. Redistributions in binary form must reproduce the above copyright notice,
;* this list of conditions and the following disclaimer in the documentation
;* and/or other materials provided with the distribution.
;* 3. Neither the name of STMicroelectronics nor the names of its contributors
;* may be used to endorse or promote products derived from this software
;* without specific prior written permission.
;*
;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;
;*******************************************************************************
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Stack_Size EQU 0x00000800
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x00000800
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
PRESERVE8
THUMB
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
EXPORT __Vectors
EXPORT __Vectors_End
EXPORT __Vectors_Size
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
; External Interrupts
DCD WWDG_IRQHandler ; Window WatchDog
DCD PVD_IRQHandler ; PVD through EXTI Line detection
DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line
DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line
DCD FLASH_IRQHandler ; FLASH
DCD RCC_IRQHandler ; RCC
DCD EXTI0_IRQHandler ; EXTI Line0
DCD EXTI1_IRQHandler ; EXTI Line1
DCD EXTI2_IRQHandler ; EXTI Line2
DCD EXTI3_IRQHandler ; EXTI Line3
DCD EXTI4_IRQHandler ; EXTI Line4
DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0
DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1
DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2
DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3
DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4
DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5
DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6
DCD ADC_IRQHandler ; ADC1, ADC2 and ADC3s
DCD CAN1_TX_IRQHandler ; CAN1 TX
DCD CAN1_RX0_IRQHandler ; CAN1 RX0
DCD CAN1_RX1_IRQHandler ; CAN1 RX1
DCD CAN1_SCE_IRQHandler ; CAN1 SCE
DCD EXTI9_5_IRQHandler ; External Line[9:5]s
DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9
DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10
DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
DCD TIM2_IRQHandler ; TIM2
DCD TIM3_IRQHandler ; TIM3
DCD TIM4_IRQHandler ; TIM4
DCD I2C1_EV_IRQHandler ; I2C1 Event
DCD I2C1_ER_IRQHandler ; I2C1 Error
DCD I2C2_EV_IRQHandler ; I2C2 Event
DCD I2C2_ER_IRQHandler ; I2C2 Error
DCD SPI1_IRQHandler ; SPI1
DCD SPI2_IRQHandler ; SPI2
DCD USART1_IRQHandler ; USART1
DCD USART2_IRQHandler ; USART2
DCD USART3_IRQHandler ; USART3
DCD EXTI15_10_IRQHandler ; External Line[15:10]s
DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line
DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line
DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7
DCD FMC_IRQHandler ; FMC
DCD SDMMC1_IRQHandler ; SDMMC1
DCD TIM5_IRQHandler ; TIM5
DCD SPI3_IRQHandler ; SPI3
DCD UART4_IRQHandler ; UART4
DCD UART5_IRQHandler ; UART5
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors
DCD TIM7_IRQHandler ; TIM7
DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0
DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1
DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2
DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3
DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4
DCD ETH_IRQHandler ; Ethernet
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line
DCD CAN2_TX_IRQHandler ; CAN2 TX
DCD CAN2_RX0_IRQHandler ; CAN2 RX0
DCD CAN2_RX1_IRQHandler ; CAN2 RX1
DCD CAN2_SCE_IRQHandler ; CAN2 SCE
DCD OTG_FS_IRQHandler ; USB OTG FS
DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5
DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6
DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7
DCD USART6_IRQHandler ; USART6
DCD I2C3_EV_IRQHandler ; I2C3 event
DCD I2C3_ER_IRQHandler ; I2C3 error
DCD OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI
DCD OTG_HS_IRQHandler ; USB OTG HS
DCD DCMI_IRQHandler ; DCMI
DCD 0 ; Reserved
DCD RNG_IRQHandler ; Rng
DCD FPU_IRQHandler ; FPU
DCD UART7_IRQHandler ; UART7
DCD UART8_IRQHandler ; UART8
DCD SPI4_IRQHandler ; SPI4
DCD SPI5_IRQHandler ; SPI5
DCD SPI6_IRQHandler ; SPI6
DCD SAI1_IRQHandler ; SAI1
DCD LTDC_IRQHandler ; LTDC
DCD LTDC_ER_IRQHandler ; LTDC error
DCD DMA2D_IRQHandler ; DMA2D
DCD SAI2_IRQHandler ; SAI2
DCD QUADSPI_IRQHandler ; QUADSPI
DCD LPTIM1_IRQHandler ; LPTIM1
DCD CEC_IRQHandler ; HDMI_CEC
DCD I2C4_EV_IRQHandler ; I2C4 Event
DCD I2C4_ER_IRQHandler ; I2C4 Error
DCD SPDIF_RX_IRQHandler ; SPDIF_RX
__Vectors_End
__Vectors_Size EQU __Vectors_End - __Vectors
AREA |.text|, CODE, READONLY
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
; Dummy Exception Handlers (infinite loops which can be modified)
NMI_Handler PROC
EXPORT NMI_Handler [WEAK]
B .
ENDP
HardFault_Handler\
PROC
EXPORT HardFault_Handler [WEAK]
B .
ENDP
MemManage_Handler\
PROC
EXPORT MemManage_Handler [WEAK]
B .
ENDP
BusFault_Handler\
PROC
EXPORT BusFault_Handler [WEAK]
B .
ENDP
UsageFault_Handler\
PROC
EXPORT UsageFault_Handler [WEAK]
B .
ENDP
SVC_Handler PROC
EXPORT SVC_Handler [WEAK]
B .
ENDP
DebugMon_Handler\
PROC
EXPORT DebugMon_Handler [WEAK]
B .
ENDP
PendSV_Handler PROC
EXPORT PendSV_Handler [WEAK]
B .
ENDP
SysTick_Handler PROC
EXPORT SysTick_Handler [WEAK]
B .
ENDP
Default_Handler PROC
EXPORT WWDG_IRQHandler [WEAK]
EXPORT PVD_IRQHandler [WEAK]
EXPORT TAMP_STAMP_IRQHandler [WEAK]
EXPORT RTC_WKUP_IRQHandler [WEAK]
EXPORT FLASH_IRQHandler [WEAK]
EXPORT RCC_IRQHandler [WEAK]
EXPORT EXTI0_IRQHandler [WEAK]
EXPORT EXTI1_IRQHandler [WEAK]
EXPORT EXTI2_IRQHandler [WEAK]
EXPORT EXTI3_IRQHandler [WEAK]
EXPORT EXTI4_IRQHandler [WEAK]
EXPORT DMA1_Stream0_IRQHandler [WEAK]
EXPORT DMA1_Stream1_IRQHandler [WEAK]
EXPORT DMA1_Stream2_IRQHandler [WEAK]
EXPORT DMA1_Stream3_IRQHandler [WEAK]
EXPORT DMA1_Stream4_IRQHandler [WEAK]
EXPORT DMA1_Stream5_IRQHandler [WEAK]
EXPORT DMA1_Stream6_IRQHandler [WEAK]
EXPORT ADC_IRQHandler [WEAK]
EXPORT CAN1_TX_IRQHandler [WEAK]
EXPORT CAN1_RX0_IRQHandler [WEAK]
EXPORT CAN1_RX1_IRQHandler [WEAK]
EXPORT CAN1_SCE_IRQHandler [WEAK]
EXPORT EXTI9_5_IRQHandler [WEAK]
EXPORT TIM1_BRK_TIM9_IRQHandler [WEAK]
EXPORT TIM1_UP_TIM10_IRQHandler [WEAK]
EXPORT TIM1_TRG_COM_TIM11_IRQHandler [WEAK]
EXPORT TIM1_CC_IRQHandler [WEAK]
EXPORT TIM2_IRQHandler [WEAK]
EXPORT TIM3_IRQHandler [WEAK]
EXPORT TIM4_IRQHandler [WEAK]
EXPORT I2C1_EV_IRQHandler [WEAK]
EXPORT I2C1_ER_IRQHandler [WEAK]
EXPORT I2C2_EV_IRQHandler [WEAK]
EXPORT I2C2_ER_IRQHandler [WEAK]
EXPORT SPI1_IRQHandler [WEAK]
EXPORT SPI2_IRQHandler [WEAK]
EXPORT USART1_IRQHandler [WEAK]
EXPORT USART2_IRQHandler [WEAK]
EXPORT USART3_IRQHandler [WEAK]
EXPORT EXTI15_10_IRQHandler [WEAK]
EXPORT RTC_Alarm_IRQHandler [WEAK]
EXPORT OTG_FS_WKUP_IRQHandler [WEAK]
EXPORT TIM8_BRK_TIM12_IRQHandler [WEAK]
EXPORT TIM8_UP_TIM13_IRQHandler [WEAK]
EXPORT TIM8_TRG_COM_TIM14_IRQHandler [WEAK]
EXPORT TIM8_CC_IRQHandler [WEAK]
EXPORT DMA1_Stream7_IRQHandler [WEAK]
EXPORT FMC_IRQHandler [WEAK]
EXPORT SDMMC1_IRQHandler [WEAK]
EXPORT TIM5_IRQHandler [WEAK]
EXPORT SPI3_IRQHandler [WEAK]
EXPORT UART4_IRQHandler [WEAK]
EXPORT UART5_IRQHandler [WEAK]
EXPORT TIM6_DAC_IRQHandler [WEAK]
EXPORT TIM7_IRQHandler [WEAK]
EXPORT DMA2_Stream0_IRQHandler [WEAK]
EXPORT DMA2_Stream1_IRQHandler [WEAK]
EXPORT DMA2_Stream2_IRQHandler [WEAK]
EXPORT DMA2_Stream3_IRQHandler [WEAK]
EXPORT DMA2_Stream4_IRQHandler [WEAK]
EXPORT ETH_IRQHandler [WEAK]
EXPORT ETH_WKUP_IRQHandler [WEAK]
EXPORT CAN2_TX_IRQHandler [WEAK]
EXPORT CAN2_RX0_IRQHandler [WEAK]
EXPORT CAN2_RX1_IRQHandler [WEAK]
EXPORT CAN2_SCE_IRQHandler [WEAK]
EXPORT OTG_FS_IRQHandler [WEAK]
EXPORT DMA2_Stream5_IRQHandler [WEAK]
EXPORT DMA2_Stream6_IRQHandler [WEAK]
EXPORT DMA2_Stream7_IRQHandler [WEAK]
EXPORT USART6_IRQHandler [WEAK]
EXPORT I2C3_EV_IRQHandler [WEAK]
EXPORT I2C3_ER_IRQHandler [WEAK]
EXPORT OTG_HS_EP1_OUT_IRQHandler [WEAK]
EXPORT OTG_HS_EP1_IN_IRQHandler [WEAK]
EXPORT OTG_HS_WKUP_IRQHandler [WEAK]
EXPORT OTG_HS_IRQHandler [WEAK]
EXPORT DCMI_IRQHandler [WEAK]
EXPORT RNG_IRQHandler [WEAK]
EXPORT FPU_IRQHandler [WEAK]
EXPORT UART7_IRQHandler [WEAK]
EXPORT UART8_IRQHandler [WEAK]
EXPORT SPI4_IRQHandler [WEAK]
EXPORT SPI5_IRQHandler [WEAK]
EXPORT SPI6_IRQHandler [WEAK]
EXPORT SAI1_IRQHandler [WEAK]
EXPORT LTDC_IRQHandler [WEAK]
EXPORT LTDC_ER_IRQHandler [WEAK]
EXPORT DMA2D_IRQHandler [WEAK]
EXPORT SAI2_IRQHandler [WEAK]
EXPORT QUADSPI_IRQHandler [WEAK]
EXPORT LPTIM1_IRQHandler [WEAK]
EXPORT CEC_IRQHandler [WEAK]
EXPORT I2C4_EV_IRQHandler [WEAK]
EXPORT I2C4_ER_IRQHandler [WEAK]
EXPORT SPDIF_RX_IRQHandler [WEAK]
WWDG_IRQHandler
PVD_IRQHandler
TAMP_STAMP_IRQHandler
RTC_WKUP_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Stream0_IRQHandler
DMA1_Stream1_IRQHandler
DMA1_Stream2_IRQHandler
DMA1_Stream3_IRQHandler
DMA1_Stream4_IRQHandler
DMA1_Stream5_IRQHandler
DMA1_Stream6_IRQHandler
ADC_IRQHandler
CAN1_TX_IRQHandler
CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_TIM9_IRQHandler
TIM1_UP_TIM10_IRQHandler
TIM1_TRG_COM_TIM11_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTC_Alarm_IRQHandler
OTG_FS_WKUP_IRQHandler
TIM8_BRK_TIM12_IRQHandler
TIM8_UP_TIM13_IRQHandler
TIM8_TRG_COM_TIM14_IRQHandler
TIM8_CC_IRQHandler
DMA1_Stream7_IRQHandler
FMC_IRQHandler
SDMMC1_IRQHandler
TIM5_IRQHandler
SPI3_IRQHandler
UART4_IRQHandler
UART5_IRQHandler
TIM6_DAC_IRQHandler
TIM7_IRQHandler
DMA2_Stream0_IRQHandler
DMA2_Stream1_IRQHandler
DMA2_Stream2_IRQHandler
DMA2_Stream3_IRQHandler
DMA2_Stream4_IRQHandler
ETH_IRQHandler
ETH_WKUP_IRQHandler
CAN2_TX_IRQHandler
CAN2_RX0_IRQHandler
CAN2_RX1_IRQHandler
CAN2_SCE_IRQHandler
OTG_FS_IRQHandler
DMA2_Stream5_IRQHandler
DMA2_Stream6_IRQHandler
DMA2_Stream7_IRQHandler
USART6_IRQHandler
I2C3_EV_IRQHandler
I2C3_ER_IRQHandler
OTG_HS_EP1_OUT_IRQHandler
OTG_HS_EP1_IN_IRQHandler
OTG_HS_WKUP_IRQHandler
OTG_HS_IRQHandler
DCMI_IRQHandler
RNG_IRQHandler
FPU_IRQHandler
UART7_IRQHandler
UART8_IRQHandler
SPI4_IRQHandler
SPI5_IRQHandler
SPI6_IRQHandler
SAI1_IRQHandler
LTDC_IRQHandler
LTDC_ER_IRQHandler
DMA2D_IRQHandler
SAI2_IRQHandler
QUADSPI_IRQHandler
LPTIM1_IRQHandler
CEC_IRQHandler
I2C4_EV_IRQHandler
I2C4_ER_IRQHandler
SPDIF_RX_IRQHandler
B .
ENDP
ALIGN
;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
IF :DEF:__MICROLIB
EXPORT __initial_sp
EXPORT __heap_base
EXPORT __heap_limit
ELSE
IMPORT __use_two_region_memory
EXPORT __user_initial_stackheap
__user_initial_stackheap
LDR R0, = Heap_Mem
LDR R1, =(Stack_Mem + Stack_Size)
LDR R2, = (Heap_Mem + Heap_Size)
LDR R3, = Stack_Mem
BX LR
ALIGN
ENDIF
END
;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****

View File

@ -0,0 +1,560 @@
/**
******************************************************************************
* @file stm32f7xx_hal_conf.h
* @author MCD Application Team
* @version V1.2.0 modified by ARM
* @date 23-September-2016
* @brief HAL configuration file.
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F7xx_HAL_CONF_H
#define __STM32F7xx_HAL_CONF_H
#ifdef _RTE_
#include "RTE_Components.h" // Component selection
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* ########################## Module Selection ############################## */
/**
* @brief This is the list of modules to be used in the HAL driver
*/
#ifdef RTE_DEVICE_HAL_COMMON
#define HAL_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_ADC
#define HAL_ADC_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_CAN
#define HAL_CAN_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_CEC
#define HAL_CEC_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_CRC
#define HAL_CRC_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_CRYP
#define HAL_CRYP_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_DAC
#define HAL_DAC_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_DCMI
#define HAL_DCMI_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_DMA
#define HAL_DMA_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_DMA2D
#define HAL_DMA2D_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_ETH
#define HAL_ETH_MODULE_ENABLED
#endif
#if defined (RTE_DEVICE_HAL_FLASH) || defined (RTE_DEVICE_HAL_COMMON)
#define HAL_FLASH_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_NAND
#define HAL_NAND_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_NOR
#define HAL_NOR_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_SRAM
#define HAL_SRAM_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_SDRAM
#define HAL_SDRAM_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_HASH
#define HAL_HASH_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_GPIO
#define HAL_GPIO_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_I2C
#define HAL_I2C_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_I2S
#define HAL_I2S_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_IWDG
#define HAL_IWDG_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_LPTIM
#define HAL_LPTIM_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_LTDC
#define HAL_LTDC_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_PWR
#define HAL_PWR_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_QSPI
#define HAL_QSPI_MODULE_ENABLED
#endif
#if defined RTE_DEVICE_HAL_RCC
#define HAL_RCC_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_RNG
#define HAL_RNG_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_RTC
#define HAL_RTC_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_SAI
#define HAL_SAI_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_SD
#define HAL_SD_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_SPDIFRX
#define HAL_SPDIFRX_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_SPI
#define HAL_SPI_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_TIM
#define HAL_TIM_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_UART
#define HAL_UART_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_USART
#define HAL_USART_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_IRDA
#define HAL_IRDA_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_SMARTCARD
#define HAL_SMARTCARD_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_WWDG
#define HAL_WWDG_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_CORTEX
#define HAL_CORTEX_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_PCD
#define HAL_PCD_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_HCD
#define HAL_HCD_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_DFSDM
#define HAL_DFSDM_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_DSI
#define HAL_DSI_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_JPEG
#define HAL_JPEG_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_MDIOS
#define HAL_MDIOS_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_SMBUS
#define HAL_SMBUS_MODULE_ENABLED
#endif
#ifdef RTE_DEVICE_HAL_MMC
#define HAL_MMC_MODULE_ENABLED
#endif
/* ########################## HSE/HSI Values adaptation ##################### */
/**
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
* This value is used by the RCC HAL module to compute the system frequency
* (when HSE is used as system clock source, directly or through the PLL).
*/
#if !defined (HSE_VALUE)
#define HSE_VALUE 25000000U /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
#if !defined (HSE_STARTUP_TIMEOUT)
#define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
#endif /* HSE_STARTUP_TIMEOUT */
/**
* @brief Internal High Speed oscillator (HSI) value.
* This value is used by the RCC HAL module to compute the system frequency
* (when HSI is used as system clock source, directly or through the PLL).
*/
#if !defined (HSI_VALUE)
#define HSI_VALUE 16000000U /*!< Value of the Internal oscillator in Hz*/
#endif /* HSI_VALUE */
/**
* @brief Internal Low Speed oscillator (LSI) value.
*/
#if !defined (LSI_VALUE)
#define LSI_VALUE 32000U /*!< LSI Typical Value in Hz*/
#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
The real value may vary depending on the variations
in voltage and temperature. */
/**
* @brief External Low Speed oscillator (LSE) value.
*/
#if !defined (LSE_VALUE)
#define LSE_VALUE 32768U /*!< Value of the External Low Speed oscillator in Hz */
#endif /* LSE_VALUE */
#if !defined (LSE_STARTUP_TIMEOUT)
#define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */
#endif /* LSE_STARTUP_TIMEOUT */
/**
* @brief External clock source for I2S peripheral
* This value is used by the I2S HAL module to compute the I2S clock source
* frequency, this source is inserted directly through I2S_CKIN pad.
*/
#if !defined (EXTERNAL_CLOCK_VALUE)
#define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the Internal oscillator in Hz*/
#endif /* EXTERNAL_CLOCK_VALUE */
/* Tip: To avoid modifying this file each time you need to use different HSE,
=== you can define the HSE value in your toolchain compiler preprocessor. */
/* ########################### System Configuration ######################### */
/**
* @brief This is the HAL system configuration section
*/
#define VDD_VALUE 3300U /*!< Value of VDD in mv */
#define TICK_INT_PRIORITY 0x0FU /*!< tick interrupt priority */
#define USE_RTOS 0U
#define PREFETCH_ENABLE 1U
#define ART_ACCLERATOR_ENABLE 1U /* To enable instruction cache and prefetch */
/* ########################## Assert Selection ############################## */
/**
* @brief Uncomment the line below to expanse the "assert_param" macro in the
* HAL drivers code
*/
/* #define USE_FULL_ASSERT 1 */
/* ################## Ethernet peripheral configuration ##################### */
/* Section 1 : Ethernet peripheral configuration */
/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
#define MAC_ADDR0 2U
#define MAC_ADDR1 0U
#define MAC_ADDR2 0U
#define MAC_ADDR3 0U
#define MAC_ADDR4 0U
#define MAC_ADDR5 0U
/* Definition of the Ethernet driver buffers size and count */
#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
#define ETH_RXBUFNB 4U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
/* Section 2: PHY configuration section */
/* DP83848 PHY Address*/
#define DP83848_PHY_ADDRESS 0x01U
/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
#define PHY_RESET_DELAY 0x000000FFU
/* PHY Configuration delay */
#define PHY_CONFIG_DELAY 0x00000FFFU
#define PHY_READ_TO 0x0000FFFFU
#define PHY_WRITE_TO 0x0000FFFFU
/* Section 3: Common PHY Registers */
#define PHY_BCR ((uint16_t)0x00U) /*!< Transceiver Basic Control Register */
#define PHY_BSR ((uint16_t)0x01U) /*!< Transceiver Basic Status Register */
#define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */
#define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */
#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */
#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */
#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */
#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */
#define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */
#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */
#define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */
#define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */
#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */
#define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */
#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */
/* Section 4: Extended PHY Registers */
#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */
#define PHY_MICR ((uint16_t)0x11U) /*!< MII Interrupt Control Register */
#define PHY_MISR ((uint16_t)0x12U) /*!< MII Interrupt Status and Misc. Control Register */
#define PHY_LINK_STATUS ((uint16_t)0x0001U) /*!< PHY Link mask */
#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */
#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */
#define PHY_MICR_INT_EN ((uint16_t)0x0002U) /*!< PHY Enable interrupts */
#define PHY_MICR_INT_OE ((uint16_t)0x0001U) /*!< PHY Enable output interrupt events */
#define PHY_MISR_LINK_INT_EN ((uint16_t)0x0020U) /*!< Enable Interrupt on change of link status */
#define PHY_LINK_INTERRUPT ((uint16_t)0x2000U) /*!< PHY link status interrupt mask */
/* ################## SPI peripheral configuration ########################## */
/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
* Activated: CRC code is present inside driver
* Deactivated: CRC code cleaned from driver
*/
#define USE_SPI_CRC 1U
/* Includes ------------------------------------------------------------------*/
/**
* @brief Include module's header file
*/
#ifdef HAL_RCC_MODULE_ENABLED
#include "stm32f7xx_hal_rcc.h"
#endif /* HAL_RCC_MODULE_ENABLED */
#ifdef HAL_GPIO_MODULE_ENABLED
#include "stm32f7xx_hal_gpio.h"
#endif /* HAL_GPIO_MODULE_ENABLED */
#ifdef HAL_DMA_MODULE_ENABLED
#include "stm32f7xx_hal_dma.h"
#endif /* HAL_DMA_MODULE_ENABLED */
#ifdef HAL_CORTEX_MODULE_ENABLED
#include "stm32f7xx_hal_cortex.h"
#endif /* HAL_CORTEX_MODULE_ENABLED */
#ifdef HAL_ADC_MODULE_ENABLED
#include "stm32f7xx_hal_adc.h"
#endif /* HAL_ADC_MODULE_ENABLED */
#ifdef HAL_CAN_MODULE_ENABLED
#include "stm32f7xx_hal_can.h"
#endif /* HAL_CAN_MODULE_ENABLED */
#ifdef HAL_CEC_MODULE_ENABLED
#include "stm32f7xx_hal_cec.h"
#endif /* HAL_CEC_MODULE_ENABLED */
#ifdef HAL_CRC_MODULE_ENABLED
#include "stm32f7xx_hal_crc.h"
#endif /* HAL_CRC_MODULE_ENABLED */
#ifdef HAL_CRYP_MODULE_ENABLED
#include "stm32f7xx_hal_cryp.h"
#endif /* HAL_CRYP_MODULE_ENABLED */
#ifdef HAL_DMA2D_MODULE_ENABLED
#include "stm32f7xx_hal_dma2d.h"
#endif /* HAL_DMA2D_MODULE_ENABLED */
#ifdef HAL_DAC_MODULE_ENABLED
#include "stm32f7xx_hal_dac.h"
#endif /* HAL_DAC_MODULE_ENABLED */
#ifdef HAL_DCMI_MODULE_ENABLED
#include "stm32f7xx_hal_dcmi.h"
#endif /* HAL_DCMI_MODULE_ENABLED */
#ifdef HAL_ETH_MODULE_ENABLED
#include "stm32f7xx_hal_eth.h"
#endif /* HAL_ETH_MODULE_ENABLED */
#ifdef HAL_FLASH_MODULE_ENABLED
#include "stm32f7xx_hal_flash.h"
#endif /* HAL_FLASH_MODULE_ENABLED */
#ifdef HAL_SRAM_MODULE_ENABLED
#include "stm32f7xx_hal_sram.h"
#endif /* HAL_SRAM_MODULE_ENABLED */
#ifdef HAL_NOR_MODULE_ENABLED
#include "stm32f7xx_hal_nor.h"
#endif /* HAL_NOR_MODULE_ENABLED */
#ifdef HAL_NAND_MODULE_ENABLED
#include "stm32f7xx_hal_nand.h"
#endif /* HAL_NAND_MODULE_ENABLED */
#ifdef HAL_SDRAM_MODULE_ENABLED
#include "stm32f7xx_hal_sdram.h"
#endif /* HAL_SDRAM_MODULE_ENABLED */
#ifdef HAL_HASH_MODULE_ENABLED
#include "stm32f7xx_hal_hash.h"
#endif /* HAL_HASH_MODULE_ENABLED */
#ifdef HAL_I2C_MODULE_ENABLED
#include "stm32f7xx_hal_i2c.h"
#endif /* HAL_I2C_MODULE_ENABLED */
#ifdef HAL_I2S_MODULE_ENABLED
#include "stm32f7xx_hal_i2s.h"
#endif /* HAL_I2S_MODULE_ENABLED */
#ifdef HAL_IWDG_MODULE_ENABLED
#include "stm32f7xx_hal_iwdg.h"
#endif /* HAL_IWDG_MODULE_ENABLED */
#ifdef HAL_LPTIM_MODULE_ENABLED
#include "stm32f7xx_hal_lptim.h"
#endif /* HAL_LPTIM_MODULE_ENABLED */
#ifdef HAL_LTDC_MODULE_ENABLED
#include "stm32f7xx_hal_ltdc.h"
#endif /* HAL_LTDC_MODULE_ENABLED */
#ifdef HAL_PWR_MODULE_ENABLED
#include "stm32f7xx_hal_pwr.h"
#endif /* HAL_PWR_MODULE_ENABLED */
#ifdef HAL_QSPI_MODULE_ENABLED
#include "stm32f7xx_hal_qspi.h"
#endif /* HAL_QSPI_MODULE_ENABLED */
#ifdef HAL_RNG_MODULE_ENABLED
#include "stm32f7xx_hal_rng.h"
#endif /* HAL_RNG_MODULE_ENABLED */
#ifdef HAL_RTC_MODULE_ENABLED
#include "stm32f7xx_hal_rtc.h"
#endif /* HAL_RTC_MODULE_ENABLED */
#ifdef HAL_SAI_MODULE_ENABLED
#include "stm32f7xx_hal_sai.h"
#endif /* HAL_SAI_MODULE_ENABLED */
#ifdef HAL_SD_MODULE_ENABLED
#include "stm32f7xx_hal_sd.h"
#endif /* HAL_SD_MODULE_ENABLED */
#ifdef HAL_SPDIFRX_MODULE_ENABLED
#include "stm32f7xx_hal_spdifrx.h"
#endif /* HAL_SPDIFRX_MODULE_ENABLED */
#ifdef HAL_SPI_MODULE_ENABLED
#include "stm32f7xx_hal_spi.h"
#endif /* HAL_SPI_MODULE_ENABLED */
#ifdef HAL_TIM_MODULE_ENABLED
#include "stm32f7xx_hal_tim.h"
#endif /* HAL_TIM_MODULE_ENABLED */
#ifdef HAL_UART_MODULE_ENABLED
#include "stm32f7xx_hal_uart.h"
#endif /* HAL_UART_MODULE_ENABLED */
#ifdef HAL_USART_MODULE_ENABLED
#include "stm32f7xx_hal_usart.h"
#endif /* HAL_USART_MODULE_ENABLED */
#ifdef HAL_IRDA_MODULE_ENABLED
#include "stm32f7xx_hal_irda.h"
#endif /* HAL_IRDA_MODULE_ENABLED */
#ifdef HAL_SMARTCARD_MODULE_ENABLED
#include "stm32f7xx_hal_smartcard.h"
#endif /* HAL_SMARTCARD_MODULE_ENABLED */
#ifdef HAL_WWDG_MODULE_ENABLED
#include "stm32f7xx_hal_wwdg.h"
#endif /* HAL_WWDG_MODULE_ENABLED */
#ifdef HAL_PCD_MODULE_ENABLED
#include "stm32f7xx_hal_pcd.h"
#endif /* HAL_PCD_MODULE_ENABLED */
#ifdef HAL_HCD_MODULE_ENABLED
#include "stm32f7xx_hal_hcd.h"
#endif /* HAL_HCD_MODULE_ENABLED */
#ifdef HAL_DFSDM_MODULE_ENABLED
#include "stm32f7xx_hal_dfsdm.h"
#endif /* HAL_DFSDM_MODULE_ENABLED */
#ifdef HAL_DSI_MODULE_ENABLED
#include "stm32f7xx_hal_dsi.h"
#endif /* HAL_DSI_MODULE_ENABLED */
#ifdef HAL_JPEG_MODULE_ENABLED
#include "stm32f7xx_hal_jpeg.h"
#endif /* HAL_JPEG_MODULE_ENABLED */
#ifdef HAL_MDIOS_MODULE_ENABLED
#include "stm32f7xx_hal_mdios.h"
#endif /* HAL_MDIOS_MODULE_ENABLED */
#ifdef HAL_SMBUS_MODULE_ENABLED
#include "stm32f7xx_hal_smbus.h"
#endif /* HAL_SMBUS_MODULE_ENABLED */
#ifdef HAL_MMC_MODULE_ENABLED
#include "stm32f7xx_hal_mmc.h"
#endif /* HAL_MMC_MODULE_ENABLED */
/* Exported macro ------------------------------------------------------------*/
#ifdef USE_FULL_ASSERT
/**
* @brief The assert_param macro is used for function's parameters check.
* @param expr: If expr is false, it calls assert_failed function
* which reports the name of the source file and the source
* line number of the call that failed.
* If expr is true, it returns no value.
* @retval None
*/
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
void assert_failed(uint8_t* file, uint32_t line);
#else
#define assert_param(expr) ((void)0)
#endif /* USE_FULL_ASSERT */
#ifdef __cplusplus
}
#endif
#endif /* __STM32F7xx_HAL_CONF_H */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@ -0,0 +1,280 @@
/**
******************************************************************************
* @file system_stm32f7xx.c
* @author MCD Application Team
* @version V1.2.0
* @date 30-December-2016
* @brief CMSIS Cortex-M7 Device Peripheral Access Layer System Source File.
*
* This file provides two functions and one global variable to be called from
* user application:
* - SystemInit(): This function is called at startup just after reset and
* before branch to main program. This call is made inside
* the "startup_stm32f7xx.s" file.
*
* - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
* by the user application to setup the SysTick
* timer or configure other parameters.
*
* - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
* be called whenever the core clock is changed
* during program execution.
*
*
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT 2016 STMicroelectronics</center></h2>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************
*/
/** @addtogroup CMSIS
* @{
*/
/** @addtogroup stm32f7xx_system
* @{
*/
/** @addtogroup STM32F7xx_System_Private_Includes
* @{
*/
#include "stm32f7xx.h"
#if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
#endif /* HSE_VALUE */
#if !defined (HSI_VALUE)
#define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
#endif /* HSI_VALUE */
/**
* @}
*/
/** @addtogroup STM32F7xx_System_Private_TypesDefinitions
* @{
*/
/**
* @}
*/
/** @addtogroup STM32F7xx_System_Private_Defines
* @{
*/
/************************* Miscellaneous Configuration ************************/
/*!< Uncomment the following line if you need to relocate your vector Table in
Internal SRAM. */
/* #define VECT_TAB_SRAM */
#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
This value must be a multiple of 0x200. */
/******************************************************************************/
/**
* @}
*/
/** @addtogroup STM32F7xx_System_Private_Macros
* @{
*/
/**
* @}
*/
/** @addtogroup STM32F7xx_System_Private_Variables
* @{
*/
/* This variable is updated in three ways:
1) by calling CMSIS function SystemCoreClockUpdate()
2) by calling HAL API function HAL_RCC_GetHCLKFreq()
3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
Note: If you use this function to configure the system clock; then there
is no need to call the 2 first functions listed above, since SystemCoreClock
variable is updated automatically.
*/
uint32_t SystemCoreClock = 16000000;
const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
/**
* @}
*/
/** @addtogroup STM32F7xx_System_Private_FunctionPrototypes
* @{
*/
/**
* @}
*/
/** @addtogroup STM32F7xx_System_Private_Functions
* @{
*/
/**
* @brief Setup the microcontroller system
* Initialize the Embedded Flash Interface, the PLL and update the
* SystemFrequency variable.
* @param None
* @retval None
*/
void SystemInit(void)
{
/* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
#endif
/* Reset the RCC clock configuration to the default reset state ------------*/
/* Set HSION bit */
RCC->CR |= (uint32_t)0x00000001;
/* Reset CFGR register */
RCC->CFGR = 0x00000000;
/* Reset HSEON, CSSON and PLLON bits */
RCC->CR &= (uint32_t)0xFEF6FFFF;
/* Reset PLLCFGR register */
RCC->PLLCFGR = 0x24003010;
/* Reset HSEBYP bit */
RCC->CR &= (uint32_t)0xFFFBFFFF;
/* Disable all interrupts */
RCC->CIR = 0x00000000;
/* Configure the Vector Table location add offset address ------------------*/
#ifdef VECT_TAB_SRAM
SCB->VTOR = RAMDTCM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#else
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
#endif
}
/**
* @brief Update SystemCoreClock variable according to Clock Register Values.
* The SystemCoreClock variable contains the core clock (HCLK), it can
* be used by the user application to setup the SysTick timer or configure
* other parameters.
*
* @note Each time the core clock (HCLK) changes, this function must be called
* to update SystemCoreClock variable value. Otherwise, any configuration
* based on this variable will be incorrect.
*
* @note - The system frequency computed by this function is not the real
* frequency in the chip. It is calculated based on the predefined
* constant and the selected clock source:
*
* - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
*
* - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
*
* - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
* or HSI_VALUE(*) multiplied/divided by the PLL factors.
*
* (*) HSI_VALUE is a constant defined in stm32f7xx_hal_conf.h file (default value
* 16 MHz) but the real value may vary depending on the variations
* in voltage and temperature.
*
* (**) HSE_VALUE is a constant defined in stm32f7xx_hal_conf.h file (default value
* 25 MHz), user has to ensure that HSE_VALUE is same as the real
* frequency of the crystal used. Otherwise, this function may
* have wrong result.
*
* - The result of this function could be not correct when using fractional
* value for HSE crystal.
*
* @param None
* @retval None
*/
void SystemCoreClockUpdate(void)
{
uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
/* Get SYSCLK source -------------------------------------------------------*/
tmp = RCC->CFGR & RCC_CFGR_SWS;
switch (tmp)
{
case 0x00: /* HSI used as system clock source */
SystemCoreClock = HSI_VALUE;
break;
case 0x04: /* HSE used as system clock source */
SystemCoreClock = HSE_VALUE;
break;
case 0x08: /* PLL used as system clock source */
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
SYSCLK = PLL_VCO / PLL_P
*/
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
if (pllsource != 0)
{
/* HSE used as PLL clock source */
pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
}
else
{
/* HSI used as PLL clock source */
pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
}
pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
SystemCoreClock = pllvco/pllp;
break;
default:
SystemCoreClock = HSI_VALUE;
break;
}
/* Compute HCLK frequency --------------------------------------------------*/
/* Get HCLK prescaler */
tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
/* HCLK frequency */
SystemCoreClock >>= tmp;
}
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@ -0,0 +1,120 @@
;/******************************************************************************
; * file: for_asm_calls.S
; * function: save and restore scratch registers
; * ----------------------------------------------------------------------------
; * comments: These calls are used in the first assembler laboratories
; * to hide the scratch register usage
; *****************************************************************************/
EXPORT decOut
EXPORT strOut
EXPORT decIn
EXPORT strIn
IMPORT printf
IMPORT scanf
IMPORT getchar
AREA |.text|, CODE, READONLY
;/******************************************************************************
; * name: decOut
; * function: display a decimal value on the debug terminal
; * ----------------------------------------------------------------------------
; * parameters: r0 - the value to display
; *
; * comments: use USE_STDIO_NOBUF 1 in config.h to print direclty the value
; * on the serial port
; *****************************************************************************/
decOut
push {r0-r3,ip,lr}
mov r1,r0
ldr r0,=strDecOut
bl printf
pop {r0-r3,ip,pc}
;/******************************************************************************
; * name: strOut
; * function: display a string on the debug terminal
; * The string has to finish with a NULL character
; * ----------------------------------------------------------------------------
; * parameters: r0 - the string pointer
; *
; * comments: use USE_STDIO_NOBUF 1 in config.h to print direclty the value
; * on the serial port
; *****************************************************************************/
strOut
push {r0-r3,ip,lr}
mov r1,r0
ldr r0,=strStrOut
bl printf
pop {r0-r3,ip,pc}
;/******************************************************************************
; * name: decIn
; * function: read a decimal value on the debug terminal
; * The value ends with a CR (as standard scanf)
; * ----------------------------------------------------------------------------
; * parameters: -
; *
; * return: r0 - the readed value
; *
; * comments: use USE_STDIO_ECHO 1 in config.h to have an echo
; * on the serial port when typing
; *****************************************************************************/
decIn
push {r1-r4,ip,lr}
ldr r0,=strDecIn
ldr r1,=readVal
bl scanf
bl getchar ; flush CR
ldr r1,=readVal
ldr r0,[r1]
pop {r1-r4,ip,pc}
;/******************************************************************************
; * name: strIn
; * function: reads a string on the debug terminal
; * The string ends with a CR
; * ----------------------------------------------------------------------------
; * parameters: r0 - the string pointer
; * r1 - length max
; *
; * comments: use USE_STDIO_ECHO 1 in config.h to have an echo
; * on the serial port when typing
; *****************************************************************************/
strIn
push {r0-r5,ip,lr}
mov r4,r1
mov r5,r0
loopStrIn
mov r1,r5
bl getchar
cmp r0,#0x0D
beq replaceCrStrIn
strb r0,[r5]
sub r4,r4,#1
cmp r4,#0
beq endNull
add r5,r5,#1
b loopStrIn
replaceCrStrIn
mov r0,#0
strb r0,[r5]
pop {r0-r5,ip,pc}
endNull
mov r1,#0
strb r1,[r5,#1]
pop {r0-r5,ip,pc}
;/* strings for printf and scanf usage */
strDecOut DCB "%ld",0
strDecIn DCB "%ld",0
strStrOut DCB "%s",0,0
AREA |.data|, DATA, READWRITE, ALIGN=4
readVal DCD 0 ;/* one word byte for read */
END

View File

@ -0,0 +1,7 @@
extern void asm_main(void);
int main(void)
{
asm_main();
}

View File

@ -0,0 +1,45 @@
/*
* Auto generated Run-Time-Environment Configuration File
* *** Do not modify ! ***
*
* Project: 'lab1'
* Target: 'Target 1'
*/
#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*
* Define the Device Header File:
*/
#define CMSIS_device_header "stm32f7xx.h"
/* ARM::CMSIS:RTOS2:Keil RTX5:Source:5.5.3 */
#define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */
#define RTE_CMSIS_RTOS2_RTX5 /* CMSIS-RTOS2 Keil RTX5 */
#define RTE_CMSIS_RTOS2_RTX5_SOURCE /* CMSIS-RTOS2 Keil RTX5 Source */
/* Keil.ARM Compiler::Compiler:Event Recorder:DAP:1.4.0 */
#define RTE_Compiler_EventRecorder
#define RTE_Compiler_EventRecorder_DAP
/* Keil.ARM Compiler::Compiler:I/O:STDOUT:EVR:1.2.0 */
#define RTE_Compiler_IO_STDOUT /* Compiler I/O: STDOUT */
#define RTE_Compiler_IO_STDOUT_EVR /* Compiler I/O: STDOUT EVR */
/* Keil::Device:STM32Cube Framework:Classic:1.2.6 */
#define RTE_DEVICE_FRAMEWORK_CLASSIC
/* Keil::Device:STM32Cube HAL:Common:1.2.6 */
#define RTE_DEVICE_HAL_COMMON
/* Keil::Device:STM32Cube HAL:Cortex:1.2.6 */
#define RTE_DEVICE_HAL_CORTEX
/* Keil::Device:STM32Cube HAL:GPIO:1.2.6 */
#define RTE_DEVICE_HAL_GPIO
/* Keil::Device:STM32Cube HAL:PWR:1.2.6 */
#define RTE_DEVICE_HAL_PWR
/* Keil::Device:STM32Cube HAL:RCC:1.2.6 */
#define RTE_DEVICE_HAL_RCC
/* Keil::Device:Startup:1.2.2 */
#define RTE_DEVICE_STARTUP_STM32F7XX /* Device Startup for STM32F7 */
#endif /* RTE_COMPONENTS_H */

14
lab-dbg/component.scvd Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="MyExample" version="1.0.0"/>
<events>
<group name="My Events Group">
<component name="MyApp" brief="Triangle" no="0x00" info=" Pop up Info fun"/>
<component name="MyApp" brief="Sinus" no="0x01" info=" Pop up Info fun"/>
<component name="MyApp" brief="Pulse" no="0x02" info=" Pop up Info fun"/>
</group>
<event id="0x000" level="Detail" property="Triangle" value="=%d[val1]" info="Event on operation in MyFunction" />
<event id="0x100" level="Detail" property="Sinus" value="=%d[val1]" info="Event on operation in MyFunction" />
<event id="0x200" level="Detail" property="Pulse" value="=%d[val1]" info="Event on operation in MyFunction" />
</events>
</component_viewer>

561
lab-dbg/lab1.uvprojx Normal file
View File

@ -0,0 +1,561 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
<SchemaVersion>2.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>Target 1</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060960::V5.06 update 7 (build 960)::ARMCC</pCCUsed>
<uAC6>0</uAC6>
<TargetOption>
<TargetCommonOption>
<Device>STM32F746NGHx</Device>
<Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F7xx_DFP.2.11.0</PackID>
<PackURL>http://www.keil.com/pack</PackURL>
<Cpu>IRAM(0x20010000,0x40000) IRAM2(0x20000000,0x10000) IROM(0x08000000,0x100000) IROM2(0x00200000,0x100000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile>
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM))</FlashDriverDll>
<DeviceId>0</DeviceId>
<RegisterFile>$$Device:STM32F746NGHx$Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f7xx.h</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>$$Device:STM32F746NGHx$CMSIS\SVD\STM32F7x6_v1r1.svd</SFDFile>
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<RegisterFilePath></RegisterFilePath>
<DBRegisterFilePath></DBRegisterFilePath>
<TargetStatus>
<Error>0</Error>
<ExitCodeStop>0</ExitCodeStop>
<ButtonStop>0</ButtonStop>
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\Objects\</OutputDirectory>
<OutputName>lab1</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
<ListingPath>.\Listings\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X>
<nStopB2X>0</nStopB2X>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopA1X>0</nStopA1X>
<nStopA2X>0</nStopA2X>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>0</GenerateAssemblyFile>
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments> -REMAP -MPU</SimDllArguments>
<SimDlgDll>DCM.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM7</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments> -MPU</TargetDllArguments>
<TargetDlgDll>TCM.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pCM7</TargetDlgDllArguments>
</DllOption>
<DebugOption>
<OPTHX>
<HexSelection>1</HexSelection>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
</DebugOption>
<Utilities>
<Flash1>
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>-1</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3></Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp>
<pFcArmRoot></pFcArmRoot>
<FcArmLst>0</FcArmLst>
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
<GenerateListings>0</GenerateListings>
<asHll>1</asHll>
<asAsm>1</asAsm>
<asMacX>1</asMacX>
<asSyms>1</asSyms>
<asFals>1</asFals>
<asDbgD>1</asDbgD>
<asForm>1</asForm>
<ldLst>0</ldLst>
<ldmm>1</ldmm>
<ldXref>1</ldXref>
<BigEnd>0</BigEnd>
<AdsALst>1</AdsALst>
<AdsACrf>1</AdsACrf>
<AdsANop>0</AdsANop>
<AdsANot>0</AdsANot>
<AdsLLst>1</AdsLLst>
<AdsLmap>1</AdsLmap>
<AdsLcgr>1</AdsLcgr>
<AdsLsym>1</AdsLsym>
<AdsLszi>1</AdsLszi>
<AdsLtoi>1</AdsLtoi>
<AdsLsun>1</AdsLsun>
<AdsLven>1</AdsLven>
<AdsLsxf>1</AdsLsxf>
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M7"</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<mOS>1</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
<hadIROM>1</hadIROM>
<hadIRAM>1</hadIRAM>
<hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam>
<RvdsVP>1</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<hadIRAM2>1</hadIRAM2>
<hadIROM2>1</hadIROM2>
<StupSel>8</StupSel>
<useUlib>0</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<nSecure>0</nSecure>
<RoSelD>3</RoSelD>
<RwSelD>4</RwSelD>
<CodeSel>0</CodeSel>
<OptFeed>0</OptFeed>
<NoZi1>0</NoZi1>
<NoZi2>0</NoZi2>
<NoZi3>0</NoZi3>
<NoZi4>0</NoZi4>
<NoZi5>0</NoZi5>
<Ro1Chk>0</Ro1Chk>
<Ro2Chk>0</Ro2Chk>
<Ro3Chk>0</Ro3Chk>
<Ir1Chk>1</Ir1Chk>
<Ir2Chk>0</Ir2Chk>
<Ra1Chk>0</Ra1Chk>
<Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk>
<Im1Chk>1</Im1Chk>
<Im2Chk>1</Im2Chk>
<OnChipMemories>
<Ocm1>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm1>
<Ocm2>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm2>
<Ocm3>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm3>
<Ocm4>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm4>
<Ocm5>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm5>
<Ocm6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm6>
<IRAM>
<Type>0</Type>
<StartAddress>0x20010000</StartAddress>
<Size>0x40000</Size>
</IRAM>
<IROM>
<Type>1</Type>
<StartAddress>0x8000000</StartAddress>
<Size>0x100000</Size>
</IROM>
<XRAM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</XRAM>
<OCR_RVCT1>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT1>
<OCR_RVCT2>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT2>
<OCR_RVCT3>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT3>
<OCR_RVCT4>
<Type>1</Type>
<StartAddress>0x8000000</StartAddress>
<Size>0x100000</Size>
</OCR_RVCT4>
<OCR_RVCT5>
<Type>1</Type>
<StartAddress>0x200000</StartAddress>
<Size>0x100000</Size>
</OCR_RVCT5>
<OCR_RVCT6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT6>
<OCR_RVCT7>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT7>
<OCR_RVCT8>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT8>
<OCR_RVCT9>
<Type>0</Type>
<StartAddress>0x20010000</StartAddress>
<Size>0x40000</Size>
</OCR_RVCT9>
<OCR_RVCT10>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0x10000</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
</ArmAdsMisc>
<Cads>
<interw>1</interw>
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
<OneElfS>1</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<wLevel>2</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>1</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO>
<v6Lang>1</v6Lang>
<v6LangP>1</v6LangP>
<vShortEn>1</vShortEn>
<vShortWch>1</vShortWch>
<v6Lto>0</v6Lto>
<v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>1</interw>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<thumb>0</thumb>
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<ClangAsOpt>4</ClangAsOpt>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Aads>
<LDads>
<umfTarg>1</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
<RepFail>1</RepFail>
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20010000</DataAddressRange>
<pXoBase></pXoBase>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc></Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Source Group 1</GroupName>
<Files>
<File>
<FileName>main.c</FileName>
<FileType>1</FileType>
<FilePath>.\main.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
<Group>
<GroupName>::Compiler</GroupName>
</Group>
<Group>
<GroupName>::Device</GroupName>
</Group>
</Groups>
</Target>
</Targets>
<RTE>
<apis>
<api Capiversion="2.1.1" Cclass="CMSIS" Cgroup="RTOS2" exclusive="1">
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="5.1.1"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</api>
<api Capiversion="1.0.0" Cclass="Device" Cgroup="STM32Cube Framework" exclusive="1">
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.9.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</api>
</apis>
<components>
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="5.5.0" condition="ARMv6_7_8-M Device">
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="5.8.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Capiversion="2.1.3" Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source" Cvendor="ARM" Cversion="5.5.3" condition="RTOS2 RTX5">
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="5.8.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cbundle="ARM Compiler" Cclass="Compiler" Cgroup="Event Recorder" Cvariant="DAP" Cvendor="Keil" Cversion="1.4.0" condition="Cortex-M Device">
<package name="ARM_Compiler" schemaVersion="1.6.3" url="http://www.keil.com/pack/" vendor="Keil" version="1.6.3"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cbundle="ARM Compiler" Cclass="Compiler" Cgroup="I/O" Csub="STDOUT" Cvariant="EVR" Cvendor="Keil" Cversion="1.2.0" condition="ARMCC Cortex-M with EVR">
<package name="ARM_Compiler" schemaVersion="1.6.3" url="http://www.keil.com/pack/" vendor="Keil" version="1.6.3"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Capiversion="1.0.0" Cclass="Device" Cgroup="STM32Cube Framework" Csub="Classic" Cvendor="Keil" Cversion="1.2.6" condition="STM32F7 Framework Classic">
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="Common" Cvendor="Keil" Cversion="1.2.6" condition="STM32F7 HAL Common">
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="Cortex" Cvendor="Keil" Cversion="1.2.6" condition="STM32F7 HAL">
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="GPIO" Cvendor="Keil" Cversion="1.2.6" condition="STM32F7 HAL">
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="PWR" Cvendor="Keil" Cversion="1.2.6" condition="STM32F7 HAL">
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="RCC" Cvendor="Keil" Cversion="1.2.6" condition="STM32F7x5_7x6_7x7_7x9_750 HAL GPIO">
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.2.2" condition="STM32F7 CMSIS">
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
</components>
<files>
<file attr="config" category="source" name="CMSIS\RTOS2\RTX\Config\RTX_Config.c" version="5.1.0">
<instance index="0">RTE\CMSIS\RTX_Config.c</instance>
<component Capiversion="2.1.3" Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source" Cvendor="ARM" Cversion="5.5.3" condition="RTOS2 RTX5"/>
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="5.8.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</file>
<file attr="config" category="header" name="CMSIS\RTOS2\RTX\Config\RTX_Config.h" version="5.1.0">
<instance index="0">RTE\CMSIS\RTX_Config.h</instance>
<component Capiversion="2.1.3" Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source" Cvendor="ARM" Cversion="5.5.3" condition="RTOS2 RTX5"/>
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="5.8.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</file>
<file attr="config" category="header" name="Config\EventRecorderConf.h" version="1.0.0">
<instance index="0">RTE\Compiler\EventRecorderConf.h</instance>
<component Cbundle="ARM Compiler" Cclass="Compiler" Cgroup="Event Recorder" Cvariant="DAP" Cvendor="Keil" Cversion="1.4.0" condition="Cortex-M Device"/>
<package name="ARM_Compiler" schemaVersion="1.6.3" url="http://www.keil.com/pack/" vendor="Keil" version="1.6.3"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</file>
<file attr="config" category="header" name="CMSIS\Driver\Config\RTE_Device.h" version="1.4.0">
<instance index="0">RTE\Device\STM32F746NGHx\RTE_Device.h</instance>
<component Capiversion="1.0.0" Cclass="Device" Cgroup="STM32Cube Framework" Csub="Classic" Cvendor="Keil" Cversion="1.2.6" condition="STM32F7 Framework Classic"/>
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</file>
<file attr="config" category="source" condition="STM32F746_ARMCC" name="Drivers\CMSIS\Device\ST\STM32F7xx\Source\Templates\arm\startup_stm32f746xx.s" version="1.2.0">
<instance index="0">RTE\Device\STM32F746NGHx\startup_stm32f746xx.s</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.2.2" condition="STM32F7 CMSIS"/>
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</file>
<file attr="config" category="header" name="MDK\Templates\Inc\stm32f7xx_hal_conf.h" version="1.2.0">
<instance index="0">RTE\Device\STM32F746NGHx\stm32f7xx_hal_conf.h</instance>
<component Capiversion="1.0.0" Cclass="Device" Cgroup="STM32Cube Framework" Csub="Classic" Cvendor="Keil" Cversion="1.2.6" condition="STM32F7 Framework Classic"/>
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</file>
<file attr="config" category="source" name="Drivers\CMSIS\Device\ST\STM32F7xx\Source\Templates\system_stm32f7xx.c" version="1.2.0">
<instance index="0">RTE\Device\STM32F746NGHx\system_stm32f7xx.c</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.2.2" condition="STM32F7 CMSIS"/>
<package name="STM32F7xx_DFP" schemaVersion="1.3" url="http://www.keil.com/pack" vendor="Keil" version="2.11.0"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</file>
<file attr="config" category="source" name="extension_board\asmcalls.s">
<instance index="0" removed="1">RTE\Hesso_pack\asmcalls.s</instance>
<component Cclass="Hesso pack" Cgroup="Assembler main call" Cvendor="HessoValais" Cversion="1.0.0"/>
<package name="Extension_board" schemaVersion="1.2" supportContact="mailto:pascal.sartoretti@hevs.ch" url="file:///C:\tmp\ext_pack" vendor="HessoValais" version="1.0.0"/>
<targetInfos/>
</file>
<file attr="config" category="source" name="extension_board\main_asm.c">
<instance index="0" removed="1">RTE\Hesso_pack\main_asm.c</instance>
<component Cclass="Hesso pack" Cgroup="Assembler main call" Cvendor="HessoValais" Cversion="1.0.0"/>
<package name="Extension_board" schemaVersion="1.2" supportContact="mailto:pascal.sartoretti@hevs.ch" url="file:///C:\tmp\ext_pack" vendor="HessoValais" version="1.0.0"/>
<targetInfos/>
</file>
</files>
</RTE>
</Project>

165
lab-dbg/main.c Normal file
View File

@ -0,0 +1,165 @@
/*----------------------------------------------------------------------------
* DBG
*---------------------------------------------------------------------------*/
#include "stm32f7xx_hal.h"
#include "RTE_Components.h"
#include CMSIS_device_header
#include "cmsis_os2.h"
#include <stdio.h>
#ifdef RTE_Compiler_EventRecorder
#include "EventRecorder.h"
#endif
osThreadId_t thread1,thread2,thread3,thread4;
void Thread_1 (void *argument);
void Thread_2 (void *argument);
void Thread_3 (void *argument);
void Thread_4 (void *argument);
const osThreadAttr_t thread1_attr = {
.stack_size = 1024,
.priority = osPriorityNormal,
};
const osThreadAttr_t thread2_attr = {
.stack_size = 1024,
.priority = osPriorityBelowNormal4,
};
const osThreadAttr_t thread3_attr = {
.stack_size = 4096,
.priority = osPriorityBelowNormal,
};
const osThreadAttr_t thread4_attr = {
.stack_size = 256,
.priority = osPriorityLow,
};
//------------------------------------------------------------------------------
// Setup system clock to 216MHz
//------------------------------------------------------------------------------
void SystemClock_Config (void) {
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitTypeDef RCC_OscInitStruct;
/* Enable HSE Oscillator and activate PLL with HSE as source */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSIState = RCC_HSI_OFF;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 25;
RCC_OscInitStruct.PLL.PLLN = 432;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 9;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
/* Activate the OverDrive to reach the 216 MHz Frequency */
HAL_PWREx_EnableOverDrive();
/* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7);
}
/*----------------------------------------------------------------------------
* Factorial function calculation
*---------------------------------------------------------------------------*/
double Fact(double number)
{
if(number <= 1)
return 1;
return (number * Fact(number-1));
}
/*----------------------------------------------------------------------------
* Thread 1
*---------------------------------------------------------------------------*/
void Thread_1 (void *argument) {
uint32_t x = 1;
double result;
for (;;)
{
result = Fact(x);
printf("Fact of %d is %f\r\n",x,result);
x++;
osDelay(200);
}
}
/*----------------------------------------------------------------------------
* Thread 2
*---------------------------------------------------------------------------*/
void Thread_2 (void *argument) {
osThreadState_t state;
for (;;)
{
osDelay(20);
state = osThreadGetState(Thread_4);
if(state == osThreadBlocked)
{
osThreadResume(Thread_4);
}
}
}
/*----------------------------------------------------------------------------
* Thread 3
*---------------------------------------------------------------------------*/
void Thread_3 (void *argument) {
osThreadState_t state;
for (;;)
{
osDelay(50);
state = osThreadGetState(Thread_4);
if(state != osThreadBlocked)
{
osThreadSuspend(Thread_4);
}
}
}
/*----------------------------------------------------------------------------
* Thread 4
*---------------------------------------------------------------------------*/
void Thread_4 (void *argument) {
char * str = "Flag is:0";
uint8_t flag = '0';
for (;;)
{
if(flag == '0')
{
flag = '1';
}
else
{
flag = '0';
}
str[8]= flag;
puts(str);
osDelay(100);
}
}
int main (void) {
// System Initialization
SystemClock_Config();
SystemCoreClockUpdate();
#ifdef RTE_Compiler_EventRecorder
// Initialize and start Event Recorder
EventRecorderInitialize(EventRecordAll, 1U);
#endif
osKernelInitialize();
thread1 = osThreadNew(Thread_1, NULL, &thread1_attr);
thread2 = osThreadNew(Thread_2, NULL, &thread2_attr);
thread3 = osThreadNew(Thread_3, NULL, &thread3_attr);
thread4 = osThreadNew(Thread_4, NULL, &thread4_attr);
osKernelStart();
for (;;) {}
}

12
trace/EventRecorder.scvd Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="EventRecorder" version="1.0.0"/> <!--name and version of the component-->
<events>
<group name="STDIO">
<component name="C Standard I/O" brief="STDIO" no="0xFE" info="C Standard I/O Events"/>
</group>
<event id="0xFE00+0x00" level="op" property="stdout" value="%x[(uint8_t)val1],%x[(uint8_t)(val1 &gt;&gt; 8)],%x[(uint8_t)(val1 &gt;&gt; 16)],%x[(uint8_t)(val1 &gt;&gt; 24)],%x[(uint8_t)val2],%x[(uint8_t)(val2 &gt;&gt; 8)],%x[(uint8_t)(val2 &gt;&gt; 16)],%x[(uint8_t)(val2 &gt;&gt; 24)]" info="stdout as HEX."/>
</events>
</component_viewer>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="EventRecorderStub" version="1.0.0"/> <!--name and version of the component-->
<events>
</events>
</component_viewer>

1552
trace/RTX5.scvd Normal file

File diff suppressed because it is too large Load Diff

18
trace/component.scvd Normal file
View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="MyExample" version="1.0.0"/> <!-- name and version of the component -->
<events>
<group name="My Events Group">
<component name="MyApp" brief="Triangle" no="0x00" info=" Pop up Info fun"/>
<component name="MyApp" brief="Sinus" no="0x01" info=" Pop up Info fun"/>
<component name="MyApp" brief="Pulse" no="0x02" info=" Pop up Info fun"/>
</group>
<event id="0x000" level="Detail" property="Triangle" value="=%d[val1]" info="Event on operation in MyFunction" />
<event id="0x100" level="Detail" property="Sinus" value="=%d[val1]" info="Event on operation in MyFunction" />
<event id="0x200" level="Detail" property="Pulse" value="=%d[val1]" info="Event on operation in MyFunction" />
</events>
</component_viewer>

561
trace/metadata.xml Normal file
View File

@ -0,0 +1,561 @@
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<symbols>
<symbol module="public" address="0x8000000" name="__Vectors" type="uint" />
<symbol module="public" address="0x80001C8" name="__Vectors_End" type="uint" />
<symbol module="public" address="0x80001C8" name="__main" type="function" />
<symbol module="public" address="0x80001D0" name="__scatterload" type="function" />
<symbol module="public" address="0x80001D0" name="__scatterload_rt2" type="function" />
<symbol module="public" address="0x80001D0" name="__scatterload_rt2_thumb_only" type="function" />
<symbol module="public" address="0x80001DE" name="__scatterload_null" type="function" />
<symbol module="public" address="0x8000204" name="__decompress" type="function" />
<symbol module="public" address="0x8000204" name="__decompress1" type="function" />
<symbol module="public" address="0x8000260" name="__scatterload_zeroinit" type="function" />
<symbol module="public" address="0x800027C" name="__rt_lib_init" type="function" />
<symbol module="public" address="0x800027E" name="__rt_lib_init_fp_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_alloca_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_argv_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_atexit_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_clock_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_cpp_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_exceptions_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_fp_trap_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_getenv_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_heap_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_lc_collate_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_lc_ctype_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_lc_monetary_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_lc_numeric_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_lc_time_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_preinit_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_rand_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_return" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_signal_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_stdio_1" type="function" />
<symbol module="public" address="0x8000282" name="__rt_lib_init_user_alloc_1" type="function" />
<symbol module="public" address="0x8000284" name="__rt_lib_shutdown" type="function" />
<symbol module="public" address="0x8000286" name="__rt_lib_shutdown_cpp_1" type="function" />
<symbol module="public" address="0x8000286" name="__rt_lib_shutdown_fp_trap_1" type="function" />
<symbol module="public" address="0x8000286" name="__rt_lib_shutdown_heap_1" type="function" />
<symbol module="public" address="0x8000286" name="__rt_lib_shutdown_return" type="function" />
<symbol module="public" address="0x8000286" name="__rt_lib_shutdown_signal_1" type="function" />
<symbol module="public" address="0x8000286" name="__rt_lib_shutdown_stdio_1" type="function" />
<symbol module="public" address="0x8000286" name="__rt_lib_shutdown_user_alloc_1" type="function" />
<symbol module="public" address="0x8000288" name="__rt_entry" type="function" />
<symbol module="public" address="0x8000288" name="__rt_entry_presh_1" type="function" />
<symbol module="public" address="0x8000288" name="__rt_entry_sh" type="function" />
<symbol module="public" address="0x800028E" name="__rt_entry_postsh_1" type="function" />
<symbol module="public" address="0x8000296" name="__rt_entry_li" type="function" />
<symbol module="public" address="0x800029A" name="__rt_entry_main" type="function" />
<symbol module="public" address="0x800029A" name="__rt_entry_postli_1" type="function" />
<symbol module="public" address="0x80002A2" name="__rt_exit" type="function" />
<symbol module="public" address="0x80002A4" name="__rt_exit_ls" type="function" />
<symbol module="public" address="0x80002A4" name="__rt_exit_prels_1" type="function" />
<symbol module="public" address="0x80002A8" name="__rt_exit_exit" type="function" />
<symbol module="public" address="0x80008D4" name="__user_initial_stackheap" type="function" />
<symbol module="public" address="0x80008F8" name="__aeabi_memcpy" type="function" />
<symbol module="public" address="0x80008F8" name="__rt_memcpy" type="function" />
<symbol module="public" address="0x800095E" name="_memcpy_lastbytes" type="function" />
<symbol module="public" address="0x8000982" name="__aeabi_memclr" type="function" />
<symbol module="public" address="0x8000982" name="__rt_memclr" type="function" />
<symbol module="public" address="0x8000986" name="_memset" type="function" />
<symbol module="public" address="0x80009C6" name="__aeabi_memclr4" type="function" />
<symbol module="public" address="0x80009C6" name="__aeabi_memclr8" type="function" />
<symbol module="public" address="0x80009C6" name="__rt_memclr_w" type="function" />
<symbol module="public" address="0x80009CA" name="_memset_w" type="function" />
<symbol module="public" address="0x8000A14" name="__use_two_region_memory" type="function" />
<symbol module="public" address="0x8000A16" name="__rt_heap_escrow$2region" type="function" />
<symbol module="public" address="0x8000A18" name="__rt_heap_expand$2region" type="function" />
<symbol module="public" address="0x8000A1A" name="__read_errno" type="function" />
<symbol module="public" address="0x8000A24" name="__set_errno" type="function" />
<symbol module="public" address="0x8000A30" name="__aeabi_memcpy4" type="function" />
<symbol module="public" address="0x8000A30" name="__aeabi_memcpy8" type="function" />
<symbol module="public" address="0x8000A30" name="__rt_memcpy_w" type="function" />
<symbol module="public" address="0x8000A78" name="_memcpy_lastbytes_aligned" type="function" />
<symbol module="public" address="0x8000A94" name="__aeabi_errno_addr" type="function" />
<symbol module="public" address="0x8000A94" name="__errno$twolibspace" type="function" />
<symbol module="public" address="0x8000A94" name="__rt_errno_addr$twolibspace" type="function" />
<symbol module="public" address="0x8000A98" name="__user_libspace" type="function" />
<symbol module="public" address="0x8000AA0" name="__user_setup_stackheap" type="function" />
<symbol module="public" address="0x8000AEA" name="exit" type="function" />
<symbol module="public" address="0x8000AFC" name="_sys_exit" type="function" />
<symbol module="public" address="0x8000B08" name="__I$use$semihosting" type="function" />
<symbol module="public" address="0x8000B08" name="__use_no_semihosting_swi" type="function" />
<symbol module="public" address="0x8000B0A" name="__semihosting_library_function" type="function" />
<symbol module="public" address="0x800221C" name="__ARM_fpclassify" type="function" />
<symbol module="public" address="0x80022D8" name="__hardfp_sin" type="function" />
<symbol module="public" address="0x80023A0" name="__ieee754_rem_pio2" type="function" />
<symbol module="public" address="0x80027D8" name="__kernel_cos" type="function" />
<symbol module="public" address="0x8002948" name="__kernel_poly" type="function" />
<symbol module="public" address="0x8002A40" name="__kernel_sin" type="function" />
<symbol module="public" address="0x8002B70" name="__mathlib_dbl_infnan" type="function" />
<symbol module="public" address="0x8002B88" name="__mathlib_dbl_invalid" type="function" />
<symbol module="public" address="0x8002BA8" name="__mathlib_dbl_underflow" type="function" />
<symbol module="public" address="0x8002D12" name="fabs" type="function" />
<symbol module="public" address="0x8004CB0" name="__aeabi_dneg" type="function" />
<symbol module="public" address="0x8004CB0" name="_dneg" type="function" />
<symbol module="public" address="0x8004CB6" name="__aeabi_fneg" type="function" />
<symbol module="public" address="0x8004CB6" name="_fneg" type="function" />
<symbol module="public" address="0x8004CBC" name="_dabs" type="function" />
<symbol module="public" address="0x8004CC2" name="_fabs" type="function" />
<symbol module="public" address="0x8004CC8" name="__aeabi_dadd" type="function" />
<symbol module="public" address="0x8004CC8" name="_dadd" type="function" />
<symbol module="public" address="0x8004E18" name="__aeabi_ddiv" type="function" />
<symbol module="public" address="0x8004E18" name="_ddiv" type="function" />
<symbol module="public" address="0x80050C8" name="__aeabi_d2iz" type="function" />
<symbol module="public" address="0x80050C8" name="_dfix" type="function" />
<symbol module="public" address="0x8005126" name="__aeabi_i2d" type="function" />
<symbol module="public" address="0x8005126" name="_dflt" type="function" />
<symbol module="public" address="0x8005154" name="__aeabi_ui2d" type="function" />
<symbol module="public" address="0x8005154" name="_dfltu" type="function" />
<symbol module="public" address="0x800517C" name="__aeabi_dmul" type="function" />
<symbol module="public" address="0x800517C" name="_dmul" type="function" />
<symbol module="public" address="0x80052D0" name="__fpl_dnaninf" type="function" />
<symbol module="public" address="0x800536C" name="__fpl_dretinf" type="function" />
<symbol module="public" address="0x8005378" name="__aeabi_drsub" type="function" />
<symbol module="public" address="0x8005378" name="_drsb" type="function" />
<symbol module="public" address="0x8005390" name="__aeabi_dsub" type="function" />
<symbol module="public" address="0x8005390" name="_dsub" type="function" />
<symbol module="public" address="0x8005564" name="_fp_init" type="function" />
<symbol module="public" address="0x800556C" name="__fplib_config_fpu_vfp" type="function" />
<symbol module="public" address="0x800556C" name="__fplib_config_pureend_doubles" type="function" />
<symbol module="public" address="0x800556E" name="__I$use$fp" type="uint" />
<symbol module="public" address="0x8005600" name="irqRtxLib" type="uint" />
<symbol module="public" address="0x800582C" name="Region$$Table$$Base" type="uint" />
<symbol module="public" address="0x800584C" name="Region$$Table$$Limit" type="uint" />
<symbol module="public" address="0x20011594" name="__libspace_start" type="uint" />
<symbol module="public" address="0x200115F4" name="__temporary_stack_top$libspace" type="uint" />
<symbol module="public" address="0x8001F7C" name="SystemCoreClockUpdate" type="function" />
<symbol module="public" address="0x800203C" name="SystemInit" type="function" />
<symbol module="public" address="0x200114EC" name="SystemCoreClock" type="uint" />
<symbol module="public" address="0x8005680" name="AHBPrescTable" type="array[16] of uchar" />
<symbol module="public" address="0x8005690" name="APBPrescTable" type="array[8] of uchar" />
<symbol module="public" address="0x8001668" name="HAL_RCC_ClockConfig" type="function" />
<symbol module="public" address="0x800181C" name="HAL_RCC_GetSysClockFreq" type="function" />
<symbol module="public" address="0x80018D0" name="HAL_RCC_OscConfig" type="function" />
<symbol module="public" address="0x80015D8" name="HAL_PWREx_EnableOverDrive" type="function" />
<symbol module="public" address="0x8001DB8" name="HAL_SYSTICK_Config" type="function" />
<symbol module="public" address="0x800155C" name="HAL_NVIC_SetPriority" type="function" />
<symbol module="public" address="0x8001528" name="HAL_GetTick" type="function" />
<symbol module="public" address="0x8001534" name="HAL_InitTick" type="function" />
<symbol module="public" address="0x200114E8" name="uwTick" type="uint" />
<symbol module="public" address="0x8000BA6" name="EventRecord4" type="function" />
<symbol module="public" address="0x8000B60" name="EventRecord2" type="function" />
<symbol module="public" address="0x8000C1C" name="EventRecordData" type="function" />
<symbol module="public" address="0x8000EA4" name="EventRecorderInitialize" type="function" />
<symbol module="public" address="0x8000E48" name="EventRecorderEnable" type="function" />
<symbol module="public" address="0x8000FA0" name="EventRecorderTimerInit" type="function" />
<symbol module="public" address="0x8000F94" name="EventRecorderTimerGet" type="function" />
<symbol module="public" address="0x8005668" name="EventRecorderInfo" type="struct &lt;untagged&gt;" />
<symbol module="public" address="0x80032D8" name="osRtxErrorNotify" type="function" />
<symbol module="public" address="0x80032F8" name="osRtxIdleThread" type="function" />
<symbol module="public" address="0x8001ECC" name="OS_Tick_GetIRQn" type="function" />
<symbol module="public" address="0x8001E90" name="OS_Tick_AcknowledgeIRQ" type="function" />
<symbol module="public" address="0x8001E9C" name="OS_Tick_Enable" type="function" />
<symbol module="public" address="0x8001ED4" name="OS_Tick_Setup" type="function" />
<symbol module="public" address="0x8003C88" name="osRtxTimerThread" type="function" />
<symbol module="public" address="0x8003CE0" name="osRtxTimerTick" type="function" />
<symbol module="public" address="0x8003D5C" name="osThreadGetId" type="function" />
<symbol module="public" address="0x8003D8C" name="osThreadNew" type="function" />
<symbol module="public" address="0x8004A30" name="svcRtxThreadGetId" type="function" />
<symbol module="public" address="0x8004A44" name="svcRtxThreadNew" type="function" />
<symbol module="public" address="0x8003D3C" name="osThreadExit" type="function" />
<symbol module="public" address="0x800499C" name="svcRtxThreadExit" type="function" />
<symbol module="public" address="0x8003A9A" name="osRtxThreadPostProcess" type="function" />
<symbol module="public" address="0x8003B60" name="osRtxThreadWaitEnter" type="function" />
<symbol module="public" address="0x8003BB8" name="osRtxThreadWaitExit" type="function" />
<symbol module="public" address="0x800392C" name="osRtxThreadDispatch" type="function" />
<symbol module="public" address="0x8003B44" name="osRtxThreadSwitch" type="function" />
<symbol module="public" address="0x8003B18" name="osRtxThreadStackCheck" type="function" />
<symbol module="public" address="0x8003740" name="osRtxThreadBlock" type="function" />
<symbol module="public" address="0x8003850" name="osRtxThreadDelayTick" type="function" />
<symbol module="public" address="0x8003AF4" name="osRtxThreadRegPtr" type="function" />
<symbol module="public" address="0x80037D8" name="osRtxThreadDelayRemove" type="function" />
<symbol module="public" address="0x8003770" name="osRtxThreadDelayInsert" type="function" />
<symbol module="public" address="0x8003ADC" name="osRtxThreadReadyPut" type="function" />
<symbol module="public" address="0x8003A72" name="osRtxThreadListSort" type="function" />
<symbol module="public" address="0x8003A4A" name="osRtxThreadListRemove" type="function" />
<symbol module="public" address="0x8003A64" name="osRtxThreadListRoot" type="function" />
<symbol module="public" address="0x8003A04" name="osRtxThreadListGet" type="function" />
<symbol module="public" address="0x8003A1C" name="osRtxThreadListPut" type="function" />
<symbol module="public" address="0x80006AC" name="__asm___12_rtx_thread_c_add96be5__atomic_wr8" type="function" />
<symbol module="public" address="0x80006BC" name="__asm___12_rtx_thread_c_add96be5__atomic_set32" type="function" />
<symbol module="public" address="0x80006D0" name="__asm___12_rtx_thread_c_add96be5__atomic_clr32" type="function" />
<symbol module="public" address="0x80006E6" name="__asm___12_rtx_thread_c_add96be5__atomic_chk32_all" type="function" />
<symbol module="public" address="0x800070C" name="__asm___12_rtx_thread_c_add96be5__atomic_chk32_any" type="function" />
<symbol module="public" address="0x800072E" name="__asm___12_rtx_thread_c_add96be5__atomic_inc32" type="function" />
<symbol module="public" address="0x8000740" name="__asm___12_rtx_thread_c_add96be5__atomic_inc32_lt" type="function" />
<symbol module="public" address="0x800075E" name="__asm___12_rtx_thread_c_add96be5__atomic_inc16_lt" type="function" />
<symbol module="public" address="0x800077C" name="__asm___12_rtx_thread_c_add96be5__atomic_inc16_lim" type="function" />
<symbol module="public" address="0x8000796" name="__asm___12_rtx_thread_c_add96be5__atomic_dec32_nz" type="function" />
<symbol module="public" address="0x80007B0" name="__asm___12_rtx_thread_c_add96be5__atomic_dec16_nz" type="function" />
<symbol module="public" address="0x80007CA" name="__asm___12_rtx_thread_c_add96be5__atomic_link_get" type="function" />
<symbol module="public" address="0x80007E4" name="__asm___12_rtx_thread_c_add96be5__atomic_link_put" type="function" />
<symbol module="public" address="0x8003704" name="osRtxPostProcess" type="function" />
<symbol module="public" address="0x80036A0" name="osRtxPendSV_Handler" type="function" />
<symbol module="public" address="0x8003BF0" name="osRtxTick_Handler" type="function" />
<symbol module="public" address="0x8000558" name="__asm___12_rtx_system_c_024f2f18__atomic_wr8" type="function" />
<symbol module="public" address="0x8000568" name="__asm___12_rtx_system_c_024f2f18__atomic_set32" type="function" />
<symbol module="public" address="0x800057C" name="__asm___12_rtx_system_c_024f2f18__atomic_clr32" type="function" />
<symbol module="public" address="0x8000592" name="__asm___12_rtx_system_c_024f2f18__atomic_chk32_all" type="function" />
<symbol module="public" address="0x80005B8" name="__asm___12_rtx_system_c_024f2f18__atomic_chk32_any" type="function" />
<symbol module="public" address="0x80005DA" name="__asm___12_rtx_system_c_024f2f18__atomic_inc32" type="function" />
<symbol module="public" address="0x80005EC" name="__asm___12_rtx_system_c_024f2f18__atomic_inc32_lt" type="function" />
<symbol module="public" address="0x800060A" name="__asm___12_rtx_system_c_024f2f18__atomic_inc16_lt" type="function" />
<symbol module="public" address="0x8000628" name="__asm___12_rtx_system_c_024f2f18__atomic_inc16_lim" type="function" />
<symbol module="public" address="0x8000642" name="__asm___12_rtx_system_c_024f2f18__atomic_dec32_nz" type="function" />
<symbol module="public" address="0x800065C" name="__asm___12_rtx_system_c_024f2f18__atomic_dec16_nz" type="function" />
<symbol module="public" address="0x8000676" name="__asm___12_rtx_system_c_024f2f18__atomic_link_get" type="function" />
<symbol module="public" address="0x8000690" name="__asm___12_rtx_system_c_024f2f18__atomic_link_put" type="function" />
<symbol module="public" address="0x80031EC" name="osMutexDelete" type="function" />
<symbol module="public" address="0x8003298" name="osMutexRelease" type="function" />
<symbol module="public" address="0x80031A8" name="osMutexAcquire" type="function" />
<symbol module="public" address="0x800322C" name="osMutexNew" type="function" />
<symbol module="public" address="0x80046E4" name="svcRtxMutexDelete" type="function" />
<symbol module="public" address="0x8004888" name="svcRtxMutexRelease" type="function" />
<symbol module="public" address="0x80045DC" name="svcRtxMutexAcquire" type="function" />
<symbol module="public" address="0x80047D8" name="svcRtxMutexNew" type="function" />
<symbol module="public" address="0x800364C" name="osRtxMutexOwnerRelease" type="function" />
<symbol module="public" address="0x8003080" name="osMessageQueueGet" type="function" />
<symbol module="public" address="0x8003154" name="osMessageQueuePut" type="function" />
<symbol module="public" address="0x80030D4" name="osMessageQueueNew" type="function" />
<symbol module="public" address="0x80041F4" name="svcRtxMessageQueueGet" type="function" />
<symbol module="public" address="0x80044C4" name="svcRtxMessageQueuePut" type="function" />
<symbol module="public" address="0x8004324" name="svcRtxMessageQueueNew" type="function" />
<symbol module="public" address="0x800353A" name="osRtxMessageQueuePostProcess" type="function" />
<symbol module="public" address="0x8000404" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_wr8" type="function" />
<symbol module="public" address="0x8000414" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_set32" type="function" />
<symbol module="public" address="0x8000428" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_clr32" type="function" />
<symbol module="public" address="0x800043E" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_chk32_all" type="function" />
<symbol module="public" address="0x8000464" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_chk32_any" type="function" />
<symbol module="public" address="0x8000486" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_inc32" type="function" />
<symbol module="public" address="0x8000498" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_inc32_lt" type="function" />
<symbol module="public" address="0x80004B6" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_inc16_lt" type="function" />
<symbol module="public" address="0x80004D4" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_inc16_lim" type="function" />
<symbol module="public" address="0x80004EE" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_dec32_nz" type="function" />
<symbol module="public" address="0x8000508" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_dec16_nz" type="function" />
<symbol module="public" address="0x8000522" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_link_get" type="function" />
<symbol module="public" address="0x800053C" name="__asm___14_rtx_msgqueue_c_3fd3b50e__atomic_link_put" type="function" />
<symbol module="public" address="0x800349C" name="osRtxMemoryPoolFree" type="function" />
<symbol module="public" address="0x8003462" name="osRtxMemoryPoolAlloc" type="function" />
<symbol module="public" address="0x80034EA" name="osRtxMemoryPoolInit" type="function" />
<symbol module="public" address="0x80002B0" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_wr8" type="function" />
<symbol module="public" address="0x80002C0" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_set32" type="function" />
<symbol module="public" address="0x80002D4" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_clr32" type="function" />
<symbol module="public" address="0x80002EA" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_chk32_all" type="function" />
<symbol module="public" address="0x8000310" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_chk32_any" type="function" />
<symbol module="public" address="0x8000332" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_inc32" type="function" />
<symbol module="public" address="0x8000344" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_inc32_lt" type="function" />
<symbol module="public" address="0x8000362" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_inc16_lt" type="function" />
<symbol module="public" address="0x8000380" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_inc16_lim" type="function" />
<symbol module="public" address="0x800039A" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_dec32_nz" type="function" />
<symbol module="public" address="0x80003B4" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_dec16_nz" type="function" />
<symbol module="public" address="0x80003CE" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_link_get" type="function" />
<symbol module="public" address="0x80003E8" name="__asm___13_rtx_mempool_c_7914b4c7__atomic_link_put" type="function" />
<symbol module="public" address="0x80033AA" name="osRtxMemoryFree" type="function" />
<symbol module="public" address="0x8003308" name="osRtxMemoryAlloc" type="function" />
<symbol module="public" address="0x8003410" name="osRtxMemoryInit" type="function" />
<symbol module="public" address="0x8002C4E" name="_mutex_free" type="function" />
<symbol module="public" address="0x8002C7A" name="_mutex_release" type="function" />
<symbol module="public" address="0x8002C38" name="_mutex_acquire" type="function" />
<symbol module="public" address="0x8002C5A" name="_mutex_initialize" type="function" />
<symbol module="public" address="0x8002BC8" name="__user_perthread_libspace" type="function" />
<symbol module="public" address="0x8002C8C" name="_platform_post_stackheap_init" type="function" />
<symbol module="public" address="0x8005664" name="osRtxUserSVC" type="array[1] of ptr4" />
<symbol module="public" address="0x80057C4" name="osRtxConfig" type="struct &lt;untagged&gt;" />
<symbol module="public" address="0x200114E0" name="irqRtxLibRef" type="ptr4" />
<symbol module="public" address="0x800301C" name="osKernelStart" type="function" />
<symbol module="public" address="0x8002F74" name="osKernelGetState" type="function" />
<symbol module="public" address="0x8002FB8" name="osKernelInitialize" type="function" />
<symbol module="public" address="0x8003E48" name="svcRtxKernelGetState" type="function" />
<symbol module="public" address="0x80040FC" name="svcRtxKernelStart" type="function" />
<symbol module="public" address="0x8003E5C" name="svcRtxKernelInitialize" type="function" />
<symbol module="public" address="0x200114F0" name="osRtxInfo" type="struct &lt;untagged&gt;" />
<symbol module="public" address="0x8001214" name="EvrRtxMessageQueueNotRetrieved" type="function" />
<symbol module="public" address="0x8001280" name="EvrRtxMessageQueueRetrieved" type="function" />
<symbol module="public" address="0x8001188" name="EvrRtxMessageQueueGetTimeout" type="function" />
<symbol module="public" address="0x8001168" name="EvrRtxMessageQueueGetPending" type="function" />
<symbol module="public" address="0x8001148" name="EvrRtxMessageQueueGet" type="function" />
<symbol module="public" address="0x80011FC" name="EvrRtxMessageQueueNotInserted" type="function" />
<symbol module="public" address="0x80011B4" name="EvrRtxMessageQueueInserted" type="function" />
<symbol module="public" address="0x800119C" name="EvrRtxMessageQueueInsertPending" type="function" />
<symbol module="public" address="0x800126C" name="EvrRtxMessageQueuePutTimeout" type="function" />
<symbol module="public" address="0x800124C" name="EvrRtxMessageQueuePutPending" type="function" />
<symbol module="public" address="0x800122C" name="EvrRtxMessageQueuePut" type="function" />
<symbol module="public" address="0x8001120" name="EvrRtxMessageQueueCreated" type="function" />
<symbol module="public" address="0x80011CC" name="EvrRtxMessageQueueNew" type="function" />
<symbol module="public" address="0x8001134" name="EvrRtxMessageQueueError" type="function" />
<symbol module="public" address="0x800110C" name="EvrRtxMemoryPoolAllocTimeout" type="function" />
<symbol module="public" address="0x80013A4" name="EvrRtxSemaphoreAcquireTimeout" type="function" />
<symbol module="public" address="0x8001318" name="EvrRtxMutexDestroyed" type="function" />
<symbol module="public" address="0x8001304" name="EvrRtxMutexDelete" type="function" />
<symbol module="public" address="0x800138C" name="EvrRtxMutexReleased" type="function" />
<symbol module="public" address="0x8001378" name="EvrRtxMutexRelease" type="function" />
<symbol module="public" address="0x8001364" name="EvrRtxMutexNotAcquired" type="function" />
<symbol module="public" address="0x80012D8" name="EvrRtxMutexAcquired" type="function" />
<symbol module="public" address="0x80012C4" name="EvrRtxMutexAcquireTimeout" type="function" />
<symbol module="public" address="0x80012B0" name="EvrRtxMutexAcquirePending" type="function" />
<symbol module="public" address="0x8001298" name="EvrRtxMutexAcquire" type="function" />
<symbol module="public" address="0x80012F0" name="EvrRtxMutexCreated" type="function" />
<symbol module="public" address="0x8001340" name="EvrRtxMutexNew" type="function" />
<symbol module="public" address="0x800132C" name="EvrRtxMutexError" type="function" />
<symbol module="public" address="0x8000FCC" name="EvrRtxEventFlagsWaitTimeout" type="function" />
<symbol module="public" address="0x8001500" name="EvrRtxTimerCallback" type="function" />
<symbol module="public" address="0x80013F8" name="EvrRtxThreadDelayCompleted" type="function" />
<symbol module="public" address="0x80013E4" name="EvrRtxThreadDelay" type="function" />
<symbol module="public" address="0x8001448" name="EvrRtxThreadFlagsWaitCompleted" type="function" />
<symbol module="public" address="0x8001468" name="EvrRtxThreadFlagsWaitTimeout" type="function" />
<symbol module="public" address="0x800140C" name="EvrRtxThreadDestroyed" type="function" />
<symbol module="public" address="0x8001434" name="EvrRtxThreadExit" type="function" />
<symbol module="public" address="0x80014D4" name="EvrRtxThreadSwitch" type="function" />
<symbol module="public" address="0x80014E8" name="EvrRtxThreadUnblocked" type="function" />
<symbol module="public" address="0x80013B8" name="EvrRtxThreadBlocked" type="function" />
<symbol module="public" address="0x8001490" name="EvrRtxThreadJoined" type="function" />
<symbol module="public" address="0x800147C" name="EvrRtxThreadGetId" type="function" />
<symbol module="public" address="0x80013D0" name="EvrRtxThreadCreated" type="function" />
<symbol module="public" address="0x80014A4" name="EvrRtxThreadNew" type="function" />
<symbol module="public" address="0x8001420" name="EvrRtxThreadError" type="function" />
<symbol module="public" address="0x8001044" name="EvrRtxKernelStarted" type="function" />
<symbol module="public" address="0x8001030" name="EvrRtxKernelStart" type="function" />
<symbol module="public" address="0x8000FF4" name="EvrRtxKernelGetState" type="function" />
<symbol module="public" address="0x800101C" name="EvrRtxKernelInitializeCompleted" type="function" />
<symbol module="public" address="0x8001008" name="EvrRtxKernelInitialize" type="function" />
<symbol module="public" address="0x8000FE0" name="EvrRtxKernelError" type="function" />
<symbol module="public" address="0x8001090" name="EvrRtxMemoryBlockFree" type="function" />
<symbol module="public" address="0x8001078" name="EvrRtxMemoryBlockAlloc" type="function" />
<symbol module="public" address="0x80010B0" name="EvrRtxMemoryBlockInit" type="function" />
<symbol module="public" address="0x80010D0" name="EvrRtxMemoryFree" type="function" />
<symbol module="public" address="0x8001058" name="EvrRtxMemoryAlloc" type="function" />
<symbol module="public" address="0x80010F0" name="EvrRtxMemoryInit" type="function" />
<symbol module="public" address="0x8002F30" name="osDelay" type="function" />
<symbol module="public" address="0x8003E30" name="svcRtxDelay" type="function" />
<symbol module="public" address="0x8000800" name="SVC_Handler" type="function" />
<symbol module="public" address="0x800088C" name="PendSV_Handler" type="function" />
<symbol module="public" address="0x800089C" name="SysTick_Handler" type="function" />
<symbol module="public" address="0x8002EC4" name="main" type="function" />
<symbol module="public" address="0x8002198" name="Thread_3" type="function" />
<symbol module="public" address="0x8002118" name="Thread_2" type="function" />
<symbol module="public" address="0x80020F6" name="Thread_1" type="function" />
<symbol module="public" address="0x8001F24" name="SystemClock_Config" type="function" />
<symbol module="public" address="0x200114D0" name="thread1" type="ptr4" />
<symbol module="public" address="0x200114D4" name="thread2" type="ptr4" />
<symbol module="public" address="0x200114D8" name="thread3" type="ptr4" />
<symbol module="public" address="0x200114DC" name="thread4" type="ptr4" />
<symbol module="public" address="0x8005570" name="thread1_attr" type="struct &lt;untagged&gt;" />
<symbol module="public" address="0x8005594" name="thread2_attr" type="struct &lt;untagged&gt;" />
<symbol module="public" address="0x80055B8" name="thread3_attr" type="struct &lt;untagged&gt;" />
<symbol module="public" address="0x80055DC" name="thread4_attr" type="struct &lt;untagged&gt;" />
<symbol module="public" address="0xE000E004" name="NVIC_ICTR" type="ulong" />
<symbol module="public" address="0xE000E010" name="NVIC_ST_CTRL_STAT" type="ulong" />
<symbol module="public" address="0xE000E014" name="NVIC_ST_RELOAD" type="ulong" />
<symbol module="public" address="0xE000E018" name="NVIC_ST_CURRENT" type="ulong" />
<symbol module="public" address="0xE000E01C" name="NVIC_ST_CALIB" type="ulong" />
<symbol module="public" address="0xE000E100" name="NVIC_ISER0" type="ulong" />
<symbol module="public" address="0xE000E104" name="NVIC_ISER1" type="ulong" />
<symbol module="public" address="0xE000E108" name="NVIC_ISER2" type="ulong" />
<symbol module="public" address="0xE000E10C" name="NVIC_ISER3" type="ulong" />
<symbol module="public" address="0xE000E110" name="NVIC_ISER4" type="ulong" />
<symbol module="public" address="0xE000E114" name="NVIC_ISER5" type="ulong" />
<symbol module="public" address="0xE000E118" name="NVIC_ISER6" type="ulong" />
<symbol module="public" address="0xE000E11C" name="NVIC_ISER7" type="ulong" />
<symbol module="public" address="0xE000E180" name="NVIC_ICER0" type="ulong" />
<symbol module="public" address="0xE000E184" name="NVIC_ICER1" type="ulong" />
<symbol module="public" address="0xE000E188" name="NVIC_ICER2" type="ulong" />
<symbol module="public" address="0xE000E18C" name="NVIC_ICER3" type="ulong" />
<symbol module="public" address="0xE000E190" name="NVIC_ICER4" type="ulong" />
<symbol module="public" address="0xE000E194" name="NVIC_ICER5" type="ulong" />
<symbol module="public" address="0xE000E198" name="NVIC_ICER6" type="ulong" />
<symbol module="public" address="0xE000E19C" name="NVIC_ICER7" type="ulong" />
<symbol module="public" address="0xE000E200" name="NVIC_ISPR0" type="ulong" />
<symbol module="public" address="0xE000E204" name="NVIC_ISPR1" type="ulong" />
<symbol module="public" address="0xE000E208" name="NVIC_ISPR2" type="ulong" />
<symbol module="public" address="0xE000E20C" name="NVIC_ISPR3" type="ulong" />
<symbol module="public" address="0xE000E210" name="NVIC_ISPR4" type="ulong" />
<symbol module="public" address="0xE000E214" name="NVIC_ISPR5" type="ulong" />
<symbol module="public" address="0xE000E218" name="NVIC_ISPR6" type="ulong" />
<symbol module="public" address="0xE000E21C" name="NVIC_ISPR7" type="ulong" />
<symbol module="public" address="0xE000E280" name="NVIC_ICPR0" type="ulong" />
<symbol module="public" address="0xE000E284" name="NVIC_ICPR1" type="ulong" />
<symbol module="public" address="0xE000E288" name="NVIC_ICPR2" type="ulong" />
<symbol module="public" address="0xE000E28C" name="NVIC_ICPR3" type="ulong" />
<symbol module="public" address="0xE000E290" name="NVIC_ICPR4" type="ulong" />
<symbol module="public" address="0xE000E294" name="NVIC_ICPR5" type="ulong" />
<symbol module="public" address="0xE000E298" name="NVIC_ICPR6" type="ulong" />
<symbol module="public" address="0xE000E29C" name="NVIC_ICPR7" type="ulong" />
<symbol module="public" address="0xE000E300" name="NVIC_IABR0" type="ulong" />
<symbol module="public" address="0xE000E304" name="NVIC_IABR1" type="ulong" />
<symbol module="public" address="0xE000E308" name="NVIC_IABR2" type="ulong" />
<symbol module="public" address="0xE000E30C" name="NVIC_IABR3" type="ulong" />
<symbol module="public" address="0xE000E310" name="NVIC_IABR4" type="ulong" />
<symbol module="public" address="0xE000E314" name="NVIC_IABR5" type="ulong" />
<symbol module="public" address="0xE000E318" name="NVIC_IABR6" type="ulong" />
<symbol module="public" address="0xE000E31C" name="NVIC_IABR7" type="ulong" />
<symbol module="public" address="0xE000E400" name="NVIC_IPRI0" type="ulong" />
<symbol module="public" address="0xE000E404" name="NVIC_IPRI1" type="ulong" />
<symbol module="public" address="0xE000E408" name="NVIC_IPRI2" type="ulong" />
<symbol module="public" address="0xE000E40C" name="NVIC_IPRI3" type="ulong" />
<symbol module="public" address="0xE000E410" name="NVIC_IPRI4" type="ulong" />
<symbol module="public" address="0xE000E414" name="NVIC_IPRI5" type="ulong" />
<symbol module="public" address="0xE000E418" name="NVIC_IPRI6" type="ulong" />
<symbol module="public" address="0xE000E41C" name="NVIC_IPRI7" type="ulong" />
<symbol module="public" address="0xE000E420" name="NVIC_IPRI8" type="ulong" />
<symbol module="public" address="0xE000E424" name="NVIC_IPRI9" type="ulong" />
<symbol module="public" address="0xE000E428" name="NVIC_IPRI10" type="ulong" />
<symbol module="public" address="0xE000E42C" name="NVIC_IPRI11" type="ulong" />
<symbol module="public" address="0xE000E430" name="NVIC_IPRI12" type="ulong" />
<symbol module="public" address="0xE000E434" name="NVIC_IPRI13" type="ulong" />
<symbol module="public" address="0xE000E438" name="NVIC_IPRI14" type="ulong" />
<symbol module="public" address="0xE000E43C" name="NVIC_IPRI15" type="ulong" />
<symbol module="public" address="0xE000E440" name="NVIC_IPRI16" type="ulong" />
<symbol module="public" address="0xE000E444" name="NVIC_IPRI17" type="ulong" />
<symbol module="public" address="0xE000E448" name="NVIC_IPRI18" type="ulong" />
<symbol module="public" address="0xE000E44C" name="NVIC_IPRI19" type="ulong" />
<symbol module="public" address="0xE000E450" name="NVIC_IPRI20" type="ulong" />
<symbol module="public" address="0xE000E454" name="NVIC_IPRI21" type="ulong" />
<symbol module="public" address="0xE000E458" name="NVIC_IPRI22" type="ulong" />
<symbol module="public" address="0xE000E45C" name="NVIC_IPRI23" type="ulong" />
<symbol module="public" address="0xE000E460" name="NVIC_IPRI24" type="ulong" />
<symbol module="public" address="0xE000E464" name="NVIC_IPRI25" type="ulong" />
<symbol module="public" address="0xE000E468" name="NVIC_IPRI26" type="ulong" />
<symbol module="public" address="0xE000E46C" name="NVIC_IPRI27" type="ulong" />
<symbol module="public" address="0xE000E470" name="NVIC_IPRI28" type="ulong" />
<symbol module="public" address="0xE000E474" name="NVIC_IPRI29" type="ulong" />
<symbol module="public" address="0xE000E478" name="NVIC_IPRI30" type="ulong" />
<symbol module="public" address="0xE000E47C" name="NVIC_IPRI31" type="ulong" />
<symbol module="public" address="0xE000E480" name="NVIC_IPRI32" type="ulong" />
<symbol module="public" address="0xE000E484" name="NVIC_IPRI33" type="ulong" />
<symbol module="public" address="0xE000E488" name="NVIC_IPRI34" type="ulong" />
<symbol module="public" address="0xE000E48C" name="NVIC_IPRI35" type="ulong" />
<symbol module="public" address="0xE000E490" name="NVIC_IPRI36" type="ulong" />
<symbol module="public" address="0xE000E494" name="NVIC_IPRI37" type="ulong" />
<symbol module="public" address="0xE000E498" name="NVIC_IPRI38" type="ulong" />
<symbol module="public" address="0xE000E49C" name="NVIC_IPRI39" type="ulong" />
<symbol module="public" address="0xE000E4A0" name="NVIC_IPRI40" type="ulong" />
<symbol module="public" address="0xE000E4A4" name="NVIC_IPRI41" type="ulong" />
<symbol module="public" address="0xE000E4A8" name="NVIC_IPRI42" type="ulong" />
<symbol module="public" address="0xE000E4AC" name="NVIC_IPRI43" type="ulong" />
<symbol module="public" address="0xE000E4B0" name="NVIC_IPRI44" type="ulong" />
<symbol module="public" address="0xE000E4B4" name="NVIC_IPRI45" type="ulong" />
<symbol module="public" address="0xE000E4B8" name="NVIC_IPRI46" type="ulong" />
<symbol module="public" address="0xE000E4BC" name="NVIC_IPRI47" type="ulong" />
<symbol module="public" address="0xE000E4C0" name="NVIC_IPRI48" type="ulong" />
<symbol module="public" address="0xE000E4C4" name="NVIC_IPRI49" type="ulong" />
<symbol module="public" address="0xE000E4C8" name="NVIC_IPRI50" type="ulong" />
<symbol module="public" address="0xE000E4CC" name="NVIC_IPRI51" type="ulong" />
<symbol module="public" address="0xE000E4D0" name="NVIC_IPRI52" type="ulong" />
<symbol module="public" address="0xE000E4D4" name="NVIC_IPRI53" type="ulong" />
<symbol module="public" address="0xE000E4D8" name="NVIC_IPRI54" type="ulong" />
<symbol module="public" address="0xE000E4DC" name="NVIC_IPRI55" type="ulong" />
<symbol module="public" address="0xE000E4E0" name="NVIC_IPRI56" type="ulong" />
<symbol module="public" address="0xE000E4E4" name="NVIC_IPRI57" type="ulong" />
<symbol module="public" address="0xE000E4E8" name="NVIC_IPRI58" type="ulong" />
<symbol module="public" address="0xE000E4EC" name="NVIC_IPRI59" type="ulong" />
<symbol module="public" address="0xE000ED00" name="NVIC_CPU_ID" type="ulong" />
<symbol module="public" address="0xE000ED04" name="NVIC_INT_CTRL_ST" type="ulong" />
<symbol module="public" address="0xE000ED08" name="NVIC_VTO" type="ulong" />
<symbol module="public" address="0xE000ED0C" name="NVIC_AIRC" type="ulong" />
<symbol module="public" address="0xE000ED10" name="NVIC_SYS_CTRL" type="ulong" />
<symbol module="public" address="0xE000ED14" name="NVIC_CFG_CTRL" type="ulong" />
<symbol module="public" address="0xE000ED18" name="NVIC_SYSH_PRI1" type="ulong" />
<symbol module="public" address="0xE000ED1C" name="NVIC_SYSH_PRI2" type="ulong" />
<symbol module="public" address="0xE000ED20" name="NVIC_SYSH_PRI3" type="ulong" />
<symbol module="public" address="0xE000ED24" name="NVIC_SYSH_CTRL_ST" type="ulong" />
<symbol module="public" address="0xE000ED28" name="NVIC_FAULT_STAT" type="ulong" />
<symbol module="public" address="0xE000ED28" name="NVIC_MM_FAULT_STAT" type="uchar" />
<symbol module="public" address="0xE000ED29" name="NVIC_BUS_FAULT_STAT" type="uchar" />
<symbol module="public" address="0xE000ED2A" name="NVIC_USG_FAULT_STAT" type="ushort" />
<symbol module="public" address="0xE000ED2C" name="NVIC_HARD_FAULT_STAT" type="ulong" />
<symbol module="public" address="0xE000ED30" name="NVIC_DBG_FAULT_STAT" type="ulong" />
<symbol module="public" address="0xE000ED34" name="NVIC_MM_FAULT_ADDR" type="ulong" />
<symbol module="public" address="0xE000ED38" name="NVIC_BUS_FAULT_ADDR" type="ulong" />
<symbol module="public" address="0xE000EF00" name="NVIC_SW_TRIG_INT" type="ulong" />
<symbol module="public" address="0xE000ED90" name="MPU_TYPE" type="ulong" />
<symbol module="public" address="0xE000ED94" name="MPU_CONTROL" type="ulong" />
<symbol module="public" address="0xE000ED98" name="MPU_REGION_NUM" type="ulong" />
<symbol module="public" address="0xE000ED9C" name="MPU_BASE_ADDR" type="ulong" />
<symbol module="public" address="0xE000EDA0" name="MPU_ATTR_SIZE" type="ulong" />
<symbol module="public" address="0xE000EDA4" name="MPU_BASE_ADDR_1" type="ulong" />
<symbol module="public" address="0xE000EDA8" name="MPU_ATTR_SIZE_1" type="ulong" />
<symbol module="public" address="0xE000EDAC" name="MPU_BASE_ADDR_2" type="ulong" />
<symbol module="public" address="0xE000EDB0" name="MPU_ATTR_SIZE_2" type="ulong" />
<symbol module="public" address="0xE000EDB4" name="MPU_BASE_ADDR_3" type="ulong" />
<symbol module="public" address="0xE000EDB8" name="MPU_ATTR_SIZE_3" type="ulong" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008B8" name="Reset_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008C0" name="NMI_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008C2" name="HardFault_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008C4" name="MemManage_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008C6" name="BusFault_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008C8" name="UsageFault_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008CA" name="SVC_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008CC" name="DebugMon_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008CE" name="PendSV_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008D0" name="SysTick_Handler" type="function" />
<symbol module="RTE/Device/STM32F746NGHx/startup_stm32f746xx.s" address="0x80008D2" name="Default_Handler" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/STM32F7xx_DFP/2.9.0/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c" address="0x800224C" name="__NVIC_GetPriorityGrouping" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/STM32F7xx_DFP/2.9.0/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c" address="0x800225C" name="__NVIC_SetPriority" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x20011600" name="EventBuffer" type="array[1024] of struct &lt;untagged&gt;" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x20015600" name="EventFilter" type="array[128] of uchar" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x20015680" name="EventStatus" type="struct &lt;untagged&gt;" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x8001518" name="GetContext" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x8000B34" name="EventGetTS" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x8000B0C" name="EventCheckFilter" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x8000D34" name="EventRecordItem" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x8002CD0" name="crc16_ccitt" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x8002CBE" name="atomic_xch32" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x8002C94" name="atomic_inc32" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/Keil/ARM_Compiler/1.3.3/Source/EventRecorder.c" address="0x8002CA8" name="atomic_inc8" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/Source/os_systick.c" address="0x200114E5" name="PendST" type="uchar" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_timer.c" address="0x8002204" name="TimerUnlink" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_timer.c" address="0x80021C4" name="TimerInsert" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_thread.c" address="0x8003B0C" name="osRtxThreadSetRunning" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_thread.c" address="0x80039F8" name="osRtxThreadGetRunning" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_thread.c" address="0x80032FC" name="osRtxKernelGetState" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_thread.c" address="0x8002296" name="__get_BASEPRI" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_thread.c" address="0x80022CC" name="__get_PRIMASK" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_thread.c" address="0x80022B4" name="__get_IPSR" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_thread.c" address="0x8003998" name="osRtxThreadFree" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_thread.c" address="0x80020A0" name="ThreadFlagsCheck" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_system.c" address="0x8002E58" name="isr_queue_get" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_system.c" address="0x8002E88" name="isr_queue_put" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_mutex.c" address="0x8002290" name="__get_BASEPRI" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_mutex.c" address="0x80022C6" name="__get_PRIMASK" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_mutex.c" address="0x80022AE" name="__get_IPSR" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" address="0x8002D2A" name="isrRtxMessageQueueGet" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" address="0x8002DBA" name="isrRtxMessageQueuePut" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" address="0x800228A" name="__get_BASEPRI" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" address="0x80022C0" name="__get_PRIMASK" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" address="0x80022A8" name="__get_IPSR" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" address="0x8001E6E" name="MessageQueueRemove" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" address="0x8001DEC" name="MessageQueueGet" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" address="0x8001E22" name="MessageQueuePut" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x20010000" name="os_mem" type="array[512] of uint64" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x20011000" name="os_isr_queue" type="array[16] of ptr4" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x20011040" name="os_libspace" type="array[5][24] of uint" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x20011220" name="os_libspace_id" type="array[4] of ptr4" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x200112B4" name="os_idle_thread_cb" type="struct osRtxThread_s" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x200112F8" name="os_timer_thread_cb" type="struct osRtxThread_s" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x20011340" name="os_idle_thread_stack" type="array[25] of uint64" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x20011408" name="os_timer_thread_stack" type="array[25] of uint64" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x8005604" name="os_idle_thread_attr" type="struct &lt;untagged&gt;" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x8005628" name="os_timer_thread_attr" type="struct &lt;untagged&gt;" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x800564C" name="os_timer_mq_attr" type="struct &lt;untagged&gt;" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x20011230" name="os_timer_mq_cb" type="struct osRtxMessageQueue_s" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x20011264" name="os_timer_mq_data" type="array[20] of uint" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_lib.c" address="0x8003E0C" name="os_kernel_is_active" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_kernel.c" address="0x8002284" name="__get_BASEPRI" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_kernel.c" address="0x80022BA" name="__get_PRIMASK" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_kernel.c" address="0x80022A2" name="__get_IPSR" type="function" />
<symbol module="C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.1.1/CMSIS/RTOS2/RTX/Source/rtx_kernel.c" address="0x800229C" name="__get_CONTROL" type="function" />
</symbols>
<definitions>
<definition name="IdleThread.ThreadId" value="0x200112B4" />
<definition name="SystemHeap.Address" value="0x20010000" />
<definition name="SystemHeap.Size" value="0x00001000" />
<definition name="TimerThread.ThreadId" value="0x200112F8" />
<definition name="TimerThread.MessageQueue.QueueId" value="0x20011230" />
</definitions>
<memorystrings />
<threads>
<thread id="0x20010010" priority="24" createdAt="39241" functionAddress="0x80020F6" />
</threads>
</metadata>

BIN
trace/tracedata.evr Normal file

Binary file not shown.