Initial commit
This commit is contained in:
commit
23ffd43eb8
79
.gitignore
vendored
Normal file
79
.gitignore
vendored
Normal 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
|
76
DebugConfig/Target_1_STM32F746NGHx_2.0.0.dbgconf
Normal file
76
DebugConfig/Target_1_STM32F746NGHx_2.0.0.dbgconf
Normal 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 >>>
|
9
EventRecorderStub.scvd
Normal file
9
EventRecorderStub.scvd
Normal 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>
|
64
RTE/CMSIS/RTX_Config.c
Normal file
64
RTE/CMSIS/RTX_Config.c
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2013-2021 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.1
|
||||||
|
*
|
||||||
|
* 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 osRtxErrorStackOverflow:
|
||||||
|
// Stack overflow 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:
|
||||||
|
// Reserved
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (;;) {}
|
||||||
|
//return 0U;
|
||||||
|
}
|
580
RTE/CMSIS/RTX_Config.h
Normal file
580
RTE/CMSIS/RTX_Config.h
Normal file
@ -0,0 +1,580 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2013-2021 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.5.2
|
||||||
|
*
|
||||||
|
* Project: CMSIS-RTOS RTX
|
||||||
|
* Title: RTX Configuration definitions
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTX_CONFIG_H_
|
||||||
|
#define RTX_CONFIG_H_
|
||||||
|
|
||||||
|
#ifdef _RTE_
|
||||||
|
#include "RTE_Components.h"
|
||||||
|
#ifdef RTE_RTX_CONFIG_H
|
||||||
|
#include RTE_RTX_CONFIG_H
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//-------- <<< 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: 32768
|
||||||
|
#ifndef OS_DYNAMIC_MEM_SIZE
|
||||||
|
#define OS_DYNAMIC_MEM_SIZE 32768
|
||||||
|
#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>
|
||||||
|
|
||||||
|
// <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
|
||||||
|
|
||||||
|
// <q>Object Memory usage counters
|
||||||
|
// <i> Enables object memory usage counters (requires RTX source variant).
|
||||||
|
#ifndef OS_OBJ_MEM_USAGE
|
||||||
|
#define OS_OBJ_MEM_USAGE 0
|
||||||
|
#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: 3072
|
||||||
|
#ifndef OS_STACK_SIZE
|
||||||
|
#define OS_STACK_SIZE 3072
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <o>Idle Thread Stack size [bytes] <72-1073741824:8>
|
||||||
|
// <i> Defines stack size for Idle thread.
|
||||||
|
// <i> Default: 512
|
||||||
|
#ifndef OS_IDLE_THREAD_STACK_SIZE
|
||||||
|
#define OS_IDLE_THREAD_STACK_SIZE 512
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <o>Idle Thread TrustZone Module Identifier
|
||||||
|
// <i> Defines TrustZone Thread Context Management Identifier.
|
||||||
|
// <i> Applies only to cores with TrustZone technology.
|
||||||
|
// <i> Default: 0 (not used)
|
||||||
|
#ifndef OS_IDLE_THREAD_TZ_MOD_ID
|
||||||
|
#define OS_IDLE_THREAD_TZ_MOD_ID 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Stack overrun checking
|
||||||
|
// <i> Enables stack overrun check at thread switch (requires RTX source variant).
|
||||||
|
// <i> Enabling this option increases slightly the execution time of a thread switch.
|
||||||
|
#ifndef OS_STACK_CHECK
|
||||||
|
#define OS_STACK_CHECK 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Stack usage watermark
|
||||||
|
// <i> Initializes 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 0
|
||||||
|
#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: 512
|
||||||
|
#ifndef OS_TIMER_THREAD_STACK_SIZE
|
||||||
|
#define OS_TIMER_THREAD_STACK_SIZE 512
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <o>Timer Thread TrustZone Module Identifier
|
||||||
|
// <i> Defines TrustZone Thread Context Management Identifier.
|
||||||
|
// <i> Applies only to cores with TrustZone technology.
|
||||||
|
// <i> Default: 0 (not used)
|
||||||
|
#ifndef OS_TIMER_THREAD_TZ_MOD_ID
|
||||||
|
#define OS_TIMER_THREAD_TZ_MOD_ID 0
|
||||||
|
#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>
|
||||||
|
|
||||||
|
// <h>Event Recorder Configuration
|
||||||
|
// ===============================
|
||||||
|
|
||||||
|
// <e>Global Initialization
|
||||||
|
// <i> Initialize Event Recorder during 'osKernelInitialize'.
|
||||||
|
#ifndef OS_EVR_INIT
|
||||||
|
#define OS_EVR_INIT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Start recording
|
||||||
|
// <i> Start event recording after initialization.
|
||||||
|
#ifndef OS_EVR_START
|
||||||
|
#define OS_EVR_START 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <h>Global Event Filter Setup
|
||||||
|
// <i> Initial recording level applied to all components.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </h>
|
||||||
|
#ifndef OS_EVR_LEVEL
|
||||||
|
#define OS_EVR_LEVEL 0x00U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <h>RTOS Event Filter Setup
|
||||||
|
// <i> Recording levels for RTX components.
|
||||||
|
// <i> Only applicable if events for the respective component are generated.
|
||||||
|
|
||||||
|
// <e.7>Memory Management
|
||||||
|
// <i> Recording level for Memory Management events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_MEMORY_LEVEL
|
||||||
|
#define OS_EVR_MEMORY_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Kernel
|
||||||
|
// <i> Recording level for Kernel events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_KERNEL_LEVEL
|
||||||
|
#define OS_EVR_KERNEL_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Thread
|
||||||
|
// <i> Recording level for Thread events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_THREAD_LEVEL
|
||||||
|
#define OS_EVR_THREAD_LEVEL 0x85U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Generic Wait
|
||||||
|
// <i> Recording level for Generic Wait events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_WAIT_LEVEL
|
||||||
|
#define OS_EVR_WAIT_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Thread Flags
|
||||||
|
// <i> Recording level for Thread Flags events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_THFLAGS_LEVEL
|
||||||
|
#define OS_EVR_THFLAGS_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Event Flags
|
||||||
|
// <i> Recording level for Event Flags events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_EVFLAGS_LEVEL
|
||||||
|
#define OS_EVR_EVFLAGS_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Timer
|
||||||
|
// <i> Recording level for Timer events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_TIMER_LEVEL
|
||||||
|
#define OS_EVR_TIMER_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Mutex
|
||||||
|
// <i> Recording level for Mutex events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_MUTEX_LEVEL
|
||||||
|
#define OS_EVR_MUTEX_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Semaphore
|
||||||
|
// <i> Recording level for Semaphore events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_SEMAPHORE_LEVEL
|
||||||
|
#define OS_EVR_SEMAPHORE_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Memory Pool
|
||||||
|
// <i> Recording level for Memory Pool events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_MEMPOOL_LEVEL
|
||||||
|
#define OS_EVR_MEMPOOL_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e.7>Message Queue
|
||||||
|
// <i> Recording level for Message Queue events.
|
||||||
|
// <o.0>Error events
|
||||||
|
// <o.1>API function call events
|
||||||
|
// <o.2>Operation events
|
||||||
|
// <o.3>Detailed operation events
|
||||||
|
// </e>
|
||||||
|
#ifndef OS_EVR_MSGQUEUE_LEVEL
|
||||||
|
#define OS_EVR_MSGQUEUE_LEVEL 0x81U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <h>RTOS Event Generation
|
||||||
|
// <i> Enables event generation for RTX components (requires RTX source variant).
|
||||||
|
|
||||||
|
// <q>Memory Management
|
||||||
|
// <i> Enables Memory Management event generation.
|
||||||
|
#ifndef OS_EVR_MEMORY
|
||||||
|
#define OS_EVR_MEMORY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Kernel
|
||||||
|
// <i> Enables Kernel event generation.
|
||||||
|
#ifndef OS_EVR_KERNEL
|
||||||
|
#define OS_EVR_KERNEL 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Thread
|
||||||
|
// <i> Enables Thread event generation.
|
||||||
|
#ifndef OS_EVR_THREAD
|
||||||
|
#define OS_EVR_THREAD 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Generic Wait
|
||||||
|
// <i> Enables Generic Wait event generation.
|
||||||
|
#ifndef OS_EVR_WAIT
|
||||||
|
#define OS_EVR_WAIT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Thread Flags
|
||||||
|
// <i> Enables Thread Flags event generation.
|
||||||
|
#ifndef OS_EVR_THFLAGS
|
||||||
|
#define OS_EVR_THFLAGS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Event Flags
|
||||||
|
// <i> Enables Event Flags event generation.
|
||||||
|
#ifndef OS_EVR_EVFLAGS
|
||||||
|
#define OS_EVR_EVFLAGS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Timer
|
||||||
|
// <i> Enables Timer event generation.
|
||||||
|
#ifndef OS_EVR_TIMER
|
||||||
|
#define OS_EVR_TIMER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Mutex
|
||||||
|
// <i> Enables Mutex event generation.
|
||||||
|
#ifndef OS_EVR_MUTEX
|
||||||
|
#define OS_EVR_MUTEX 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Semaphore
|
||||||
|
// <i> Enables Semaphore event generation.
|
||||||
|
#ifndef OS_EVR_SEMAPHORE
|
||||||
|
#define OS_EVR_SEMAPHORE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Memory Pool
|
||||||
|
// <i> Enables Memory Pool event generation.
|
||||||
|
#ifndef OS_EVR_MEMPOOL
|
||||||
|
#define OS_EVR_MEMPOOL 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <q>Message Queue
|
||||||
|
// <i> Enables Message Queue event generation.
|
||||||
|
#ifndef OS_EVR_MSGQUEUE
|
||||||
|
#define OS_EVR_MSGQUEUE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// </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)
|
||||||
|
#ifndef OS_THREAD_LIBSPACE_NUM
|
||||||
|
#define OS_THREAD_LIBSPACE_NUM 4
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define OS_THREAD_LIBSPACE_NUM OS_THREAD_NUM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//------------- <<< end of configuration section >>> ---------------------------
|
||||||
|
|
||||||
|
#endif // RTX_CONFIG_H_
|
34
RTE/Compiler/EventRecorderConf.h
Normal file
34
RTE/Compiler/EventRecorderConf.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
* MDK - Component ::Event Recorder
|
||||||
|
* Copyright (c) 2016-2018 ARM Germany GmbH. All rights reserved.
|
||||||
|
*------------------------------------------------------------------------------
|
||||||
|
* Name: EventRecorderConf.h
|
||||||
|
* Purpose: Event Recorder Configuration
|
||||||
|
* Rev.: V1.1.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
|
||||||
|
// <i>Configures size of Event Record Buffer (each record is 16 bytes)
|
||||||
|
// <i>Must be 2^n (min=8, max=65536)
|
||||||
|
#define EVENT_RECORD_COUNT 1024U
|
||||||
|
|
||||||
|
// <o>Time Stamp Source
|
||||||
|
// <0=> DWT Cycle Counter <1=> SysTick <2=> CMSIS-RTOS2 System Timer
|
||||||
|
// <3=> User Timer (Normal Reset) <4=> User Timer (Power-On Reset)
|
||||||
|
// <i>Selects source for 32-bit time stamp
|
||||||
|
#define EVENT_TIMESTAMP_SOURCE 0
|
||||||
|
|
||||||
|
// <o>Time Stamp Clock Frequency [Hz] <0-1000000000>
|
||||||
|
// <i>Defines initial time stamp clock frequency (0 when not used)
|
||||||
|
#define EVENT_TIMESTAMP_FREQ 0U
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
//------------- <<< end of configuration section >>> ---------------------------
|
483
RTE/Device/STM32F746NGHx/startup_stm32f746xx.s
Normal file
483
RTE/Device/STM32F746NGHx/startup_stm32f746xx.s
Normal file
@ -0,0 +1,483 @@
|
|||||||
|
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
|
||||||
|
;* File Name : startup_stm32f746xx.s
|
||||||
|
;* Author : MCD Application Team
|
||||||
|
;* 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 0x00000400
|
||||||
|
|
||||||
|
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 0x00000200
|
||||||
|
|
||||||
|
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*****
|
278
RTE/Device/STM32F746NGHx/system_stm32f7xx.c
Normal file
278
RTE/Device/STM32F746NGHx/system_stm32f7xx.c
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file system_stm32f7xx.c
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @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>© 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****/
|
30
RTE/_Target_1/RTE_Components.h
Normal file
30
RTE/_Target_1/RTE_Components.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
* Auto generated Run-Time-Environment Configuration File
|
||||||
|
* *** Do not modify ! ***
|
||||||
|
*
|
||||||
|
* Project: 'lab01-rtx5'
|
||||||
|
* 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.4 */
|
||||||
|
#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.5.1 */
|
||||||
|
#define RTE_Compiler_EventRecorder
|
||||||
|
#define RTE_Compiler_EventRecorder_DAP
|
||||||
|
/* Keil::Device:Startup:1.2.4 */
|
||||||
|
#define RTE_DEVICE_STARTUP_STM32F7XX /* Device Startup for STM32F7 */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* RTE_COMPONENTS_H */
|
485
lab01-rtx5.uvprojx
Normal file
485
lab01-rtx5.uvprojx
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
<?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>6160000::V6.16::ARMCLANG</pCCUsed>
|
||||||
|
<uAC6>1</uAC6>
|
||||||
|
<TargetOption>
|
||||||
|
<TargetCommonOption>
|
||||||
|
<Device>STM32F746NGHx</Device>
|
||||||
|
<Vendor>STMicroelectronics</Vendor>
|
||||||
|
<PackID>Keil.STM32F7xx_DFP.2.12.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 -FN2 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FF1STM32F7xTCM_1024 -FS1200000 -FL1100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM) -FP1($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7xTCM_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>lab01-rtx5</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>4096</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>2</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>2</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>0</uC99>
|
||||||
|
<uGnu>0</uGnu>
|
||||||
|
<useXO>0</useXO>
|
||||||
|
<v6Lang>3</v6Lang>
|
||||||
|
<v6LangP>3</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>1</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.3" Cclass="CMSIS" Cgroup="RTOS2" exclusive="1">
|
||||||
|
<package name="CMSIS" schemaVersion="1.7.7" url="http://www.keil.com/pack/" vendor="ARM" version="5.9.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</api>
|
||||||
|
</apis>
|
||||||
|
<components>
|
||||||
|
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="5.6.0" condition="ARMv6_7_8-M Device">
|
||||||
|
<package name="CMSIS" schemaVersion="1.7.7" url="http://www.keil.com/pack/" vendor="ARM" version="5.9.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.4" condition="RTOS2 RTX5">
|
||||||
|
<package name="CMSIS" schemaVersion="1.7.7" url="http://www.keil.com/pack/" vendor="ARM" version="5.9.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="ARM Compiler" Cclass="Compiler" Cgroup="Event Recorder" Cvariant="DAP" Cvendor="Keil" Cversion="1.5.1" condition="Cortex-M Device">
|
||||||
|
<package name="ARM_Compiler" schemaVersion="1.7.7" url="https://www.keil.com/pack/" vendor="Keil" version="1.7.2"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.2.4" condition="STM32F7 CMSIS">
|
||||||
|
<package name="STM32F7xx_DFP" schemaVersion="1.6.0" url="http://www.keil.com/pack/" vendor="Keil" version="2.12.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.1">
|
||||||
|
<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.4" condition="RTOS2 RTX5"/>
|
||||||
|
<package name="CMSIS" schemaVersion="1.7.7" url="http://www.keil.com/pack/" vendor="ARM" version="5.9.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="CMSIS\RTOS2\RTX\Config\RTX_Config.h" version="5.5.2">
|
||||||
|
<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.4" condition="RTOS2 RTX5"/>
|
||||||
|
<package name="CMSIS" schemaVersion="1.7.7" url="http://www.keil.com/pack/" vendor="ARM" version="5.9.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="Config\EventRecorderConf.h" version="1.1.0">
|
||||||
|
<instance index="0">RTE\Compiler\EventRecorderConf.h</instance>
|
||||||
|
<component Cbundle="ARM Compiler" Cclass="Compiler" Cgroup="Event Recorder" Cvariant="DAP" Cvendor="Keil" Cversion="1.5.1" condition="Cortex-M Device"/>
|
||||||
|
<package name="ARM_Compiler" schemaVersion="1.7.7" url="https://www.keil.com/pack/" vendor="Keil" version="1.7.2"/>
|
||||||
|
<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.2">
|
||||||
|
<instance index="0">RTE\Device\STM32F746NGHx\startup_stm32f746xx.s</instance>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.2.4" condition="STM32F7 CMSIS"/>
|
||||||
|
<package name="STM32F7xx_DFP" schemaVersion="1.6.0" url="http://www.keil.com/pack/" vendor="Keil" version="2.12.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.2">
|
||||||
|
<instance index="0">RTE\Device\STM32F746NGHx\system_stm32f7xx.c</instance>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.2.4" condition="STM32F7 CMSIS"/>
|
||||||
|
<package name="STM32F7xx_DFP" schemaVersion="1.6.0" url="http://www.keil.com/pack/" vendor="Keil" version="2.12.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
</files>
|
||||||
|
</RTE>
|
||||||
|
|
||||||
|
</Project>
|
46
main.c
Normal file
46
main.c
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*----------------------------------------------------------------------------
|
||||||
|
* CMSIS-RTOS 'main' function template
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "RTE_Components.h"
|
||||||
|
#include CMSIS_device_header
|
||||||
|
#include "cmsis_os2.h"
|
||||||
|
#include "EventRecorder.h"
|
||||||
|
/*----------------------------------------------------------------------------
|
||||||
|
* Application main thread
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
__NO_RETURN static void app_main (void *argument) {
|
||||||
|
(void)argument;
|
||||||
|
// ...
|
||||||
|
for (;;) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
void task1(void *args) {
|
||||||
|
(void)args;
|
||||||
|
for(;;) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
__NO_RETURN static void task2(void *args) {
|
||||||
|
(void)args;
|
||||||
|
for(;;) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
__NO_RETURN static void task3(void *args) {
|
||||||
|
(void)args;
|
||||||
|
for(;;) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main (void) {
|
||||||
|
|
||||||
|
// System Initialization
|
||||||
|
SystemCoreClockUpdate();
|
||||||
|
EventRecorderInitialize(EventRecordAll, 1U);
|
||||||
|
|
||||||
|
osKernelInitialize(); // Initialize CMSIS-RTOS
|
||||||
|
thread1 = osThreadNew(app_main, NULL, NULL); // Create application main thread
|
||||||
|
osThreadNew(task1, NULL, NULL);
|
||||||
|
osThreadNew(task2, NULL, NULL);
|
||||||
|
osThreadNew(task3, NULL, NULL);
|
||||||
|
osKernelStart(); // Start thread execution
|
||||||
|
for (;;) {}
|
||||||
|
}
|
Reference in New Issue
Block a user