Initial commit
This commit is contained in:
commit
81b5e547f2
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 5
|
||||||
|
#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 >>> ---------------------------
|
3261
RTE/Device/STM32F746NGHx/RTE_Device.h
Normal file
3261
RTE/Device/STM32F746NGHx/RTE_Device.h
Normal file
File diff suppressed because it is too large
Load Diff
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*****
|
596
RTE/Device/STM32F746NGHx/stm32f7xx_hal_conf.h
Normal file
596
RTE/Device/STM32F746NGHx/stm32f7xx_hal_conf.h
Normal file
@ -0,0 +1,596 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file stm32f7xx_hal_conf.h
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @brief HAL configuration file
|
||||||
|
*
|
||||||
|
* @note modified by ARM
|
||||||
|
* The modifications allow to use this file as User Code Template
|
||||||
|
* within the Device Family Pack.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
/* #define HAL_CAN_LEGACY_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
|
||||||
|
#ifdef RTE_DEVICE_HAL_EXTI
|
||||||
|
#define HAL_EXTI_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 ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
|
||||||
|
#endif /* HSE_VALUE */
|
||||||
|
|
||||||
|
#if !defined (HSE_STARTUP_TIMEOUT)
|
||||||
|
#define HSE_STARTUP_TIMEOUT ((uint32_t)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 ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
|
||||||
|
#endif /* HSI_VALUE */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Internal Low Speed oscillator (LSI) value.
|
||||||
|
*/
|
||||||
|
#if !defined (LSI_VALUE)
|
||||||
|
#define LSI_VALUE ((uint32_t)32000) /*!< 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 ((uint32_t)32768) /*!< Value of the External Low Speed oscillator in Hz */
|
||||||
|
#endif /* LSE_VALUE */
|
||||||
|
#if !defined (LSE_STARTUP_TIMEOUT)
|
||||||
|
#define LSE_STARTUP_TIMEOUT ((uint32_t)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 ((uint32_t)12288000) /*!< 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 ((uint32_t)3300U) /*!< Value of VDD in mv */
|
||||||
|
#define TICK_INT_PRIORITY ((uint32_t)0x0FU) /*!< tick interrupt priority */
|
||||||
|
#define USE_RTOS 0U
|
||||||
|
#define PREFETCH_ENABLE 1U
|
||||||
|
#define ART_ACCLERATOR_ENABLE 1U /* To enable instruction cache and prefetch */
|
||||||
|
|
||||||
|
#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
|
||||||
|
#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
|
||||||
|
#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
|
||||||
|
#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U /* CRYP register callback disabled */
|
||||||
|
#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
|
||||||
|
#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U /* DCMI register callback disabled */
|
||||||
|
#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U /* DFSDM register callback disabled */
|
||||||
|
#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U /* DMA2D register callback disabled */
|
||||||
|
#define USE_HAL_DSI_REGISTER_CALLBACKS 0U /* DSI register callback disabled */
|
||||||
|
#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */
|
||||||
|
#define USE_HAL_HASH_REGISTER_CALLBACKS 0U /* HASH register callback disabled */
|
||||||
|
#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */
|
||||||
|
#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
|
||||||
|
#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
|
||||||
|
#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
|
||||||
|
#define USE_HAL_JPEG_REGISTER_CALLBACKS 0U /* JPEG register callback disabled */
|
||||||
|
#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */
|
||||||
|
#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */
|
||||||
|
#define USE_HAL_MDIOS_REGISTER_CALLBACKS 0U /* MDIOS register callback disabled */
|
||||||
|
#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */
|
||||||
|
#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */
|
||||||
|
#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */
|
||||||
|
#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
|
||||||
|
#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */
|
||||||
|
#define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */
|
||||||
|
#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
|
||||||
|
#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */
|
||||||
|
#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
|
||||||
|
#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
|
||||||
|
#define USE_HAL_SDRAM_REGISTER_CALLBACKS 0U /* SDRAM register callback disabled */
|
||||||
|
#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */
|
||||||
|
#define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */
|
||||||
|
#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */
|
||||||
|
#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
|
||||||
|
#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
|
||||||
|
#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
|
||||||
|
#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
|
||||||
|
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
|
||||||
|
|
||||||
|
/* ########################## 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 ((uint32_t)4U) /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
|
||||||
|
#define ETH_TXBUFNB ((uint32_t)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 ((uint32_t)0x000000FFU)
|
||||||
|
/* PHY Configuration delay */
|
||||||
|
#define PHY_CONFIG_DELAY ((uint32_t)0x00000FFFU)
|
||||||
|
|
||||||
|
#define PHY_READ_TO ((uint32_t)0x0000FFFFU)
|
||||||
|
#define PHY_WRITE_TO ((uint32_t)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_EXTI_MODULE_ENABLED
|
||||||
|
#include "stm32f7xx_hal_exti.h"
|
||||||
|
#endif /* HAL_EXTI_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_CAN_LEGACY_MODULE_ENABLED
|
||||||
|
#include "stm32f7xx_hal_can_legacy.h"
|
||||||
|
#endif /* HAL_CAN_LEGACY_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)0U)
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __STM32F7xx_HAL_CONF_H */
|
||||||
|
|
||||||
|
|
||||||
|
/************************ (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****/
|
224
RTE/Hesso_pack/ext_led.c
Normal file
224
RTE/Hesso_pack/ext_led.c
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
|
||||||
|
#include "stm32f7xx_hal.h"
|
||||||
|
#include "ext_led.h"
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
static const uint8_t cie1931[101] =
|
||||||
|
{
|
||||||
|
0, 0, 1, 1, 1, 1, 2, 2, 2, 3,
|
||||||
|
3, 3, 4, 4, 4, 5, 5, 6, 6, 7,
|
||||||
|
8, 8, 9, 10, 10, 11, 12, 13, 14, 15,
|
||||||
|
16, 17, 18, 19, 20, 22, 23, 24, 26, 27,
|
||||||
|
29, 30, 32, 34, 35, 37, 39, 41, 43, 45,
|
||||||
|
47, 49, 51, 54, 56, 58, 61, 64, 66, 69,
|
||||||
|
72, 75, 78, 81, 84, 87, 90, 93, 97, 100,
|
||||||
|
104, 108, 111, 115, 119, 123, 127, 131, 136, 140,
|
||||||
|
145, 149, 154, 159, 163, 168, 173, 179, 184, 189,
|
||||||
|
195, 200, 206, 212, 217, 223, 230, 236, 242, 248,
|
||||||
|
255,
|
||||||
|
};
|
||||||
|
|
||||||
|
#if LIGHTNESS_PWM_STEP != 100
|
||||||
|
#error this cie1931 array supports only 100 steps, feel free to implement your own
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
uint8_t lightness_to_pwm(uint8_t percentage)
|
||||||
|
{
|
||||||
|
if(percentage > (LIGHTNESS_PWM_STEP-1))
|
||||||
|
percentage = (LIGHTNESS_PWM_STEP-1);
|
||||||
|
|
||||||
|
return cie1931[percentage];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
int32_t Ext_LED_Init(void) {
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct;
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Configure GPIO pin: PA15 (LED0)
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE(); // enable GPIO timer
|
||||||
|
__HAL_RCC_TIM2_CLK_ENABLE(); // enable timer 2 clock
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_15; // used pin is PA15
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // alternate function use
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL; // no pullup
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;// timer 2 is used
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FAST; // speed is fast
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
TIM2->CCER = TIM_CCER_CC1E; // compare for PWM usage
|
||||||
|
TIM2->PSC = 16; // timer prescaler
|
||||||
|
TIM2->ARR = 255; // max count value
|
||||||
|
TIM2->CCR1 = lightness_to_pwm(0); // duty cycle
|
||||||
|
TIM2->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1PE;
|
||||||
|
TIM2->EGR |= TIM_EGR_UG; // update register now
|
||||||
|
TIM2->CR1 = TIM_CR1_ARPE | TIM_CR1_CEN; // start the timer
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Configure GPIO pin: PH6 (LED1)
|
||||||
|
__HAL_RCC_GPIOH_CLK_ENABLE(); // enable GPIO timer
|
||||||
|
__HAL_RCC_TIM12_CLK_ENABLE(); // enable timer 12 clock
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_6; // used pin is PH6
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // alternate function use
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL; // no pullup
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF9_TIM12;// timer 12 is used
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FAST; // speed is fast
|
||||||
|
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
TIM12->CCER = TIM_CCER_CC1E; // compare for PWM usage
|
||||||
|
TIM12->PSC = 16; // timer prescaler
|
||||||
|
TIM12->ARR = 255; // max count value
|
||||||
|
TIM12->CCR1 = lightness_to_pwm(0); // duty cycle
|
||||||
|
TIM12->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1PE;
|
||||||
|
TIM12->EGR |= TIM_EGR_UG; // update register now
|
||||||
|
TIM12->CR1 = TIM_CR1_ARPE | TIM_CR1_CEN; // start the timer
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Configure GPIO pin: PA8 (LED2)
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE(); // enable GPIO timer
|
||||||
|
__HAL_RCC_TIM1_CLK_ENABLE(); // enable timer 1 clock
|
||||||
|
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_8; // used pin is PA8
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // alternate function use
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL; // no pullup
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;// timer 5 is used
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FAST; // speed is fast
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
TIM1->CCER = TIM_CCER_CC1E; // compare for PWM usage
|
||||||
|
TIM1->PSC = 16; // timer prescaler
|
||||||
|
TIM1->ARR = 255; // max count value
|
||||||
|
TIM1->CCR1 = lightness_to_pwm(0); // duty cycle
|
||||||
|
TIM1->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1PE;
|
||||||
|
TIM1->EGR |= TIM_EGR_UG; // update register now
|
||||||
|
TIM1->CR1 = TIM_CR1_ARPE | TIM_CR1_CEN; // start the timer
|
||||||
|
TIM1->BDTR = TIM_BDTR_MOE; // master output enable
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Configure GPIO pin: PB4 (LED3)
|
||||||
|
__HAL_RCC_GPIOB_CLK_ENABLE(); // enable GPIO timer
|
||||||
|
__HAL_RCC_TIM3_CLK_ENABLE(); // enable timer 3 clock
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_4; // used pin is PB4
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // alternate function use
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL; // no pullup
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;// timer 3 is used
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FAST; // speed is fast
|
||||||
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
TIM3->CCER = TIM_CCER_CC1E; // compare for PWM usage
|
||||||
|
TIM3->PSC = 16; // timer prescaler
|
||||||
|
TIM3->ARR = 255; // max count value
|
||||||
|
TIM3->CCR1 = lightness_to_pwm(0); // duty cycle
|
||||||
|
TIM3->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1PE;
|
||||||
|
TIM3->EGR |= TIM_EGR_UG; // update register now
|
||||||
|
TIM3->CR1 = TIM_CR1_ARPE | TIM_CR1_CEN; // start the timer
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
int32_t Ext_LED_On (uint32_t num) {
|
||||||
|
|
||||||
|
if((num & 1) != 0)
|
||||||
|
{
|
||||||
|
TIM2->CCR1 = lightness_to_pwm(LIGHTNESS_PWM_STEP);
|
||||||
|
}
|
||||||
|
if((num & 2) != 0)
|
||||||
|
{
|
||||||
|
TIM12->CCR1 = lightness_to_pwm(LIGHTNESS_PWM_STEP);
|
||||||
|
}
|
||||||
|
if((num & 4) != 0)
|
||||||
|
{
|
||||||
|
TIM1->CCR1 = lightness_to_pwm(LIGHTNESS_PWM_STEP);
|
||||||
|
}
|
||||||
|
if((num & 8) != 0)
|
||||||
|
{
|
||||||
|
TIM3->CCR1 = lightness_to_pwm(LIGHTNESS_PWM_STEP);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
int32_t Ext_LED_Off (uint32_t num) {
|
||||||
|
|
||||||
|
if((num & 1) != 0)
|
||||||
|
{
|
||||||
|
TIM2->CCR1 = lightness_to_pwm(0);
|
||||||
|
}
|
||||||
|
if((num & 2) != 0)
|
||||||
|
{
|
||||||
|
TIM12->CCR1 = lightness_to_pwm(0);
|
||||||
|
}
|
||||||
|
if((num & 4) != 0)
|
||||||
|
{
|
||||||
|
TIM1->CCR1 = lightness_to_pwm(0);
|
||||||
|
}
|
||||||
|
if((num & 8) != 0)
|
||||||
|
{
|
||||||
|
TIM3->CCR1 = lightness_to_pwm(0);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
int32_t Ext_LED_PWM (uint32_t num, uint32_t duty) {
|
||||||
|
|
||||||
|
if((num & 1) != 0)
|
||||||
|
{
|
||||||
|
TIM2->CCR1 = lightness_to_pwm(duty);
|
||||||
|
}
|
||||||
|
if((num & 2) != 0)
|
||||||
|
{
|
||||||
|
TIM12->CCR1 = lightness_to_pwm(duty);
|
||||||
|
}
|
||||||
|
if((num & 4) != 0)
|
||||||
|
{
|
||||||
|
TIM1->CCR1 = lightness_to_pwm(duty);
|
||||||
|
}
|
||||||
|
if((num & 8) != 0)
|
||||||
|
{
|
||||||
|
TIM3->CCR1 = lightness_to_pwm(duty);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
int32_t Ext_LEDs(uint32_t num) {
|
||||||
|
|
||||||
|
if((num & 1) != 0)
|
||||||
|
{
|
||||||
|
TIM2->CCR1 = lightness_to_pwm(LIGHTNESS_PWM_STEP);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TIM2->CCR1 = lightness_to_pwm(0);
|
||||||
|
}
|
||||||
|
if((num & 2) != 0)
|
||||||
|
{
|
||||||
|
TIM12->CCR1 = lightness_to_pwm(LIGHTNESS_PWM_STEP);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TIM12->CCR1 = lightness_to_pwm(0);
|
||||||
|
}
|
||||||
|
if((num & 4) != 0)
|
||||||
|
{
|
||||||
|
TIM1->CCR1 = lightness_to_pwm(LIGHTNESS_PWM_STEP);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TIM1->CCR1 = lightness_to_pwm(0);
|
||||||
|
}
|
||||||
|
if((num & 8) != 0)
|
||||||
|
{
|
||||||
|
TIM3->CCR1 = lightness_to_pwm(LIGHTNESS_PWM_STEP);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TIM3->CCR1 = lightness_to_pwm(0);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
51
RTE/Hesso_pack/ext_led.h
Normal file
51
RTE/Hesso_pack/ext_led.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/************************************************************************//**
|
||||||
|
* \file ext_led.h
|
||||||
|
* \brief Function to use the extension LEDs
|
||||||
|
* \author pascal (dot) sartoretti (at) hevs (dot) ch
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __EXT_LED_H
|
||||||
|
#define __EXT_LED_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define LIGHTNESS_PWM_STEP 100
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************//**
|
||||||
|
* \brief Inits the external Leds usage.
|
||||||
|
* \return Always #0
|
||||||
|
***************************************************************************/
|
||||||
|
extern int32_t Ext_LED_Init (void);
|
||||||
|
|
||||||
|
/************************************************************************//**
|
||||||
|
* \brief Turn on one led.
|
||||||
|
* \param num The led to turn on (1,2,4,8)
|
||||||
|
* \return Always 0
|
||||||
|
***************************************************************************/
|
||||||
|
extern int32_t Ext_LED_On (uint32_t num);
|
||||||
|
|
||||||
|
/************************************************************************//**
|
||||||
|
* \brief Turn off one led.
|
||||||
|
* \param num The led to turn off (1,2,4,8)
|
||||||
|
* \return Always 0
|
||||||
|
***************************************************************************/
|
||||||
|
extern int32_t Ext_LED_Off (uint32_t num);
|
||||||
|
|
||||||
|
/************************************************************************//**
|
||||||
|
* \brief Set a power on a led.
|
||||||
|
* \param num The led to turn set the power (1,2,4,8)
|
||||||
|
* \param duty The power of the led (0 to 255)
|
||||||
|
* \return Always 0
|
||||||
|
***************************************************************************/
|
||||||
|
extern int32_t Ext_LED_PWM (uint32_t num, uint32_t duty);
|
||||||
|
|
||||||
|
/************************************************************************//**
|
||||||
|
* \brief Set the state on all leds.
|
||||||
|
* \param val The binary state of the four leds (example 0b1101).
|
||||||
|
* \return Always 0
|
||||||
|
***************************************************************************/
|
||||||
|
extern int32_t Ext_LEDs(uint32_t val);
|
||||||
|
|
||||||
|
#endif /* __BOARD_LED_H */
|
57
RTE/Hesso_pack/ext_uart.c
Normal file
57
RTE/Hesso_pack/ext_uart.c
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
|
||||||
|
#include "stm32f7xx_hal.h"
|
||||||
|
#include "ext_uart.h"
|
||||||
|
|
||||||
|
UART_HandleTypeDef ext_uart; // extension uart handler
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
||||||
|
{
|
||||||
|
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct;
|
||||||
|
if(huart->Instance==USART6)
|
||||||
|
{
|
||||||
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||||
|
__HAL_RCC_USART6_CLK_ENABLE();
|
||||||
|
|
||||||
|
/**USART6 GPIO Configuration
|
||||||
|
PC7 ------> USART6_RX
|
||||||
|
PC6 ------> USART6_TX
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
|
||||||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
void Ext_UART_Init(uint32_t speed)
|
||||||
|
{
|
||||||
|
ext_uart.Instance = USART6;
|
||||||
|
ext_uart.Init.BaudRate = speed;
|
||||||
|
ext_uart.Init.WordLength = UART_WORDLENGTH_8B;
|
||||||
|
ext_uart.Init.StopBits = UART_STOPBITS_1;
|
||||||
|
ext_uart.Init.Parity = UART_PARITY_NONE;
|
||||||
|
ext_uart.Init.Mode = UART_MODE_TX_RX;
|
||||||
|
ext_uart.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
|
ext_uart.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
|
ext_uart.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||||
|
ext_uart.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||||||
|
HAL_UART_Init(&ext_uart);
|
||||||
|
/* USART6 interrupt Init */
|
||||||
|
HAL_NVIC_SetPriority(USART6_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(USART6_IRQn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
void USART6_IRQHandler(void)
|
||||||
|
{
|
||||||
|
HAL_UART_IRQHandler(&ext_uart);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
44
RTE/Hesso_pack/ext_uart.h
Normal file
44
RTE/Hesso_pack/ext_uart.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/************************************************************************//**
|
||||||
|
* \file ext_uart.h
|
||||||
|
* \brief Function to use the extension uart
|
||||||
|
* \author pascal (dot) sartoretti (at) hevs (dot) ch
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __EXT_UART_H
|
||||||
|
#define __EXT_UART_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include "stm32f7xx_hal.h"
|
||||||
|
|
||||||
|
extern UART_HandleTypeDef ext_uart; // extension uart handle
|
||||||
|
|
||||||
|
/************************************************************************//**
|
||||||
|
* \brief Inits the extension uart
|
||||||
|
* \param speed This si the uart speed selected for example 115200.
|
||||||
|
* The extension uart could be use with or without interrupts.
|
||||||
|
*
|
||||||
|
* Without interrupts:
|
||||||
|
* -------------------
|
||||||
|
* To send something on the uart, you have to use HAL_UART_Transmit function
|
||||||
|
* as the example below.
|
||||||
|
* error = HAL_UART_Transmit(&ext_uart, msg, sizeof(msg),50);
|
||||||
|
* To receive you have to use HAL_UART_Receive as example below.
|
||||||
|
* error = HAL_UART_Receive(&ext_uart, msg, sizeof(msg),HAL_MAX_DELAY);
|
||||||
|
* The HAL_MAX_DELAY waits until receive is finished.
|
||||||
|
*
|
||||||
|
* With interrupts:
|
||||||
|
* ----------------
|
||||||
|
* The functions below have to be used:
|
||||||
|
* HAL_UART_Transmit_IT(&ext_uart," Welcome\n\r", 10);
|
||||||
|
* HAL_UART_Receive_IT(&ext_uart,data,8);
|
||||||
|
*
|
||||||
|
* The callback functions above could be implemented for usage on interrupt
|
||||||
|
* mode when the full size is transmitted (or received).
|
||||||
|
* void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
|
||||||
|
* void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
|
||||||
|
*
|
||||||
|
***************************************************************************/
|
||||||
|
extern void Ext_UART_Init(uint32_t speed);
|
||||||
|
|
||||||
|
#endif /* __BOARD_LED_H */
|
49
RTE/_Target_1/RTE_Components.h
Normal file
49
RTE/_Target_1/RTE_Components.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
* Auto generated Run-Time-Environment Configuration File
|
||||||
|
* *** Do not modify ! ***
|
||||||
|
*
|
||||||
|
* Project: 'lab04-queue'
|
||||||
|
* 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.ARM Compiler::Compiler:I/O:STDOUT:ITM:1.2.0 */
|
||||||
|
#define RTE_Compiler_IO_STDOUT /* Compiler I/O: STDOUT */
|
||||||
|
#define RTE_Compiler_IO_STDOUT_ITM /* Compiler I/O: STDOUT ITM */
|
||||||
|
/* Keil::Device:STM32Cube Framework:Classic:1.2.7 */
|
||||||
|
#define RTE_DEVICE_FRAMEWORK_CLASSIC
|
||||||
|
/* Keil::Device:STM32Cube HAL:Common:1.2.7 */
|
||||||
|
#define RTE_DEVICE_HAL_COMMON
|
||||||
|
/* Keil::Device:STM32Cube HAL:Cortex:1.2.7 */
|
||||||
|
#define RTE_DEVICE_HAL_CORTEX
|
||||||
|
/* Keil::Device:STM32Cube HAL:DMA:1.2.7 */
|
||||||
|
#define RTE_DEVICE_HAL_DMA
|
||||||
|
/* Keil::Device:STM32Cube HAL:GPIO:1.2.7 */
|
||||||
|
#define RTE_DEVICE_HAL_GPIO
|
||||||
|
/* Keil::Device:STM32Cube HAL:PWR:1.2.7 */
|
||||||
|
#define RTE_DEVICE_HAL_PWR
|
||||||
|
/* Keil::Device:STM32Cube HAL:RCC:1.2.7 */
|
||||||
|
#define RTE_DEVICE_HAL_RCC
|
||||||
|
/* Keil::Device:STM32Cube HAL:UART:1.2.7 */
|
||||||
|
#define RTE_DEVICE_HAL_UART
|
||||||
|
/* Keil::Device:Startup:1.2.4 */
|
||||||
|
#define RTE_DEVICE_STARTUP_STM32F7XX /* Device Startup for STM32F7 */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* RTE_COMPONENTS_H */
|
608
lab04-queue.uvprojx
Normal file
608
lab04-queue.uvprojx
Normal file
@ -0,0 +1,608 @@
|
|||||||
|
<?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>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>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>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::Hesso pack</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>
|
||||||
|
<api Capiversion="1.0.0" Cclass="Device" Cgroup="STM32Cube Framework" exclusive="1">
|
||||||
|
<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>
|
||||||
|
</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 Cclass="Hesso pack" Cgroup="Extension Board" Csub="LEDs" Cvendor="HessoValais" Cversion="1.0.0" condition="any">
|
||||||
|
<package name="Extension_board" schemaVersion="1.2" url="http://kpacks.hevs.ch/HessoValais.Extension_board.pdsc" vendor="HessoValais" version="1.2.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Hesso pack" Cgroup="Extension Board" Csub="UART" Cvendor="HessoValais" Cversion="1.0.0" condition="uart6">
|
||||||
|
<package name="Extension_board" schemaVersion="1.2" url="http://kpacks.hevs.ch/HessoValais.Extension_board.pdsc" vendor="HessoValais" version="1.2.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 Cbundle="ARM Compiler" Cclass="Compiler" Cgroup="I/O" Csub="STDOUT" Cvariant="ITM" Cvendor="Keil" Cversion="1.2.0" condition="ARMCC Cortex-M with ITM">
|
||||||
|
<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 Capiversion="1.0.0" Cclass="Device" Cgroup="STM32Cube Framework" Csub="Classic" Cvendor="Keil" Cversion="1.2.7" condition="STM32F7 Framework Classic">
|
||||||
|
<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>
|
||||||
|
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="Common" Cvendor="Keil" Cversion="1.2.7" condition="STM32F7 HAL Common">
|
||||||
|
<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>
|
||||||
|
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="Cortex" Cvendor="Keil" Cversion="1.2.7" condition="STM32F7 HAL">
|
||||||
|
<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>
|
||||||
|
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="DMA" Cvendor="Keil" Cversion="1.2.7" condition="STM32F7 HAL">
|
||||||
|
<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>
|
||||||
|
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="GPIO" Cvendor="Keil" Cversion="1.2.7" condition="STM32F7 HAL">
|
||||||
|
<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>
|
||||||
|
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="PWR" Cvendor="Keil" Cversion="1.2.7" condition="STM32F7 HAL">
|
||||||
|
<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>
|
||||||
|
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="RCC" Cvendor="Keil" Cversion="1.2.7" condition="STM32F7 HAL GPIO">
|
||||||
|
<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>
|
||||||
|
<component Cclass="Device" Cgroup="STM32Cube HAL" Csub="UART" Cvendor="Keil" Cversion="1.2.7" condition="STM32F7 HAL DMA">
|
||||||
|
<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>
|
||||||
|
<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="header" name="CMSIS\Driver\Config\RTE_Device.h" version="1.5.1">
|
||||||
|
<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.7" condition="STM32F7 Framework Classic"/>
|
||||||
|
<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" 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="header" name="MDK\Templates\Inc\stm32f7xx_hal_conf.h" version="1.2.7">
|
||||||
|
<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.7" condition="STM32F7 Framework Classic"/>
|
||||||
|
<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>
|
||||||
|
<file attr="config" category="source" name="extension_board\ext_led.c" version="1.0.0">
|
||||||
|
<instance index="0">RTE\Hesso_pack\ext_led.c</instance>
|
||||||
|
<component Cclass="Hesso pack" Cgroup="Extension Board" Csub="LEDs" Cvendor="HessoValais" Cversion="1.0.0" condition="any"/>
|
||||||
|
<package name="Extension_board" schemaVersion="1.2" url="http://kpacks.hevs.ch/HessoValais.Extension_board.pdsc" vendor="HessoValais" version="1.2.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="extension_board\ext_led.h" version="1.0.0">
|
||||||
|
<instance index="0">RTE\Hesso_pack\ext_led.h</instance>
|
||||||
|
<component Cclass="Hesso pack" Cgroup="Extension Board" Csub="LEDs" Cvendor="HessoValais" Cversion="1.0.0" condition="any"/>
|
||||||
|
<package name="Extension_board" schemaVersion="1.2" url="http://kpacks.hevs.ch/HessoValais.Extension_board.pdsc" vendor="HessoValais" version="1.2.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="extension_board\ext_uart.c" version="1.0.0">
|
||||||
|
<instance index="0">RTE\Hesso_pack\ext_uart.c</instance>
|
||||||
|
<component Cclass="Hesso pack" Cgroup="Extension Board" Csub="UART" Cvendor="HessoValais" Cversion="1.0.0" condition="uart6"/>
|
||||||
|
<package name="Extension_board" schemaVersion="1.2" url="http://kpacks.hevs.ch/HessoValais.Extension_board.pdsc" vendor="HessoValais" version="1.2.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="extension_board\ext_uart.h" version="1.0.0">
|
||||||
|
<instance index="0">RTE\Hesso_pack\ext_uart.h</instance>
|
||||||
|
<component Cclass="Hesso pack" Cgroup="Extension Board" Csub="UART" Cvendor="HessoValais" Cversion="1.0.0" condition="uart6"/>
|
||||||
|
<package name="Extension_board" schemaVersion="1.2" url="http://kpacks.hevs.ch/HessoValais.Extension_board.pdsc" vendor="HessoValais" version="1.2.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Target 1"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
</files>
|
||||||
|
</RTE>
|
||||||
|
|
||||||
|
</Project>
|
135
main.c
Normal file
135
main.c
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
/*----------------------------------------------------------------------------
|
||||||
|
* CMSIS-RTOS 'main' function template
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include "stm32f7xx_hal.h"
|
||||||
|
#include "RTE_Components.h"
|
||||||
|
#include CMSIS_device_header
|
||||||
|
#include "cmsis_os2.h"
|
||||||
|
#include "ext_led.h"
|
||||||
|
#include "ext_uart.h"
|
||||||
|
#include "ext_buttons.h"
|
||||||
|
#include "ext_keyboard.h"
|
||||||
|
#include "string.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifdef RTE_Compiler_EventRecorder
|
||||||
|
#include "EventRecorder.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
osThreadId_t thread1,thread2;
|
||||||
|
osMessageQueueId_t msgQueue;
|
||||||
|
|
||||||
|
const osThreadAttr_t thread1_attr = {
|
||||||
|
.stack_size = 1024, // Create the thread stack size
|
||||||
|
.priority = osPriorityNormal, //Set initial thread priority to high
|
||||||
|
.name = "Producer",
|
||||||
|
};
|
||||||
|
const osThreadAttr_t thread2_attr = {
|
||||||
|
.stack_size = 1024, // Create the thread stack size
|
||||||
|
.priority = osPriorityNormal, //Set initial thread priority to high
|
||||||
|
.name = "Consumer",
|
||||||
|
};
|
||||||
|
|
||||||
|
const osMessageQueueAttr_t msgQueue_attr = {
|
||||||
|
.name = "MsgQueue",
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------------
|
||||||
|
* Thread Producer
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
__NO_RETURN static void Thread_Producer (void *argument) {
|
||||||
|
osMessageQueueId_t* queue = (osMessageQueueId_t*)argument;
|
||||||
|
uint32_t counter = 0;
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
|
osStatus_t statusQueue = osMessageQueuePut(*queue, &counter, 1, 0);
|
||||||
|
if(statusQueue != osOK) {
|
||||||
|
// TODO generate error
|
||||||
|
}
|
||||||
|
counter++;
|
||||||
|
osDelay(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------------
|
||||||
|
* Thread Consumer
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
__NO_RETURN static void Thread_Consumer (void *argument) {
|
||||||
|
osMessageQueueId_t* queue = (osMessageQueueId_t*)argument;
|
||||||
|
uint8_t counter = 1;
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
|
uint32_t msg;
|
||||||
|
osStatus_t statusQueue;
|
||||||
|
|
||||||
|
do {
|
||||||
|
statusQueue = osMessageQueueGet(*queue, &msg, NULL, 0);
|
||||||
|
printf("Value is %d\r\n", msg);
|
||||||
|
} while(statusQueue != osErrorResource);
|
||||||
|
if(++counter > 10) counter = 1;
|
||||||
|
osDelay(counter*100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main (void) {
|
||||||
|
|
||||||
|
// System Initialization
|
||||||
|
SystemClock_Config();
|
||||||
|
SystemCoreClockUpdate();
|
||||||
|
#ifdef RTE_Compiler_EventRecorder
|
||||||
|
// Initialize and start Event Recorder
|
||||||
|
// Ext_UART_Init(9600);
|
||||||
|
EventRecorderInitialize(EventRecordAll, 1U);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
osKernelInitialize(); // Initialize CMSIS-RTOS
|
||||||
|
msgQueue = osMessageQueueNew(8, 4, &msgQueue_attr);
|
||||||
|
thread1 = osThreadNew(Thread_Producer, &msgQueue, &thread1_attr);
|
||||||
|
thread2 = osThreadNew(Thread_Consumer, &msgQueue, &thread2_attr);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------
|
||||||
|
// get names are placed for TraceAlyzer visualisation
|
||||||
|
//----------------------------------------------------------------------------------------------
|
||||||
|
osThreadGetName(thread1);
|
||||||
|
osThreadGetName(thread2);
|
||||||
|
osMessageQueueGetName(msgQueue);
|
||||||
|
osKernelStart(); // Start thread execution
|
||||||
|
for (;;) {}
|
||||||
|
}
|
Reference in New Issue
Block a user