Init
This commit is contained in:
commit
72e128e929
|
|
@ -0,0 +1,197 @@
|
||||||
|
/*
|
||||||
|
*****************************************************************************
|
||||||
|
**
|
||||||
|
** File : AT32F437xM_FLASH.ld
|
||||||
|
**
|
||||||
|
** Abstract : Linker script for AT32F437xM Device with
|
||||||
|
** 4096KByte FLASH, 384KByte RAM
|
||||||
|
**
|
||||||
|
** Set heap size, stack size and stack location according
|
||||||
|
** to application requirements.
|
||||||
|
**
|
||||||
|
** Set memory bank area and size if external memory is used.
|
||||||
|
**
|
||||||
|
** Target : Artery Tek AT32
|
||||||
|
**
|
||||||
|
** Environment : Arm gcc toolchain
|
||||||
|
**
|
||||||
|
*****************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Entry Point */
|
||||||
|
ENTRY(Reset_Handler)
|
||||||
|
|
||||||
|
/* Highest address of the user mode stack */
|
||||||
|
_estack = 0x20060000; /* end of RAM */
|
||||||
|
|
||||||
|
/* Generate a link error if heap and stack don't fit into RAM */
|
||||||
|
_Min_Heap_Size = 0x200; /* required amount of heap */
|
||||||
|
_Min_Stack_Size = 0x400; /* required amount of stack */
|
||||||
|
|
||||||
|
_MetadataSize = 256;
|
||||||
|
|
||||||
|
_BootloaderSize = 64K;
|
||||||
|
_BootloaderBegin = 0x08000000;
|
||||||
|
|
||||||
|
_FirmwareMainSize = 320K;
|
||||||
|
_FirmwareMainBegin = _BootloaderBegin + _BootloaderSize;
|
||||||
|
|
||||||
|
_FirmwareRecoverySize = 320K;
|
||||||
|
_FirmwareRecoveryBegin = _FirmwareMainBegin + _FirmwareMainSize;
|
||||||
|
|
||||||
|
_FirmwareMainTelematicaSize = 192K;
|
||||||
|
_FirmwareMainTelematicaBegin = _FirmwareRecoveryBegin + _FirmwareRecoverySize;
|
||||||
|
|
||||||
|
_SettingsMainSize = 16K;
|
||||||
|
_SettingsMainBegin = _FirmwareMainTelematicaBegin + _FirmwareMainTelematicaSize;
|
||||||
|
|
||||||
|
_SettingsRecoverySize = 16K;
|
||||||
|
_SettingsRecoveryBegin = _SettingsMainBegin + _SettingsMainSize;
|
||||||
|
|
||||||
|
_FileSystemSize = 96K;
|
||||||
|
_FileSystemBegin = _SettingsRecoveryBegin + _SettingsRecoverySize;
|
||||||
|
|
||||||
|
/* Specify the memory areas */
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
BOOTLOADER (rx) : ORIGIN = _BootloaderBegin, LENGTH = _BootloaderSize
|
||||||
|
MAIN_FIRMWARE (rx) : ORIGIN = _FirmwareMainBegin, LENGTH = _FirmwareMainSize
|
||||||
|
UPDATE_FIRMWARE (rx) : ORIGIN = _FirmwareRecoveryBegin, LENGTH = _FirmwareRecoverySize
|
||||||
|
FLASH (rx) : ORIGIN = _FirmwareMainTelematicaBegin, LENGTH = _FirmwareMainTelematicaSize - _MetadataSize
|
||||||
|
META (rx) : ORIGIN = _FirmwareMainTelematicaBegin + _FirmwareMainTelematicaSize - _MetadataSize, LENGTH = _MetadataSize
|
||||||
|
SETTINGS_MAIN (rx) : ORIGIN = _SettingsMainBegin, LENGTH = _SettingsMainSize
|
||||||
|
SETTINGS_RECOVERY (rx) : ORIGIN = _SettingsRecoveryBegin, LENGTH = _SettingsRecoverySize
|
||||||
|
FILE_SYSTEM (rx) : ORIGIN = _FileSystemBegin, LENGTH = _FileSystemSize
|
||||||
|
RAM (xrw) : ORIGIN = 0x20030000, LENGTH = 192K
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Define output sections */
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* The startup code goes first into FLASH */
|
||||||
|
.isr_vector :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
KEEP(*(.isr_vector)) /* Startup code */
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
.metaaaa : SUBALIGN(1)
|
||||||
|
{
|
||||||
|
KEEP(*(.meta_fw_crc))
|
||||||
|
LONG(_FirmwareMainTelematicaSize - _MetadataSize) ; /* word with firmware_size */
|
||||||
|
KEEP(*(.meta_fw_name_size))
|
||||||
|
KEEP(*(.meta_fw_name))
|
||||||
|
KEEP(*(.meta_hw_name_size))
|
||||||
|
KEEP(*(.meta_hw_name))
|
||||||
|
KEEP(*(.meta_ext_env_tele))
|
||||||
|
KEEP(*(.meta_tele_func))
|
||||||
|
. = ALIGN(256);
|
||||||
|
} >META
|
||||||
|
|
||||||
|
/* The program code and other data goes into FLASH */
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
*(.text) /* .text sections (code) */
|
||||||
|
*(.text*) /* .text* sections (code) */
|
||||||
|
*(.glue_7) /* glue arm to thumb code */
|
||||||
|
*(.glue_7t) /* glue thumb to arm code */
|
||||||
|
*(.eh_frame)
|
||||||
|
|
||||||
|
KEEP (*(.init))
|
||||||
|
KEEP (*(.fini))
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
_etext = .; /* define a global symbols at end of code */
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
/* Constant data goes into FLASH */
|
||||||
|
.rodata :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
*(.rodata) /* .rodata sections (constants, strings, etc.) */
|
||||||
|
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
|
||||||
|
.ARM : {
|
||||||
|
__exidx_start = .;
|
||||||
|
*(.ARM.exidx*)
|
||||||
|
__exidx_end = .;
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
.preinit_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||||
|
KEEP (*(.preinit_array*))
|
||||||
|
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||||
|
} >FLASH
|
||||||
|
.init_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (__init_array_start = .);
|
||||||
|
KEEP (*(SORT(.init_array.*)))
|
||||||
|
KEEP (*(.init_array*))
|
||||||
|
PROVIDE_HIDDEN (__init_array_end = .);
|
||||||
|
} >FLASH
|
||||||
|
.fini_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||||
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
|
KEEP (*(.fini_array*))
|
||||||
|
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
/* used by the startup to initialize data */
|
||||||
|
_sidata = LOADADDR(.data);
|
||||||
|
|
||||||
|
/* Initialized data sections goes into RAM, load LMA copy after code */
|
||||||
|
.data :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
_sdata = .; /* create a global symbol at data start */
|
||||||
|
*(.data) /* .data sections */
|
||||||
|
*(.data*) /* .data* sections */
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
_edata = .; /* define a global symbol at data end */
|
||||||
|
} >RAM AT> FLASH
|
||||||
|
|
||||||
|
/* Uninitialized data section */
|
||||||
|
. = ALIGN(4);
|
||||||
|
.bss :
|
||||||
|
{
|
||||||
|
/* This is used by the startup in order to initialize the .bss secion */
|
||||||
|
_sbss = .; /* define a global symbol at bss start */
|
||||||
|
__bss_start__ = _sbss;
|
||||||
|
*(.bss)
|
||||||
|
*(.bss*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
_ebss = .; /* define a global symbol at bss end */
|
||||||
|
__bss_end__ = _ebss;
|
||||||
|
} >RAM
|
||||||
|
|
||||||
|
/* User_heap_stack section, used to check that there is enough RAM left */
|
||||||
|
._user_heap_stack :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
PROVIDE ( end = . );
|
||||||
|
PROVIDE ( _end = . );
|
||||||
|
. = . + _Min_Heap_Size;
|
||||||
|
. = . + _Min_Stack_Size;
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >RAM
|
||||||
|
|
||||||
|
/* Remove information from the standard libraries */
|
||||||
|
/DISCARD/ :
|
||||||
|
{
|
||||||
|
libc.a ( * )
|
||||||
|
libm.a ( * )
|
||||||
|
libgcc.a ( * )
|
||||||
|
}
|
||||||
|
|
||||||
|
.ARM.attributes 0 : { *(.ARM.attributes) }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
//
|
||||||
|
// Created by xemon on 30.11.22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef UVEOS_ON_NATION_ERAGLONASSUVEOS_DUMPER_H
|
||||||
|
#define UVEOS_ON_NATION_ERAGLONASSUVEOS_DUMPER_H
|
||||||
|
|
||||||
|
typedef void (*eraGlonassForceDumpCall)(void *env);
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
void *env;
|
||||||
|
eraGlonassForceDumpCall forceDump;
|
||||||
|
} tEraGlonassUveosDumperInterface;
|
||||||
|
|
||||||
|
#define EraGlonassUveosDumper_ForceDump(ENV) (ENV)->forceDump((ENV)->env)
|
||||||
|
|
||||||
|
#endif //UVEOS_ON_NATION_ERAGLONASSUVEOS_DUMPER_H
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
//
|
||||||
|
// Created by cfif on 14.02.2025.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef SMART_COMPONENTS_TELEMATICA_V2_FIRMWAREUVEOSMETADATASECTION_H
|
||||||
|
#define SMART_COMPONENTS_TELEMATICA_V2_FIRMWAREUVEOSMETADATASECTION_H
|
||||||
|
|
||||||
|
#include "FirmwareMetadataSection.h"
|
||||||
|
|
||||||
|
#endif //SMART_COMPONENTS_TELEMATICA_V2_FIRMWAREUVEOSMETADATASECTION_H
|
||||||
|
|
@ -0,0 +1,176 @@
|
||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/*
|
||||||
|
* FreeRTOS Kernel V10.3.1
|
||||||
|
* Portion Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
|
* Portion Copyright (C) 2019 StMicroelectronics, Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
* this software and associated documentation files (the "Software"), to deal in
|
||||||
|
* the Software without restriction, including without limitation the rights to
|
||||||
|
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
* subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*
|
||||||
|
* http://www.FreeRTOS.org
|
||||||
|
* http://aws.amazon.com/freertos
|
||||||
|
*
|
||||||
|
* 1 tab == 4 spaces!
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
#define FREERTOS_CONFIG_H
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------
|
||||||
|
* Application specific definitions.
|
||||||
|
*
|
||||||
|
* These definitions should be adjusted for your particular hardware and
|
||||||
|
* application requirements.
|
||||||
|
*
|
||||||
|
* These parameters and more are described within the 'configuration' section of the
|
||||||
|
* FreeRTOS API documentation available on the FreeRTOS.org web site.
|
||||||
|
*
|
||||||
|
* See http://www.freertos.org/a00110.html
|
||||||
|
*----------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Includes */
|
||||||
|
/* Section where include file can be added */
|
||||||
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
/* Ensure definitions are only used by the compiler, and not by the assembler. */
|
||||||
|
#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
extern uint32_t SystemCoreClock;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CMSIS_device_header
|
||||||
|
//#define CMSIS_device_header "niietcm4.h"
|
||||||
|
#define CMSIS_device_header "at32f435_437.h"
|
||||||
|
#endif /* CMSIS_device_header */
|
||||||
|
|
||||||
|
//#include "niietcm4.h"
|
||||||
|
#include "at32f435_437.h"
|
||||||
|
|
||||||
|
#define configCHECK_FOR_STACK_OVERFLOW 1
|
||||||
|
|
||||||
|
#define configENABLE_FPU 1
|
||||||
|
#define configENABLE_MPU 0
|
||||||
|
|
||||||
|
#define configUSE_PREEMPTION 1
|
||||||
|
#define configSUPPORT_STATIC_ALLOCATION 1
|
||||||
|
#define configSUPPORT_DYNAMIC_ALLOCATION 1
|
||||||
|
#define configUSE_IDLE_HOOK 0
|
||||||
|
#define configUSE_TICK_HOOK 0
|
||||||
|
#define configCPU_CLOCK_HZ ( system_core_clock )
|
||||||
|
#define configTICK_RATE_HZ ((TickType_t)1000)
|
||||||
|
#define configMAX_PRIORITIES ( 56 )
|
||||||
|
#define configMINIMAL_STACK_SIZE ((uint16_t)64)
|
||||||
|
#define configTOTAL_HEAP_SIZE ((size_t)1000)
|
||||||
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
#define configUSE_16_BIT_TICKS 0
|
||||||
|
#define configUSE_MUTEXES 1
|
||||||
|
#define configQUEUE_REGISTRY_SIZE 8
|
||||||
|
#define configUSE_RECURSIVE_MUTEXES 1
|
||||||
|
#define configUSE_COUNTING_SEMAPHORES 1
|
||||||
|
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
|
||||||
|
/* USER CODE BEGIN MESSAGE_BUFFER_LENGTH_TYPE */
|
||||||
|
/* Defaults to size_t for backward compatibility, but can be changed
|
||||||
|
if lengths will always be less than the number of bytes in a size_t. */
|
||||||
|
#define configMESSAGE_BUFFER_LENGTH_TYPE size_t
|
||||||
|
/* USER CODE END MESSAGE_BUFFER_LENGTH_TYPE */
|
||||||
|
|
||||||
|
/* Co-routine definitions. */
|
||||||
|
#define configUSE_CO_ROUTINES 0
|
||||||
|
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
|
||||||
|
|
||||||
|
/* Software timer definitions. */
|
||||||
|
#define configUSE_TIMERS 1
|
||||||
|
#define configTIMER_TASK_PRIORITY ( 2 )
|
||||||
|
#define configTIMER_QUEUE_LENGTH 10
|
||||||
|
#define configTIMER_TASK_STACK_DEPTH 128
|
||||||
|
|
||||||
|
/* CMSIS-RTOS V2 flags */
|
||||||
|
#define configUSE_OS2_THREAD_SUSPEND_RESUME 1
|
||||||
|
#define configUSE_OS2_THREAD_ENUMERATE 1
|
||||||
|
#define configUSE_OS2_EVENTFLAGS_FROM_ISR 1
|
||||||
|
#define configUSE_OS2_THREAD_FLAGS 1
|
||||||
|
#define configUSE_OS2_TIMER 1
|
||||||
|
#define configUSE_OS2_MUTEX 1
|
||||||
|
|
||||||
|
/* Set the following definitions to 1 to include the API function, or zero
|
||||||
|
to exclude the API function. */
|
||||||
|
#define INCLUDE_vTaskPrioritySet 1
|
||||||
|
#define INCLUDE_uxTaskPriorityGet 1
|
||||||
|
#define INCLUDE_vTaskDelete 1
|
||||||
|
#define INCLUDE_vTaskCleanUpResources 0
|
||||||
|
#define INCLUDE_vTaskSuspend 1
|
||||||
|
#define INCLUDE_vTaskDelayUntil 1
|
||||||
|
#define INCLUDE_vTaskDelay 1
|
||||||
|
#define INCLUDE_xTaskGetSchedulerState 1
|
||||||
|
#define INCLUDE_xTimerPendFunctionCall 1
|
||||||
|
#define INCLUDE_xQueueGetMutexHolder 1
|
||||||
|
#define INCLUDE_uxTaskGetStackHighWaterMark 1
|
||||||
|
#define INCLUDE_xTaskGetCurrentTaskHandle 1
|
||||||
|
#define INCLUDE_eTaskGetState 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The CMSIS-RTOS V2 FreeRTOS wrapper is dependent on the heap implementation used
|
||||||
|
* by the application thus the correct define need to be enabled below
|
||||||
|
*/
|
||||||
|
#define USE_FreeRTOS_HEAP_4
|
||||||
|
|
||||||
|
/* Cortex-M specific definitions. */
|
||||||
|
#ifdef __NVIC_PRIO_BITS
|
||||||
|
/* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
|
||||||
|
#define configPRIO_BITS __NVIC_PRIO_BITS
|
||||||
|
#else
|
||||||
|
#define configPRIO_BITS 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* The lowest interrupt priority that can be used in a call to a "set priority"
|
||||||
|
function. */
|
||||||
|
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
|
||||||
|
|
||||||
|
/* The highest interrupt priority that can be used by any interrupt service
|
||||||
|
routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
|
||||||
|
INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
|
||||||
|
PRIORITY THAN THIS! (higher priorities are lower numeric values. */
|
||||||
|
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
|
||||||
|
|
||||||
|
/* Interrupt priorities used by the kernel port layer itself. These are generic
|
||||||
|
to all Cortex-M ports, and do not rely on any particular library functions. */
|
||||||
|
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
||||||
|
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
|
||||||
|
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
|
||||||
|
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
||||||
|
|
||||||
|
/* Normal assert() semantics without relying on the provision of an assert.h
|
||||||
|
header file. */
|
||||||
|
/* USER CODE BEGIN 1 */
|
||||||
|
#define configASSERT(x) if ((x) == 0) {taskDISABLE_INTERRUPTS(); for( ;; );}
|
||||||
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
|
/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
|
||||||
|
standard names. */
|
||||||
|
#define vPortSVCHandler SVC_Handler
|
||||||
|
#define xPortPendSVHandler PendSV_Handler
|
||||||
|
|
||||||
|
/* IMPORTANT: After 10.3.1 update, Systick_Handler comes from NVIC (if SYS timebase = systick), otherwise from cmsis_os2.c */
|
||||||
|
|
||||||
|
#define USE_CUSTOM_SYSTICK_HANDLER_IMPLEMENTATION 0
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FREERTOS_CONFIG_H */
|
||||||
|
|
@ -0,0 +1,191 @@
|
||||||
|
/**
|
||||||
|
**************************************************************************
|
||||||
|
* @file at32f435_437_conf.h
|
||||||
|
* @version v2.0.4
|
||||||
|
* @date 2021-12-31
|
||||||
|
* @brief at32f435_437 config header file
|
||||||
|
**************************************************************************
|
||||||
|
* Copyright notice & Disclaimer
|
||||||
|
*
|
||||||
|
* The software Board Support Package (BSP) that is made available to
|
||||||
|
* download from Artery official website is the copyrighted work of Artery.
|
||||||
|
* Artery authorizes customers to use, copy, and distribute the BSP
|
||||||
|
* software and its related documentation for the purpose of design and
|
||||||
|
* development in conjunction with Artery microcontrollers. Use of the
|
||||||
|
* software is governed by this copyright notice and the following disclaimer.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ON "AS IS" BASIS WITHOUT WARRANTIES,
|
||||||
|
* GUARANTEES OR REPRESENTATIONS OF ANY KIND. ARTERY EXPRESSLY DISCLAIMS,
|
||||||
|
* TO THE FULLEST EXTENT PERMITTED BY LAW, ALL EXPRESS, IMPLIED OR
|
||||||
|
* STATUTORY OR OTHER WARRANTIES, GUARANTEES OR REPRESENTATIONS,
|
||||||
|
* INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __AT32F435_437_CONF_H
|
||||||
|
#define __AT32F435_437_CONF_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/** @addtogroup AT32F435_periph_template
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup 435_Library_configuration Library_configuration
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief in the following line adjust the value of high speed exernal crystal (hext)
|
||||||
|
* used in your application
|
||||||
|
*
|
||||||
|
* tip: to avoid modifying this file each time you need to use different hext, you
|
||||||
|
* can define the hext value in your toolchain compiler preprocessor.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined HEXT_VALUE
|
||||||
|
#define HEXT_VALUE ((uint32_t)25000000) /*!< value of the high speed exernal crystal in hz */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief in the following line adjust the high speed exernal crystal (hext) startup
|
||||||
|
* timeout value
|
||||||
|
*/
|
||||||
|
#define HEXT_STARTUP_TIMEOUT ((uint16_t)0x3000) /*!< time out for hext start up */
|
||||||
|
#define HICK_VALUE ((uint32_t)8000000) /*!< value of the high speed internal clock in hz */
|
||||||
|
|
||||||
|
/* module define -------------------------------------------------------------*/
|
||||||
|
#define CRM_MODULE_ENABLED
|
||||||
|
#define TMR_MODULE_ENABLED
|
||||||
|
#define ERTC_MODULE_ENABLED
|
||||||
|
#define GPIO_MODULE_ENABLED
|
||||||
|
#define I2C_MODULE_ENABLED
|
||||||
|
#define USART_MODULE_ENABLED
|
||||||
|
#define PWC_MODULE_ENABLED
|
||||||
|
#define CAN_MODULE_ENABLED
|
||||||
|
#define ADC_MODULE_ENABLED
|
||||||
|
#define DAC_MODULE_ENABLED
|
||||||
|
#define SPI_MODULE_ENABLED
|
||||||
|
#define EDMA_MODULE_ENABLED
|
||||||
|
#define DMA_MODULE_ENABLED
|
||||||
|
#define DEBUG_MODULE_ENABLED
|
||||||
|
#define FLASH_MODULE_ENABLED
|
||||||
|
#define CRC_MODULE_ENABLED
|
||||||
|
#define WWDT_MODULE_ENABLED
|
||||||
|
#define WDT_MODULE_ENABLED
|
||||||
|
#define EXINT_MODULE_ENABLED
|
||||||
|
#define SDIO_MODULE_ENABLED
|
||||||
|
#define XMC_MODULE_ENABLED
|
||||||
|
#define USB_MODULE_ENABLED
|
||||||
|
#define ACC_MODULE_ENABLED
|
||||||
|
#define MISC_MODULE_ENABLED
|
||||||
|
#define QSPI_MODULE_ENABLED
|
||||||
|
#define DVP_MODULE_ENABLED
|
||||||
|
#define SCFG_MODULE_ENABLED
|
||||||
|
#define EMAC_MODULE_ENABLED
|
||||||
|
|
||||||
|
/* includes ------------------------------------------------------------------*/
|
||||||
|
#ifdef CRM_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_crm.h"
|
||||||
|
#endif
|
||||||
|
#ifdef TMR_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_tmr.h"
|
||||||
|
#endif
|
||||||
|
#ifdef ERTC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_ertc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef GPIO_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_gpio.h"
|
||||||
|
#endif
|
||||||
|
#ifdef I2C_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_i2c.h"
|
||||||
|
#endif
|
||||||
|
#ifdef USART_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_usart.h"
|
||||||
|
#endif
|
||||||
|
#ifdef PWC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_pwc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef CAN_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_can.h"
|
||||||
|
#endif
|
||||||
|
#ifdef ADC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_adc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef DAC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_dac.h"
|
||||||
|
#endif
|
||||||
|
#ifdef SPI_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_spi.h"
|
||||||
|
#endif
|
||||||
|
#ifdef DMA_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_dma.h"
|
||||||
|
#endif
|
||||||
|
#ifdef DEBUG_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_debug.h"
|
||||||
|
#endif
|
||||||
|
#ifdef FLASH_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_flash.h"
|
||||||
|
#endif
|
||||||
|
#ifdef CRC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_crc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef WWDT_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_wwdt.h"
|
||||||
|
#endif
|
||||||
|
#ifdef WDT_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_wdt.h"
|
||||||
|
#endif
|
||||||
|
#ifdef EXINT_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_exint.h"
|
||||||
|
#endif
|
||||||
|
#ifdef SDIO_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_sdio.h"
|
||||||
|
#endif
|
||||||
|
#ifdef XMC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_xmc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef ACC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_acc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef MISC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_misc.h"
|
||||||
|
#endif
|
||||||
|
#ifdef EDMA_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_edma.h"
|
||||||
|
#endif
|
||||||
|
#ifdef QSPI_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_qspi.h"
|
||||||
|
#endif
|
||||||
|
#ifdef SCFG_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_scfg.h"
|
||||||
|
#endif
|
||||||
|
#ifdef EMAC_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_emac.h"
|
||||||
|
#endif
|
||||||
|
#ifdef DVP_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_dvp.h"
|
||||||
|
#endif
|
||||||
|
#ifdef USB_MODULE_ENABLED
|
||||||
|
#include "at32f435_437_usb.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -0,0 +1,364 @@
|
||||||
|
#include "FirmwareLoader.h"
|
||||||
|
#include "EgtsProcessing.h"
|
||||||
|
#include "ext_telematica.h"
|
||||||
|
#include "ld_adr.h"
|
||||||
|
#include "math.h"
|
||||||
|
#include "SystemDelayInterface.h"
|
||||||
|
#include "Accel_QMA6100P.h"
|
||||||
|
#include "EgtsTeledataPoint.h"
|
||||||
|
#include "VariablesTable.h"
|
||||||
|
|
||||||
|
#define FIRMWARE_MAIN_ADDR (0x08000000 + BOOT_AREA_LENGTH)
|
||||||
|
#define FIRMWARE_MAIN_RECOVERY_ADDR (FIRMWARE_MAIN_ADDR + FIRMWARE_MAIN_AREA_LENGTH)
|
||||||
|
|
||||||
|
#define FIRMWARE_TELE_MAIN_ADDR (FIRMWARE_MAIN_RECOVERY_ADDR + FIRMWARE_MAIN_UPDATE_AREA_LENGTH)
|
||||||
|
#define FIRMWARE_TELE_RECOVERY_ADDR (FIRMWARE_MAIN_ADDR + FIRMWARE_MAIN_AREA_LENGTH)
|
||||||
|
|
||||||
|
//tFirmwareLoader FIRMWARE_UVEOS_LOADER;
|
||||||
|
tFirmwareLoader FIRMWARE_TELE_LOADER;
|
||||||
|
tFirmwareLoader FIRMWARE_LOADER;
|
||||||
|
|
||||||
|
// Переполнение стека
|
||||||
|
void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) {
|
||||||
|
for (;;) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tMmaTele EXT_ENV_TELE;
|
||||||
|
tEgtsProcessing egtsProcessing;
|
||||||
|
tGsmWithGnss gsmWithGnss;
|
||||||
|
tLittleFileFs fs;
|
||||||
|
eDeviceTestingCode deviceTestingCodeCan;
|
||||||
|
/*
|
||||||
|
vector3 vecOld;
|
||||||
|
vector3 vec;
|
||||||
|
vector3 vecDiff;
|
||||||
|
|
||||||
|
float vecTotal;
|
||||||
|
float vecTotalOld;
|
||||||
|
float koefAcc;
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
void DataAccel_Vector(vector3 *current) {
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LOG_SIGN "EGTS"
|
||||||
|
#define LOGGER &egtsProcessing.slog->logger
|
||||||
|
|
||||||
|
bool cal;
|
||||||
|
|
||||||
|
#define ACCEL_TRESHOLD 20
|
||||||
|
|
||||||
|
|
||||||
|
//double maxA;
|
||||||
|
|
||||||
|
void DataAccel_Vector(tAccelCoor *xyz) {
|
||||||
|
/*
|
||||||
|
if (egtsProcessing.timeAccelUpdateUds < SystemGetMs()) {
|
||||||
|
|
||||||
|
egtsProcessing.timeAccelUpdateUds = SystemGetMs() + 500;
|
||||||
|
//начало---------------------------------Рассчет для UDS сканера----------------------------------------------------
|
||||||
|
vector3 gravity = (vector3) {0.f, 0.f, 1.f};
|
||||||
|
vector3 currentValue = (vector3) {(float) xyz->x / 1000000, (float) xyz->y / 1000000, (float) xyz->z / 1000000};
|
||||||
|
|
||||||
|
egtsProcessing.rawAccel.x = (int16_t) (currentValue.x * 1333);
|
||||||
|
egtsProcessing.rawAccel.y = (int16_t) (currentValue.y * 1333);
|
||||||
|
egtsProcessing.rawAccel.z = (int16_t) (currentValue.z * 1333);
|
||||||
|
|
||||||
|
float angleCos = vector3AngleCos(gravity, currentValue);;
|
||||||
|
float angle = acosf(angleCos);
|
||||||
|
egtsProcessing.rawAccel.angle = 180.0 / 3.141592 * angle;
|
||||||
|
|
||||||
|
//конец---------------------------------Рассчет для UDS сканера-----------------------------------------------------
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
if (egtsProcessing.timeAccelUpdate < SystemGetMs()) {
|
||||||
|
|
||||||
|
egtsProcessing.timeAccelUpdate = SystemGetMs() + 100;
|
||||||
|
|
||||||
|
xyz->x = xyz->x / 1000;
|
||||||
|
xyz->y = xyz->y / 1000;
|
||||||
|
xyz->z = xyz->z / 1000;
|
||||||
|
|
||||||
|
egtsProcessing.x1 = xyz->x;
|
||||||
|
egtsProcessing.y1 = xyz->y;
|
||||||
|
egtsProcessing.z1 = xyz->z;
|
||||||
|
|
||||||
|
if (cal) {
|
||||||
|
egtsProcessing.x2 = egtsProcessing.x1;
|
||||||
|
egtsProcessing.y2 = egtsProcessing.y1;
|
||||||
|
egtsProcessing.z2 = egtsProcessing.z1;
|
||||||
|
cal = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
double vect_vert_len = (egtsProcessing.x1 * egtsProcessing.x2 + egtsProcessing.y1 * egtsProcessing.y2 +
|
||||||
|
egtsProcessing.z1 * egtsProcessing.z2) /
|
||||||
|
(sqrt(egtsProcessing.x2 * egtsProcessing.x2 + egtsProcessing.y2 * egtsProcessing.y2 +
|
||||||
|
egtsProcessing.z2 * egtsProcessing.z2) + 0.001);
|
||||||
|
|
||||||
|
double a = sqrt(fabs((egtsProcessing.x1 * egtsProcessing.x1 + egtsProcessing.y1 * egtsProcessing.y1 +
|
||||||
|
egtsProcessing.z1 * egtsProcessing.z1) -
|
||||||
|
(vect_vert_len * vect_vert_len)));
|
||||||
|
|
||||||
|
|
||||||
|
egtsProcessing.count_shot = (a > ACCEL_TRESHOLD) ? egtsProcessing.count_shot + 1 : 0;
|
||||||
|
|
||||||
|
// if (a > maxA) {
|
||||||
|
// maxA = a;
|
||||||
|
// }
|
||||||
|
|
||||||
|
++egtsProcessing.count_free;
|
||||||
|
|
||||||
|
if (egtsProcessing.count_shot == 0) {
|
||||||
|
if (egtsProcessing.count_free >= 100) {
|
||||||
|
// OFF
|
||||||
|
if (egtsProcessing.carEventPosition.carPosition == CAR_POSITION_MOVE) {
|
||||||
|
if (egtsProcessing.totalSpeed <
|
||||||
|
egtsProcessing.deviceTeledataStorageData->telematica.EGTS_GNSS_COURSE_SPEED) {
|
||||||
|
|
||||||
|
egtsProcessing.carEventPosition.carPosition = CAR_POSITION_FIX;
|
||||||
|
egtsProcessing.count_free = 0;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
egtsProcessing.count_free = 90;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
egtsProcessing.count_free = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (egtsProcessing.count_shot > 3) {
|
||||||
|
|
||||||
|
// egtsProcessing.x1 = egtsProcessing.x2;
|
||||||
|
// egtsProcessing.y1 = egtsProcessing.y2;
|
||||||
|
// egtsProcessing.z1 = egtsProcessing.z2;
|
||||||
|
egtsProcessing.x2 = egtsProcessing.x1;
|
||||||
|
egtsProcessing.y2 = egtsProcessing.y1;
|
||||||
|
egtsProcessing.z2 = egtsProcessing.z1;
|
||||||
|
|
||||||
|
egtsProcessing.count_free = 0;
|
||||||
|
|
||||||
|
//ON
|
||||||
|
egtsProcessing.carEventPosition.carPosition = CAR_POSITION_MOVE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
volatile uint32_t valueCounter1;
|
||||||
|
volatile uint32_t valueCounter2;
|
||||||
|
volatile uint32_t valueCounter3;
|
||||||
|
|
||||||
|
void main_init() {
|
||||||
|
// maxA = 0;
|
||||||
|
|
||||||
|
valueCounter1 = 0;
|
||||||
|
valueCounter2 = 0;
|
||||||
|
valueCounter3 = 0;
|
||||||
|
|
||||||
|
cal = true;
|
||||||
|
memset(&egtsProcessing, 0, sizeof(tEgtsProcessing));
|
||||||
|
memset(&gsmWithGnss, 0, sizeof(tGsmWithGnss));
|
||||||
|
memset(&fs, 0, sizeof(tLittleFileFs));
|
||||||
|
|
||||||
|
deviceTestingCodeCan = DEVICE_TESTING_CODE_IN_PROCESS;
|
||||||
|
EXT_ENV_TELE.deviceTestingCodeCan = &deviceTestingCodeCan;
|
||||||
|
|
||||||
|
// FirmwareLoader_Init(&FIRMWARE_UVEOS_LOADER, FIRMWARE_MAIN_AREA_LENGTH, FIRMWARE_MAIN_ADDR,
|
||||||
|
// FIRMWARE_MAIN_RECOVERY_ADDR);
|
||||||
|
|
||||||
|
FirmwareLoader_Init(&FIRMWARE_TELE_LOADER, FIRMWARE_TELE_AREA_LENGTH, FIRMWARE_TELE_MAIN_ADDR,
|
||||||
|
FIRMWARE_TELE_RECOVERY_ADDR);
|
||||||
|
|
||||||
|
FirmwareLoader_LoadMetadata(&FIRMWARE_TELE_LOADER, &FIRMWARE_TELE_LOADER.main);
|
||||||
|
|
||||||
|
FirmwareLoader_Init(&FIRMWARE_LOADER, FIRMWARE_MAIN_AREA_LENGTH, FIRMWARE_MAIN_ADDR,
|
||||||
|
FIRMWARE_MAIN_RECOVERY_ADDR);
|
||||||
|
|
||||||
|
FirmwareLoader_LoadMetadata(&FIRMWARE_LOADER, &FIRMWARE_LOADER.main);
|
||||||
|
|
||||||
|
// LittleFileFsInit(&fs, EXT_ENV_TELE.deviceStorage->dumpObserver.accessDumper);
|
||||||
|
LittleFileFsInit(&fs);
|
||||||
|
|
||||||
|
GsmWithGnssInit(&gsmWithGnss);
|
||||||
|
|
||||||
|
EgtsProcessing_Init(
|
||||||
|
&egtsProcessing,
|
||||||
|
&gsmWithGnss,
|
||||||
|
EXT_ENV_TELE.rtcIO,
|
||||||
|
&fs,
|
||||||
|
EXT_ENV_TELE.loggerToSerialPort
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void *tele_func(void *env, eEventTelematica event);
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
XfcProtMethodsInit_Certs(&egtsProcessing.certs);
|
||||||
|
EgtsProcessing_Start(&egtsProcessing);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GsmWithGnssTelematica_Urc(tAtBuffer *buff);
|
||||||
|
|
||||||
|
void ComIntTelematica(tXfcProtTable *protTab);
|
||||||
|
|
||||||
|
void ComIntTelematicaDefault();
|
||||||
|
|
||||||
|
void GsmWithGnssTelematica_Urc(tAtBuffer *buff);
|
||||||
|
|
||||||
|
|
||||||
|
void setNullParm() {
|
||||||
|
EXT_ENV_TELE.SrandStdLib = NULL;
|
||||||
|
EXT_ENV_TELE.RandStdLib = NULL;
|
||||||
|
EXT_ENV_TELE.DataToCan = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *tele_func(void *env, eEventTelematica event) {
|
||||||
|
// uint16_t sent = 0;
|
||||||
|
// // uint32_t tm = SystemGetMs();
|
||||||
|
// if (event == TELE_MODULE_GNSS) {
|
||||||
|
// if (!EXT_ENV_TELE.store.device->factoryMode) {
|
||||||
|
// //начало-----------------------------------ТИШИНА-------------------------------------------------------
|
||||||
|
//
|
||||||
|
// CanSerialPortFrameSetId1(egtsProcessing.CanMain.CanIO->env, 0x640);
|
||||||
|
//
|
||||||
|
// if (EXT_ENV_TELE.GNSS_General->GNSS_LC > 15) {
|
||||||
|
// EXT_ENV_TELE.GNSS_General->GNSS_LC = 0;
|
||||||
|
// } else {
|
||||||
|
// ++EXT_ENV_TELE.GNSS_General->GNSS_LC;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// sent = egtsProcessing.CanMain.CanIO->transmit1(egtsProcessing.CanMain.CanIO->env, (uint8_t *) EXT_ENV_TELE.GNSS_General, 2,
|
||||||
|
// WAIT_FRAME_WRITE);
|
||||||
|
// sent = sent;
|
||||||
|
// //конец-----------------------------------ТИШИНА-------------------------------------------------------
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_COUNTER_1) {
|
||||||
|
++valueCounter1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_COUNTER_2) {
|
||||||
|
++valueCounter2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_COUNTER_3) {
|
||||||
|
++valueCounter3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_INIT) {
|
||||||
|
|
||||||
|
bool isGeneralToCan = VariablesTable_CheckUDS_ByNameStatic(EXT_ENV_TELE.store.publicVariablesTable, "GNSS_GENERAL_TO_CAN");
|
||||||
|
|
||||||
|
if (isGeneralToCan == false) {
|
||||||
|
setNullParm();
|
||||||
|
}
|
||||||
|
|
||||||
|
main_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_PRE_INIT) {
|
||||||
|
asm("bl Reset_Handler");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_START) {
|
||||||
|
main();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_COM_INT) {
|
||||||
|
ComIntTelematica(env);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_COM_INT_DEFAULT) {
|
||||||
|
ComIntTelematicaDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_GSM_URC) {
|
||||||
|
GsmWithGnssTelematica_Urc(env);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_ACCEL_DATA) {
|
||||||
|
DataAccel_Vector(env);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_ADD_EVENT) {
|
||||||
|
addEventFromUveos(&egtsProcessing, env);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_CAN_UDS_START) {
|
||||||
|
CanMain_Start(&egtsProcessing.CanMain);
|
||||||
|
CanMainAdditional_Start(&egtsProcessing.CanMainAdditional);
|
||||||
|
CanMainTest_Start(&egtsProcessing.CanMainTest);
|
||||||
|
CanMainMute_Start(&egtsProcessing.CanMainMute);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_SHUTDOWN) {
|
||||||
|
/** Проверка флага обновления */
|
||||||
|
if(egtsProcessing.isTimerUpdate == true){
|
||||||
|
/** проверка таймера обновления*/
|
||||||
|
if(egtsProcessing.timerUpdate > SystemGetMs()){
|
||||||
|
return &egtsProcessing.timerUpdate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
egtsProcessing.timerUpdate = 0;
|
||||||
|
|
||||||
|
EXT_ENV_TELE.store.runtime->EGTS_FLEET_ON = false;
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Зафиксировано событие: TELE_MODULE_SHUTDOWN")
|
||||||
|
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Ожидание закрытия соединения")
|
||||||
|
|
||||||
|
///* FIX
|
||||||
|
for (uint8_t i = 0; i < 30; i++) {
|
||||||
|
if (EXT_ENV_TELE.store.runtime->telematicaCloseConnect == true) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SystemDelayMs(100);
|
||||||
|
|
||||||
|
}
|
||||||
|
// uint32_t tm = SystemGetMs() + 3000;
|
||||||
|
// uint32_t timer = SystemGetMs();
|
||||||
|
//
|
||||||
|
// while ((tm > timer) && (EXT_ENV_TELE.store.runtime->telematicaCloseConnect == false)) {
|
||||||
|
// timer = SystemGetMs();
|
||||||
|
// SystemDelayMs(100);
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (EXT_ENV_TELE.store.runtime->telematicaCloseConnect == true) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Соединение успешно закрыто")
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Соединение не было закрыто")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return &egtsProcessing.timerUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_MUTE_ON) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Зафиксировано событие: TELE_MODULE_MUTE_ON")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_MUTE_OFF) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Зафиксировано событие: TELE_MODULE_MUTE_OFF")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_FUEL_CUT_OFF) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Зафиксировано событие: TELE_MODULE_FUEL_CUT_OFF")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event == TELE_MODULE_GET_CAN_COM_IO) {
|
||||||
|
return &egtsProcessing.serialPortCanComIntIO;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"cmake": {
|
||||||
|
"inc_dirs": [
|
||||||
|
"./",
|
||||||
|
"./clock",
|
||||||
|
"./int"
|
||||||
|
],
|
||||||
|
"srcs": [
|
||||||
|
"./**.c",
|
||||||
|
"./clock/**.c",
|
||||||
|
"./int/**.c",
|
||||||
|
"./**.s"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,571 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file startup_at32f435_437.s
|
||||||
|
* @version v2.0.4
|
||||||
|
* @date 2021-12-31
|
||||||
|
* @brief at32f435_437 devices vector table for gcc toolchain.
|
||||||
|
* this module performs:
|
||||||
|
* - set the initial sp
|
||||||
|
* - set the initial pc == reset_handler,
|
||||||
|
* - set the vector table entries with the exceptions isr address
|
||||||
|
* - configure the clock system and the external sram to
|
||||||
|
* be used as data memory (optional, to be enabled by user)
|
||||||
|
* - branches to main in the c library (which eventually
|
||||||
|
* calls main()).
|
||||||
|
* after reset the cortex-m4 processor is in thread mode,
|
||||||
|
* priority is privileged, and the stack is set to main.
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
.syntax unified
|
||||||
|
.cpu cortex-m4
|
||||||
|
.fpu softvfp
|
||||||
|
.thumb
|
||||||
|
|
||||||
|
.global g_pfnVectors
|
||||||
|
.global Default_Handler
|
||||||
|
|
||||||
|
/* start address for the initialization values of the .data section.
|
||||||
|
defined in linker script */
|
||||||
|
.word _sidata
|
||||||
|
/* start address for the .data section. defined in linker script */
|
||||||
|
.word _sdata
|
||||||
|
/* end address for the .data section. defined in linker script */
|
||||||
|
.word _edata
|
||||||
|
/* start address for the .bss section. defined in linker script */
|
||||||
|
.word _sbss
|
||||||
|
/* end address for the .bss section. defined in linker script */
|
||||||
|
.word _ebss
|
||||||
|
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This is the code that gets called when the processor first
|
||||||
|
* starts execution following a reset event. Only the absolutely
|
||||||
|
* necessary set is performed, after which the application
|
||||||
|
* supplied main() routine is called.
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
|
||||||
|
.section .text.Reset_Handler
|
||||||
|
.weak Reset_Handler
|
||||||
|
.type Reset_Handler, %function
|
||||||
|
|
||||||
|
|
||||||
|
Reset_Handler:
|
||||||
|
movs r1, #0
|
||||||
|
b LoopCopyDataInit
|
||||||
|
|
||||||
|
CopyDataInit:
|
||||||
|
ldr r3, =_sidata
|
||||||
|
ldr r3, [r3, r1]
|
||||||
|
str r3, [r0, r1]
|
||||||
|
adds r1, r1, #4
|
||||||
|
|
||||||
|
LoopCopyDataInit:
|
||||||
|
ldr r0, =_sdata
|
||||||
|
ldr r3, =_edata
|
||||||
|
adds r2, r0, r1
|
||||||
|
cmp r2, r3
|
||||||
|
bcc CopyDataInit
|
||||||
|
ldr r2, =_sbss
|
||||||
|
b LoopFillZerobss
|
||||||
|
/* Zero fill the bss segment. */
|
||||||
|
FillZerobss:
|
||||||
|
movs r3, #0
|
||||||
|
str r3, [r2], #4
|
||||||
|
|
||||||
|
LoopFillZerobss:
|
||||||
|
ldr r3, = _ebss
|
||||||
|
cmp r2, r3
|
||||||
|
bcc FillZerobss
|
||||||
|
|
||||||
|
/* Call the clock system intitialization function.*/
|
||||||
|
/* bl SystemInit*/
|
||||||
|
/* Call static constructors */
|
||||||
|
/* bl __libc_init_array*/
|
||||||
|
/* Call the application's entry point.*/
|
||||||
|
/* bl main_init*/
|
||||||
|
bx lr
|
||||||
|
.size Reset_Handler, .-Reset_Handler
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This is the code that gets called when the processor receives an
|
||||||
|
* unexpected interrupt. This simply enters an infinite loop, preserving
|
||||||
|
* the system state for examination by a debugger.
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
.section .text.Default_Handler,"ax",%progbits
|
||||||
|
Default_Handler:
|
||||||
|
Infinite_Loop:
|
||||||
|
b Infinite_Loop
|
||||||
|
.size Default_Handler, .-Default_Handler
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* The minimal vector table for a Cortex M3. Note that the proper constructs
|
||||||
|
* must be placed on this to ensure that it ends up at physical address
|
||||||
|
* 0x0000.0000.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
.section .isr_vector,"a",%progbits
|
||||||
|
.type g_pfnVectors, %object
|
||||||
|
.size g_pfnVectors, .-g_pfnVectors
|
||||||
|
|
||||||
|
|
||||||
|
g_pfnVectors:
|
||||||
|
.word _estack
|
||||||
|
.word Reset_Handler
|
||||||
|
.word NMI_Handler
|
||||||
|
.word HardFault_Handler
|
||||||
|
.word MemManage_Handler
|
||||||
|
.word BusFault_Handler
|
||||||
|
.word UsageFault_Handler
|
||||||
|
.word 0
|
||||||
|
.word 0
|
||||||
|
.word 0
|
||||||
|
.word 0
|
||||||
|
.word SVC_Handler
|
||||||
|
.word DebugMon_Handler
|
||||||
|
.word 0
|
||||||
|
.word PendSV_Handler
|
||||||
|
.word SysTick_Handler
|
||||||
|
|
||||||
|
/* External Interrupts */
|
||||||
|
.word WWDT_IRQHandler /* Window Watchdog Timer */
|
||||||
|
.word PVM_IRQHandler /* PVM through EXINT Line detect */
|
||||||
|
.word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXINT line */
|
||||||
|
.word ERTC_WKUP_IRQHandler /* ERTC Wakeup through the EXINT line */
|
||||||
|
.word FLASH_IRQHandler /* Flash */
|
||||||
|
.word CRM_IRQHandler /* CRM */
|
||||||
|
.word EXINT0_IRQHandler /* EXINT Line 0 */
|
||||||
|
.word EXINT1_IRQHandler /* EXINT Line 1 */
|
||||||
|
.word EXINT2_IRQHandler /* EXINT Line 2 */
|
||||||
|
.word EXINT3_IRQHandler /* EXINT Line 3 */
|
||||||
|
.word EXINT4_IRQHandler /* EXINT Line 4 */
|
||||||
|
.word EDMA_Stream1_IRQHandler /* EDMA Stream 1 */
|
||||||
|
.word EDMA_Stream2_IRQHandler /* EDMA Stream 2 */
|
||||||
|
.word EDMA_Stream3_IRQHandler /* EDMA Stream 3 */
|
||||||
|
.word EDMA_Stream4_IRQHandler /* EDMA Stream 4 */
|
||||||
|
.word EDMA_Stream5_IRQHandler /* EDMA Stream 5 */
|
||||||
|
.word EDMA_Stream6_IRQHandler /* EDMA Stream 6 */
|
||||||
|
.word EDMA_Stream7_IRQHandler /* EDMA Stream 7 */
|
||||||
|
.word ADC1_2_3_IRQHandler /* ADC1 & ADC2 & ADC3 */
|
||||||
|
.word CAN1_TX_IRQHandler /* CAN1 TX */
|
||||||
|
.word CAN1_RX0_IRQHandler /* CAN1 RX0 */
|
||||||
|
.word CAN1_RX1_IRQHandler /* CAN1 RX1 */
|
||||||
|
.word CAN1_SE_IRQHandler /* CAN1 SE */
|
||||||
|
.word EXINT9_5_IRQHandler /* EXINT Line [9:5] */
|
||||||
|
.word TMR1_BRK_TMR9_IRQHandler /* TMR1 Brake and TMR9 */
|
||||||
|
.word TMR1_OVF_TMR10_IRQHandler /* TMR1 Overflow and TMR10 */
|
||||||
|
.word TMR1_TRG_HALL_TMR11_IRQHandler /* TMR1 Trigger and hall and TMR11 */
|
||||||
|
.word TMR1_CH_IRQHandler /* TMR1 Channel */
|
||||||
|
.word TMR2_GLOBAL_IRQHandler /* TMR2 */
|
||||||
|
.word TMR3_GLOBAL_IRQHandler /* TMR3 */
|
||||||
|
.word TMR4_GLOBAL_IRQHandler /* TMR4 */
|
||||||
|
.word I2C1_EVT_IRQHandler /* I2C1 Event */
|
||||||
|
.word I2C1_ERR_IRQHandler /* I2C1 Error */
|
||||||
|
.word I2C2_EVT_IRQHandler /* I2C2 Event */
|
||||||
|
.word I2C2_ERR_IRQHandler /* I2C2 Error */
|
||||||
|
.word SPI1_IRQHandler /* SPI1 */
|
||||||
|
.word SPI2_I2S2EXT_IRQHandler /* SPI2 */
|
||||||
|
.word USART1_IRQHandler /* USART1 */
|
||||||
|
.word USART2_IRQHandler /* USART2 */
|
||||||
|
.word USART3_IRQHandler /* USART3 */
|
||||||
|
.word EXINT15_10_IRQHandler /* EXINT Line [15:10] */
|
||||||
|
.word ERTCAlarm_IRQHandler /* RTC Alarm through EXINT Line */
|
||||||
|
.word OTGFS1_WKUP_IRQHandler /* OTGFS1 Wakeup from suspend */
|
||||||
|
.word TMR8_BRK_TMR12_IRQHandler /* TMR8 Brake and TMR12 */
|
||||||
|
.word TMR8_OVF_TMR13_IRQHandler /* TMR8 Overflow and TMR13 */
|
||||||
|
.word TMR8_TRG_HALL_TMR14_IRQHandler /* TMR8 Trigger and hall and TMR14 */
|
||||||
|
.word TMR8_CH_IRQHandler /* TMR8 Channel */
|
||||||
|
.word EDMA_Stream8_IRQHandler /* EDMA Stream 8 */
|
||||||
|
.word XMC_IRQHandler /* XMC */
|
||||||
|
.word SDIO1_IRQHandler /* SDIO1 */
|
||||||
|
.word TMR5_GLOBAL_IRQHandler /* TMR5 */
|
||||||
|
.word SPI3_I2S3EXT_IRQHandler /* SPI3 */
|
||||||
|
.word UART4_IRQHandler /* UART4 */
|
||||||
|
.word UART5_IRQHandler /* UART5 */
|
||||||
|
.word TMR6_DAC_GLOBAL_IRQHandler /* TMR6 & DAC */
|
||||||
|
.word TMR7_GLOBAL_IRQHandler /* TMR7 */
|
||||||
|
.word DMA1_Channel1_IRQHandler /* DMA1 Channel 1 */
|
||||||
|
.word DMA1_Channel2_IRQHandler /* DMA1 Channel 2 */
|
||||||
|
.word DMA1_Channel3_IRQHandler /* DMA1 Channel 3 */
|
||||||
|
.word DMA1_Channel4_IRQHandler /* DMA1 Channel 4 */
|
||||||
|
.word DMA1_Channel5_IRQHandler /* DMA1 Channel 5 */
|
||||||
|
.word EMAC_IRQHandler /* EMAC */
|
||||||
|
.word EMAC_WKUP_IRQHandler /* EMAC Wakeup */
|
||||||
|
.word CAN2_TX_IRQHandler /* CAN2 TX */
|
||||||
|
.word CAN2_RX0_IRQHandler /* CAN2 RX0 */
|
||||||
|
.word CAN2_RX1_IRQHandler /* CAN2 RX1 */
|
||||||
|
.word CAN2_SE_IRQHandler /* CAN2 SE */
|
||||||
|
.word OTGFS1_IRQHandler /* OTGFS1 */
|
||||||
|
.word DMA1_Channel6_IRQHandler /* DMA1 Channel 6 */
|
||||||
|
.word DMA1_Channel7_IRQHandler /* DMA1 Channel 7 */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word USART6_IRQHandler /* USART6 */
|
||||||
|
.word I2C3_EVT_IRQHandler /* I2C3 Event */
|
||||||
|
.word I2C3_ERR_IRQHandler /* I2C3 Error */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word OTGFS2_WKUP_IRQHandler /* OTGFS2 Wakeup from suspend */
|
||||||
|
.word OTGFS2_IRQHandler /* OTGFS2 */
|
||||||
|
.word DVP_IRQHandler /* DVP */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word FPU_IRQHandler /* FPU */
|
||||||
|
.word UART7_IRQHandler /* UART7 */
|
||||||
|
.word UART8_IRQHandler /* UART8 */
|
||||||
|
.word SPI4_IRQHandler /* SPI4 */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word QSPI2_IRQHandler /* QSPI2 */
|
||||||
|
.word QSPI1_IRQHandler /* QSPI1 */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word DMAMUX_IRQHandler /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word 0 /* Reserved */
|
||||||
|
.word SDIO2_IRQHandler /* SDIO2 */
|
||||||
|
.word ACC_IRQHandler /* ACC */
|
||||||
|
.word TMR20_BRK_IRQHandler /* TMR20 Brake */
|
||||||
|
.word TMR20_OVF_IRQHandler /* TMR20 Overflow */
|
||||||
|
.word TMR20_TRG_HALL_IRQHandler /* TMR20 Trigger and hall */
|
||||||
|
.word TMR20_CH_IRQHandler /* TMR20 Channel */
|
||||||
|
.word DMA2_Channel1_IRQHandler /* DMA2 Channel 1 */
|
||||||
|
.word DMA2_Channel2_IRQHandler /* DMA2 Channel 2 */
|
||||||
|
.word DMA2_Channel3_IRQHandler /* DMA2 Channel 3 */
|
||||||
|
.word DMA2_Channel4_IRQHandler /* DMA2 Channel 4 */
|
||||||
|
.word DMA2_Channel5_IRQHandler /* DMA2 Channel 5 */
|
||||||
|
.word DMA2_Channel6_IRQHandler /* DMA2 Channel 6 */
|
||||||
|
.word DMA2_Channel7_IRQHandler /* DMA2 Channel 7 */
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Provide weak aliases for each Exception handler to the Default_Handler.
|
||||||
|
* As they are weak aliases, any function with the same name will override
|
||||||
|
* this definition.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
.weak NMI_Handler
|
||||||
|
.thumb_set NMI_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak HardFault_Handler
|
||||||
|
.thumb_set HardFault_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak MemManage_Handler
|
||||||
|
.thumb_set MemManage_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak BusFault_Handler
|
||||||
|
.thumb_set BusFault_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak UsageFault_Handler
|
||||||
|
.thumb_set UsageFault_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak SVC_Handler
|
||||||
|
.thumb_set SVC_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak DebugMon_Handler
|
||||||
|
.thumb_set DebugMon_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak PendSV_Handler
|
||||||
|
.thumb_set PendSV_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak SysTick_Handler
|
||||||
|
.thumb_set SysTick_Handler,Default_Handler
|
||||||
|
|
||||||
|
.weak WWDT_IRQHandler
|
||||||
|
.thumb_set WWDT_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak PVM_IRQHandler
|
||||||
|
.thumb_set PVM_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TAMP_STAMP_IRQHandler
|
||||||
|
.thumb_set TAMP_STAMP_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak ERTC_WKUP_IRQHandler
|
||||||
|
.thumb_set ERTC_WKUP_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak FLASH_IRQHandler
|
||||||
|
.thumb_set FLASH_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak CRM_IRQHandler
|
||||||
|
.thumb_set CRM_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EXINT0_IRQHandler
|
||||||
|
.thumb_set EXINT0_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EXINT1_IRQHandler
|
||||||
|
.thumb_set EXINT1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EXINT2_IRQHandler
|
||||||
|
.thumb_set EXINT2_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EXINT3_IRQHandler
|
||||||
|
.thumb_set EXINT3_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EXINT4_IRQHandler
|
||||||
|
.thumb_set EXINT4_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EDMA_Stream1_IRQHandler
|
||||||
|
.thumb_set EDMA_Stream1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EDMA_Stream2_IRQHandler
|
||||||
|
.thumb_set EDMA_Stream2_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EDMA_Stream3_IRQHandler
|
||||||
|
.thumb_set EDMA_Stream3_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EDMA_Stream4_IRQHandler
|
||||||
|
.thumb_set EDMA_Stream4_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EDMA_Stream5_IRQHandler
|
||||||
|
.thumb_set EDMA_Stream5_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EDMA_Stream6_IRQHandler
|
||||||
|
.thumb_set EDMA_Stream6_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EDMA_Stream7_IRQHandler
|
||||||
|
.thumb_set EDMA_Stream7_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak ADC1_2_3_IRQHandler
|
||||||
|
.thumb_set ADC1_2_3_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak CAN1_TX_IRQHandler
|
||||||
|
.thumb_set CAN1_TX_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak CAN1_RX0_IRQHandler
|
||||||
|
.thumb_set CAN1_RX0_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak CAN1_RX1_IRQHandler
|
||||||
|
.thumb_set CAN1_RX1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak CAN1_SE_IRQHandler
|
||||||
|
.thumb_set CAN1_SE_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EXINT9_5_IRQHandler
|
||||||
|
.thumb_set EXINT9_5_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR1_BRK_TMR9_IRQHandler
|
||||||
|
.thumb_set TMR1_BRK_TMR9_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR1_OVF_TMR10_IRQHandler
|
||||||
|
.thumb_set TMR1_OVF_TMR10_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR1_TRG_HALL_TMR11_IRQHandler
|
||||||
|
.thumb_set TMR1_TRG_HALL_TMR11_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR1_CH_IRQHandler
|
||||||
|
.thumb_set TMR1_CH_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR2_GLOBAL_IRQHandler
|
||||||
|
.thumb_set TMR2_GLOBAL_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR3_GLOBAL_IRQHandler
|
||||||
|
.thumb_set TMR3_GLOBAL_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR4_GLOBAL_IRQHandler
|
||||||
|
.thumb_set TMR4_GLOBAL_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak I2C1_EVT_IRQHandler
|
||||||
|
.thumb_set I2C1_EVT_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak I2C1_ERR_IRQHandler
|
||||||
|
.thumb_set I2C1_ERR_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak I2C2_EVT_IRQHandler
|
||||||
|
.thumb_set I2C2_EVT_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak I2C2_ERR_IRQHandler
|
||||||
|
.thumb_set I2C2_ERR_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak SPI1_IRQHandler
|
||||||
|
.thumb_set SPI1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak SPI2_I2S2EXT_IRQHandler
|
||||||
|
.thumb_set SPI2_I2S2EXT_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak USART1_IRQHandler
|
||||||
|
.thumb_set USART1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak USART2_IRQHandler
|
||||||
|
.thumb_set USART2_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak USART3_IRQHandler
|
||||||
|
.thumb_set USART3_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EXINT15_10_IRQHandler
|
||||||
|
.thumb_set EXINT15_10_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak ERTCAlarm_IRQHandler
|
||||||
|
.thumb_set ERTCAlarm_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak OTGFS1_WKUP_IRQHandler
|
||||||
|
.thumb_set OTGFS1_WKUP_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR8_BRK_TMR12_IRQHandler
|
||||||
|
.thumb_set TMR8_BRK_TMR12_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR8_OVF_TMR13_IRQHandler
|
||||||
|
.thumb_set TMR8_OVF_TMR13_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR8_TRG_HALL_TMR14_IRQHandler
|
||||||
|
.thumb_set TMR8_TRG_HALL_TMR14_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR8_CH_IRQHandler
|
||||||
|
.thumb_set TMR8_CH_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EDMA_Stream8_IRQHandler
|
||||||
|
.thumb_set EDMA_Stream8_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak XMC_IRQHandler
|
||||||
|
.thumb_set XMC_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak SDIO1_IRQHandler
|
||||||
|
.thumb_set SDIO1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR5_GLOBAL_IRQHandler
|
||||||
|
.thumb_set TMR5_GLOBAL_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak SPI3_I2S3EXT_IRQHandler
|
||||||
|
.thumb_set SPI3_I2S3EXT_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak UART4_IRQHandler
|
||||||
|
.thumb_set UART4_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak UART5_IRQHandler
|
||||||
|
.thumb_set UART5_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR6_DAC_GLOBAL_IRQHandler
|
||||||
|
.thumb_set TMR6_DAC_GLOBAL_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR7_GLOBAL_IRQHandler
|
||||||
|
.thumb_set TMR7_GLOBAL_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA1_Channel1_IRQHandler
|
||||||
|
.thumb_set DMA1_Channel1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA1_Channel2_IRQHandler
|
||||||
|
.thumb_set DMA1_Channel2_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA1_Channel3_IRQHandler
|
||||||
|
.thumb_set DMA1_Channel3_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA1_Channel4_IRQHandler
|
||||||
|
.thumb_set DMA1_Channel4_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA1_Channel5_IRQHandler
|
||||||
|
.thumb_set DMA1_Channel5_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EMAC_IRQHandler
|
||||||
|
.thumb_set EMAC_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak EMAC_WKUP_IRQHandler
|
||||||
|
.thumb_set EMAC_WKUP_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak CAN2_TX_IRQHandler
|
||||||
|
.thumb_set CAN2_TX_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak CAN2_RX0_IRQHandler
|
||||||
|
.thumb_set CAN2_RX0_IRQHandler ,Default_Handler
|
||||||
|
|
||||||
|
.weak CAN2_RX1_IRQHandler
|
||||||
|
.thumb_set CAN2_RX1_IRQHandler ,Default_Handler
|
||||||
|
|
||||||
|
.weak CAN2_SE_IRQHandler
|
||||||
|
.thumb_set CAN2_SE_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak OTGFS1_IRQHandler
|
||||||
|
.thumb_set OTGFS1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA1_Channel6_IRQHandler
|
||||||
|
.thumb_set DMA1_Channel6_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA1_Channel7_IRQHandler
|
||||||
|
.thumb_set DMA1_Channel7_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak USART6_IRQHandler
|
||||||
|
.thumb_set USART6_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak I2C3_EVT_IRQHandler
|
||||||
|
.thumb_set I2C3_EVT_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak I2C3_ERR_IRQHandler
|
||||||
|
.thumb_set I2C3_ERR_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak OTGFS2_WKUP_IRQHandler
|
||||||
|
.thumb_set OTGFS2_WKUP_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak OTGFS2_IRQHandler
|
||||||
|
.thumb_set OTGFS2_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DVP_IRQHandler
|
||||||
|
.thumb_set DVP_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak FPU_IRQHandler
|
||||||
|
.thumb_set FPU_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak UART7_IRQHandler
|
||||||
|
.thumb_set UART7_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak UART8_IRQHandler
|
||||||
|
.thumb_set UART8_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak SPI4_IRQHandler
|
||||||
|
.thumb_set SPI4_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak QSPI2_IRQHandler
|
||||||
|
.thumb_set QSPI2_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak QSPI1_IRQHandler
|
||||||
|
.thumb_set QSPI1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMAMUX_IRQHandler
|
||||||
|
.thumb_set DMAMUX_IRQHandler ,Default_Handler
|
||||||
|
|
||||||
|
.weak SDIO2_IRQHandler
|
||||||
|
.thumb_set SDIO2_IRQHandler ,Default_Handler
|
||||||
|
|
||||||
|
.weak ACC_IRQHandler
|
||||||
|
.thumb_set ACC_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR20_BRK_IRQHandler
|
||||||
|
.thumb_set TMR20_BRK_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR20_OVF_IRQHandler
|
||||||
|
.thumb_set TMR20_OVF_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR20_TRG_HALL_IRQHandler
|
||||||
|
.thumb_set TMR20_TRG_HALL_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak TMR20_CH_IRQHandler
|
||||||
|
.thumb_set TMR20_CH_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA2_Channel1_IRQHandler
|
||||||
|
.thumb_set DMA2_Channel1_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA2_Channel2_IRQHandler
|
||||||
|
.thumb_set DMA2_Channel2_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA2_Channel3_IRQHandler
|
||||||
|
.thumb_set DMA2_Channel3_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA2_Channel4_IRQHandler
|
||||||
|
.thumb_set DMA2_Channel4_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA2_Channel5_IRQHandler
|
||||||
|
.thumb_set DMA2_Channel5_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA2_Channel6_IRQHandler
|
||||||
|
.thumb_set DMA2_Channel6_IRQHandler,Default_Handler
|
||||||
|
|
||||||
|
.weak DMA2_Channel7_IRQHandler
|
||||||
|
.thumb_set DMA2_Channel7_IRQHandler,Default_Handler
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
#-- Service --------------------------------------------------------------------
|
||||||
|
SET(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/MODULES/CmakeConfig_GCC_CortexM4/gcc_cm4f.cmake)
|
||||||
|
ENABLE_LANGUAGE(ASM)
|
||||||
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1")
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1")
|
||||||
|
|
||||||
|
IF (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||||
|
MESSAGE(
|
||||||
|
FATAL_ERROR
|
||||||
|
"In-source builds not allowed.
|
||||||
|
Please make a new directory (called a build directory) and run CMake from there.
|
||||||
|
You may need to remove CMakeCache.txt."
|
||||||
|
)
|
||||||
|
ENDIF ()
|
||||||
|
|
||||||
|
SET(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
#-- Project config -------------------------------------------------------------
|
||||||
|
PROJECT(SMART_COMPONENTS_TELEMATICA_V2) # Project name
|
||||||
|
|
||||||
|
SET(HARDWARE_VERSION 1.05)
|
||||||
|
SET(VERSION \"1.18_TELE\")
|
||||||
|
|
||||||
|
|
||||||
|
SET(VECT_TAB_OFFSET "0x10000")
|
||||||
|
|
||||||
|
SET(HEXT_VALUE "8000000")
|
||||||
|
SET(PLL_NS "125")
|
||||||
|
#
|
||||||
|
|
||||||
|
#-- Defines --------------------------------------------------------------------
|
||||||
|
ADD_DEFINITIONS(-DUART_DMA_SEND)
|
||||||
|
ADD_DEFINITIONS(-DDEBUG -DAT32F435VGT7 -DAT_START_F435_V1)
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-DFIRMWARE_TEST=1)
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-DFIRMWARE_VERSION=${VERSION})
|
||||||
|
ADD_DEFINITIONS(-DHARDWARE_REVISION=\"${HARDWARE_VERSION}\")
|
||||||
|
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-DVECT_TAB_OFFSET=${VECT_TAB_OFFSET})
|
||||||
|
ADD_DEFINITIONS(-DHEXT_VALUE=${HEXT_VALUE})
|
||||||
|
ADD_DEFINITIONS(-DPLL_NS=${PLL_NS})
|
||||||
|
ADD_DEFINITIONS(-DCMSIS_device_header="at32f435_437.h")
|
||||||
|
ADD_DEFINITIONS(-DFLASH_PAGE_SIZE=2048)
|
||||||
|
ADD_DEFINITIONS(-DCOM_INT_BIG_BUFFERS)
|
||||||
|
ADD_DEFINITIONS(-DVARIABLE_TABLE_WITH_ID)
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-DACCESS_ADC=1)
|
||||||
|
ADD_DEFINITIONS(-DACCESS_RTC=1)
|
||||||
|
|
||||||
|
#ADD_DEFINITIONS(-DLFS_NO_ASSERT=1)
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-DLFS_NO_ASSERT=1)
|
||||||
|
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-DLFS_THREADSAFE=1)
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-DLFS_NO_DEBUG=1)
|
||||||
|
ADD_DEFINITIONS(-DLFS_NO_WARN=1)
|
||||||
|
ADD_DEFINITIONS(-DLFS_NO_ERROR=1)
|
||||||
|
|
||||||
|
|
||||||
|
#ADD_DEFINITIONS(-DLFS_NO_MALLOC=1)
|
||||||
|
|
||||||
|
#-- Project paths, Include dirs, Sources list ---------------------------------
|
||||||
|
#ADD_FILES(SOURCES "MODULES/DeviceStartup_ARTERY_AT32F437ZMT7/ld/startup_at32f435_437.s")
|
||||||
|
include(modular.cmake)
|
||||||
|
|
||||||
|
#-- Options --------------------------------------------------------------------
|
||||||
|
IF (PRINTF_FLOAT STREQUAL "1")
|
||||||
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -u_printf_float")
|
||||||
|
ENDIF ()
|
||||||
|
IF (SCANF_FLOAT STREQUAL "1")
|
||||||
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -u_scanf_float")
|
||||||
|
ENDIF ()
|
||||||
|
|
||||||
|
#-- Linker script --------------------------------------------------------------
|
||||||
|
SET(LDSCRIPT ${CMAKE_SOURCE_DIR}/APP/AT32F437xM_FLASH.ld)
|
||||||
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -T ${LDSCRIPT} -Wl,-Map=${CMAKE_BINARY_DIR}/${PROJECT_NAME}.map -Wl,--print-memory-usage")
|
||||||
|
|
||||||
|
#-- Random BuildId Generation ------------------------------------------------------------
|
||||||
|
SET(RANDOM_BUILD_ID_GEN_FILE ${CMAKE_SOURCE_DIR}/MODULES/CmakeConfig_RandomBuildIdGenerator/version.cmake)
|
||||||
|
add_custom_target(GEN_RANDOM_BUILD_ID)
|
||||||
|
ADD_CUSTOM_COMMAND(TARGET GEN_RANDOM_BUILD_ID POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -P ${RANDOM_BUILD_ID_GEN_FILE})
|
||||||
|
|
||||||
|
#-- Project linking ------------------------------------------------------------
|
||||||
|
ADD_EXECUTABLE(${PROJECT_NAME}.elf ${SOURCES})
|
||||||
|
TARGET_LINK_LIBRARIES(${PROJECT_NAME}.elf)
|
||||||
|
add_dependencies(${PROJECT_NAME}.elf GEN_RANDOM_BUILD_ID)
|
||||||
|
|
||||||
|
#-- Custom commands ------------------------------------------------------------
|
||||||
|
ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME}.elf POST_BUILD
|
||||||
|
COMMAND ${CMAKE_OBJCOPY} "-Oihex" ${PROJECT_NAME}.elf ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.hex
|
||||||
|
COMMAND ${CMAKE_OBJCOPY} "-Obinary" ${PROJECT_NAME}.elf ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.bin
|
||||||
|
# COMMAND ${CMAKE_OBJDUMP} "-DS" ${PROJECT_NAME}.elf > ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.dasm
|
||||||
|
COMMAND ${CMAKE_SIZE} ${PROJECT_NAME}.elf)
|
||||||
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
#
|
||||||
|
# This is an STM32F429 discovery board with a single STM32F429ZI chip.
|
||||||
|
# http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF259090
|
||||||
|
#
|
||||||
|
|
||||||
|
source [find interface/stlink.cfg]
|
||||||
|
|
||||||
|
transport select hla_swd
|
||||||
|
|
||||||
|
source [find target/at32f435xx.cfg]
|
||||||
|
|
||||||
|
#reset_config trst_only
|
||||||
|
#reset_config srst_only
|
||||||
|
#reset_config trst_and_srst
|
||||||
|
#reset_config srst_pulls_trst
|
||||||
|
#reset_config combined
|
||||||
|
#reset_config srst_gates_jtag
|
||||||
|
#reset_config trst_push_pull
|
||||||
|
#reset_config trst_push_pull
|
||||||
|
|
||||||
|
reset_config none
|
||||||
|
|
||||||
|
#reset_config [none|trst_only|srst_only|trst_and_srst]
|
||||||
|
#[srst_pulls_trst|trst_pulls_srst|combined|separate]
|
||||||
|
#[srst_gates_jtag|srst_nogate] [trst_push_pull|trst_open_drain]
|
||||||
|
#[srst_push_pull|srst_open_drain]
|
||||||
|
#[connect_deassert_srst|connect_assert_srst]
|
||||||
|
|
@ -0,0 +1,332 @@
|
||||||
|
{
|
||||||
|
"dep": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "DeviceStartup_ARTERY_AT32F435_437"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "CmakeConfig_GCC_CortexM4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SystemSync_CMSIS_RTOS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SystemDelayInterface"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "CmsisCore5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "CmsisRtosThreadUtils"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "GpioPin_ARTERY_AT32F435_437"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SerialPort_ARTERY_AT32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SerialPort_P2P_CmsisRtos"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SerialPortHalfDuplexInterface"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "Rtc_ARTERY_AT32F435_437"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "AtCmdCommon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "BaseTypes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "LoggerToSerialPort"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "Nmea0183Parser"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_StorageOnFlash"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "AtGsmSimCom7600E"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_Egts"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "FileSystemLittleFsArtery"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_LittleFs"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "XfcTransportProtocol"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "ComIntCmd_Certs"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "FirmwareLoader_ARTERY_AT32"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_DeviceStorage"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_DataNonVolatile"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_EXTERNAL_TELEMATICA"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_SOCKET"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_DataStorage_TELEMATICA"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_FreeRTOSHeap4_CM4_CMSIS"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_SystemDelay_CMSIS_RTOS"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_SystemDelay_CMSIS_RTOS"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "FirmwareMetadataSection"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_META_TELEMATICA"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_ADR"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "AES"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "DeviceTestsTable"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "AES"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "CanSerialPortFrame_ARTERY_F435"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SerialPortFrameInterface"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "CanPortFrame"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "Adc_ARTERY_AT32"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "Accel_QMA6100P"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "PointEvent"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "CanSerialPortFrame_ARTERY_F435"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SerialPortFrameInterface"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "CanPortFrame"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "CanSerialPortFrame_TP"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SerialPortFrameTpInterface"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_CanUdsUazStatus"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_Can"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_GetGsmFirmware"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "ComIntCmd_Certs"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "AtGsmSimCom7600_CA"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SMART_COMPONENTS_ComInt_Commands"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "AtGsmSim7600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "local",
|
||||||
|
"dir": "APP"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Reference in New Issue