@@ -0,0 +1,103 @@
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* EXAMPLE CODE
|
||||
*
|
||||
* (c) Copyright 2003-2013; Micrium, Inc.; Weston, FL
|
||||
*
|
||||
* All rights reserved. Protected by international copyright laws.
|
||||
* Knowledge of the source code may NOT be used to develop a similar product.
|
||||
* Please help us continue to provide the Embedded community with the finest
|
||||
* software available. Your honesty is greatly appreciated.
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
*
|
||||
* APPLICATION CONFIGURATION
|
||||
*
|
||||
* ST Microelectronics STM32
|
||||
* on the
|
||||
*
|
||||
* STM3210G-EVAL
|
||||
* Evaluation Board
|
||||
*
|
||||
* Filename : app_cfg.h
|
||||
* Version : V1.00
|
||||
* Programmer(s) : DC
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __APP_CFG_H__
|
||||
#define __APP_CFG_H__
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* MODULE ENABLE / DISABLE
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#define BSP_CFG_LED_SPI2_EN DEF_ENABLED /* Enable/disable LEDs on SPI port. */
|
||||
#define BSP_CFG_LED_PIOC_EN DEF_ENABLED /* Enable/disable PIOC LEDs. */
|
||||
|
||||
#define APP_CFG_SERIAL_EN DEF_ENABLED
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* TASK PRIORITIES
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#define APP_TASK_START_PRIO 2u
|
||||
|
||||
#define OS_TASK_TMR_PRIO (OS_LOWEST_PRIO - 2)
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* TASK STACK SIZES
|
||||
* Size of the task stacks (# of OS_STK entries)
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#define APP_TASK_START_STK_SIZE 128u
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* BSP CFG
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#define BSP_CFG_SER_COMM_SEL BSP_SER_COMM_UART_01
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* TRACE / DEBUG CONFIGURATION
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
#if 0
|
||||
#define TRACE_LEVEL_OFF 0
|
||||
#define TRACE_LEVEL_INFO 1
|
||||
#define TRACE_LEVEL_DBG 2
|
||||
#endif
|
||||
|
||||
#define APP_TRACE_LEVEL TRACE_LEVEL_INFO
|
||||
|
||||
#if (APP_CFG_SERIAL_EN == DEF_ENABLED)
|
||||
#define APP_TRACE BSP_Ser_Printf
|
||||
#else
|
||||
#define APP_TRACE printf
|
||||
#endif
|
||||
|
||||
#define APP_TRACE_INFO(x) ((APP_TRACE_LEVEL >= TRACE_LEVEL_INFO) ? (void)(APP_TRACE x) : (void)0)
|
||||
#define APP_TRACE_DBG(x) ((APP_TRACE_LEVEL >= TRACE_LEVEL_DBG) ? (void)(APP_TRACE x) : (void)0)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* uC/CPU
|
||||
* CPU CONFIGURATION & PORT LAYER
|
||||
*
|
||||
* (c) Copyright 2004-2011; Micrium, Inc.; Weston, FL
|
||||
*
|
||||
* All rights reserved. Protected by international copyright laws.
|
||||
*
|
||||
* uC/CPU is provided in source form to registered licensees ONLY. It is
|
||||
* illegal to distribute this source code to any third party unless you receive
|
||||
* written permission by an authorized Micrium representative. Knowledge of
|
||||
* the source code may NOT be used to develop a similar product.
|
||||
*
|
||||
* Please help us continue to provide the Embedded community with the finest
|
||||
* software available. Your honesty is greatly appreciated.
|
||||
*
|
||||
* You can contact us at www.micrium.com.
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
*
|
||||
* CPU CONFIGURATION FILE
|
||||
*
|
||||
* TEMPLATE
|
||||
*
|
||||
* Filename : cpu_cfg.h
|
||||
* Version : V1.29.01
|
||||
* Programmer(s) : SR
|
||||
* ITJ
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* MODULE
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef CPU_CFG_MODULE_PRESENT
|
||||
#define CPU_CFG_MODULE_PRESENT
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* CPU NAME CONFIGURATION
|
||||
*
|
||||
* Note(s) : (1) Configure CPU_CFG_NAME_EN to enable/disable CPU host name feature :
|
||||
*
|
||||
* (a) CPU host name storage
|
||||
* (b) CPU host name API functions
|
||||
*
|
||||
* (2) Configure CPU_CFG_NAME_SIZE with the desired ASCII string size of the CPU host name,
|
||||
* including the terminating NULL character.
|
||||
*
|
||||
* See also 'cpu_core.h GLOBAL VARIABLES Note #1'.
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
/* Configure CPU host name feature (see Note #1) : */
|
||||
#define CPU_CFG_NAME_EN DEF_DISABLED
|
||||
/* DEF_DISABLED CPU host name DISABLED */
|
||||
/* DEF_ENABLED CPU host name ENABLED */
|
||||
|
||||
/* Configure CPU host name ASCII string size ... */
|
||||
#define CPU_CFG_NAME_SIZE 16 /* ... (see Note #2). */
|
||||
|
||||
|
||||
/*$PAGE*/
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* CPU TIMESTAMP CONFIGURATION
|
||||
*
|
||||
* Note(s) : (1) Configure CPU_CFG_TS_xx_EN to enable/disable CPU timestamp features :
|
||||
*
|
||||
* (a) CPU_CFG_TS_32_EN enable/disable 32-bit CPU timestamp feature
|
||||
* (b) CPU_CFG_TS_64_EN enable/disable 64-bit CPU timestamp feature
|
||||
*
|
||||
* (2) (a) Configure CPU_CFG_TS_TMR_SIZE with the CPU timestamp timer's word size :
|
||||
*
|
||||
* CPU_WORD_SIZE_08 8-bit word size
|
||||
* CPU_WORD_SIZE_16 16-bit word size
|
||||
* CPU_WORD_SIZE_32 32-bit word size
|
||||
* CPU_WORD_SIZE_64 64-bit word size
|
||||
*
|
||||
* (b) If the size of the CPU timestamp timer is not a binary multiple of 8-bit octets
|
||||
* (e.g. 20-bits or even 24-bits), then the next lower, binary-multiple octet word
|
||||
* size SHOULD be configured (e.g. to 16-bits). However, the minimum supported word
|
||||
* size for CPU timestamp timers is 8-bits.
|
||||
*
|
||||
* See also 'cpu_core.h FUNCTION PROTOTYPES CPU_TS_TmrRd() Note #2a'.
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
/* Configure CPU timestamp features (see Note #1) : */
|
||||
#define CPU_CFG_TS_32_EN DEF_ENABLED
|
||||
#define CPU_CFG_TS_64_EN DEF_DISABLED
|
||||
/* DEF_DISABLED CPU timestamps DISABLED */
|
||||
/* DEF_ENABLED CPU timestamps ENABLED */
|
||||
|
||||
/* Configure CPU timestamp timer word size ... */
|
||||
/* ... (see Note #2) : */
|
||||
#define CPU_CFG_TS_TMR_SIZE CPU_WORD_SIZE_32
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* CPU INTERRUPTS DISABLED TIME MEASUREMENT CONFIGURATION
|
||||
*
|
||||
* Note(s) : (1) (a) Configure CPU_CFG_INT_DIS_MEAS_EN to enable/disable measuring CPU's interrupts
|
||||
* disabled time :
|
||||
*
|
||||
* (a) Enabled, if CPU_CFG_INT_DIS_MEAS_EN #define'd in 'cpu_cfg.h'
|
||||
*
|
||||
* (b) Disabled, if CPU_CFG_INT_DIS_MEAS_EN NOT #define'd in 'cpu_cfg.h'
|
||||
*
|
||||
* See also 'cpu_core.h FUNCTION PROTOTYPES Note #1'.
|
||||
*
|
||||
* (b) Configure CPU_CFG_INT_DIS_MEAS_OVRHD_NBR with the number of times to measure &
|
||||
* average the interrupts disabled time measurements overhead.
|
||||
*
|
||||
* Recommend a single (1) overhead time measurement, even for instruction-cache-enabled
|
||||
* CPUs, since critical sections are NOT typically called within instruction-cached loops.
|
||||
* Thus a single non-cached/non-averaged time measurement is a more realistic overhead
|
||||
* for the majority of non-cached interrupts disabled time measurements.
|
||||
*
|
||||
* See also 'cpu_core.c CPU_IntDisMeasInit() Note #3a'.
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#if 0 /* Configure CPU interrupts disabled time ... */
|
||||
#define CPU_CFG_INT_DIS_MEAS_EN /* ... measurements feature (see Note #1a). */
|
||||
#endif
|
||||
|
||||
/* Configure number of interrupts disabled overhead ... */
|
||||
#define CPU_CFG_INT_DIS_MEAS_OVRHD_NBR 1u /* ... time measurements (see Note #1b). */
|
||||
|
||||
|
||||
/*$PAGE*/
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* CPU COUNT ZEROS CONFIGURATION
|
||||
*
|
||||
* Note(s) : (1) (a) Configure CPU_CFG_LEAD_ZEROS_ASM_PRESENT to define count leading zeros bits
|
||||
* function(s) in :
|
||||
*
|
||||
* (1) 'cpu_a.asm', if CPU_CFG_LEAD_ZEROS_ASM_PRESENT #define'd in 'cpu.h'/
|
||||
* 'cpu_cfg.h' to enable assembly-optimized function(s)
|
||||
*
|
||||
* (2) 'cpu_core.c', if CPU_CFG_LEAD_ZEROS_ASM_PRESENT NOT #define'd in 'cpu.h'/
|
||||
* 'cpu_cfg.h' to enable C-source-optimized function(s) otherwise
|
||||
*
|
||||
* (b) Configure CPU_CFG_TRAIL_ZEROS_ASM_PRESENT to define count trailing zeros bits
|
||||
* function(s) in :
|
||||
*
|
||||
* (1) 'cpu_a.asm', if CPU_CFG_TRAIL_ZEROS_ASM_PRESENT #define'd in 'cpu.h'/
|
||||
* 'cpu_cfg.h' to enable assembly-optimized function(s)
|
||||
*
|
||||
* (2) 'cpu_core.c', if CPU_CFG_TRAIL_ZEROS_ASM_PRESENT NOT #define'd in 'cpu.h'/
|
||||
* 'cpu_cfg.h' to enable C-source-optimized function(s) otherwise
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#if 1 /* Configure CPU count leading zeros bits ... */
|
||||
#define CPU_CFG_LEAD_ZEROS_ASM_PRESENT /* ... assembly-version (see Note #1a). */
|
||||
#endif
|
||||
|
||||
#if 0 /* Configure CPU count trailing zeros bits ... */
|
||||
#define CPU_CFG_TRAIL_ZEROS_ASM_PRESENT /* ... assembly-version (see Note #1b). */
|
||||
#endif
|
||||
|
||||
|
||||
/*$PAGE*/
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* MODULE END
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#endif /* End of CPU cfg module include. */
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* uC/OS-II
|
||||
* The Real-Time Kernel
|
||||
* uC/OS-II Configuration File for V2.9x
|
||||
*
|
||||
* (c) Copyright 2005-2010, Micrium, Weston, FL
|
||||
* All Rights Reserved
|
||||
*
|
||||
*
|
||||
* File : OS_CFG.H
|
||||
* By : Jean J. Labrosse
|
||||
* Version : V2.92
|
||||
*
|
||||
* LICENSING TERMS:
|
||||
* ---------------
|
||||
* uC/OS-II is provided in source form for FREE evaluation, for educational use or for peaceful research.
|
||||
* If you plan on using uC/OS-II in a commercial product you need to contact Micriµm to properly license
|
||||
* its use in your product. We provide ALL the source code for your convenience and to help you experience
|
||||
* uC/OS-II. The fact that the source is provided does NOT mean that you can use it without paying a
|
||||
* licensing fee.
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef OS_CFG_H
|
||||
#define OS_CFG_H
|
||||
|
||||
|
||||
/* ---------------------- MISCELLANEOUS ----------------------- */
|
||||
#define OS_APP_HOOKS_EN 0u /* Application-defined hooks are called from the uC/OS-II hooks */
|
||||
#define OS_ARG_CHK_EN 0u /* Enable (1) or Disable (0) argument checking */
|
||||
#define OS_CPU_HOOKS_EN 1u /* uC/OS-II hooks are found in the processor port files */
|
||||
|
||||
#define OS_DEBUG_EN 1u /* Enable(1) debug variables */
|
||||
|
||||
#define OS_EVENT_MULTI_EN 1u /* Include code for OSEventPendMulti() */
|
||||
#define OS_EVENT_NAME_EN 1u /* Enable names for Sem, Mutex, Mbox and Q */
|
||||
|
||||
#define OS_LOWEST_PRIO 63u /* Defines the lowest priority that can be assigned ... */
|
||||
/* ... MUST NEVER be higher than 254! */
|
||||
|
||||
#define OS_MAX_EVENTS 80u /* Max. number of event control blocks in your application */
|
||||
#define OS_MAX_FLAGS 5u /* Max. number of Event Flag Groups in your application */
|
||||
#define OS_MAX_MEM_PART 5u /* Max. number of memory partitions */
|
||||
#define OS_MAX_QS 4u /* Max. number of queue control blocks in your application */
|
||||
#define OS_MAX_TASKS 20u /* Max. number of tasks in your application, MUST be >= 2 */
|
||||
|
||||
#define OS_SCHED_LOCK_EN 1u /* Include code for OSSchedLock() and OSSchedUnlock() */
|
||||
|
||||
#define OS_TICK_STEP_EN 1u /* Enable tick stepping feature for uC/OS-View */
|
||||
#define OS_TICKS_PER_SEC 1000u /* Set the number of ticks in one second */
|
||||
|
||||
|
||||
/* --------------------- TASK STACK SIZE ---------------------- */
|
||||
#define OS_TASK_TMR_STK_SIZE 128u /* Timer task stack size (# of OS_STK wide entries) */
|
||||
#define OS_TASK_STAT_STK_SIZE 128u /* Statistics task stack size (# of OS_STK wide entries) */
|
||||
#define OS_TASK_IDLE_STK_SIZE 128u /* Idle task stack size (# of OS_STK wide entries) */
|
||||
|
||||
|
||||
/* --------------------- TASK MANAGEMENT ---------------------- */
|
||||
#define OS_TASK_CHANGE_PRIO_EN 1u /* Include code for OSTaskChangePrio() */
|
||||
#define OS_TASK_CREATE_EN 1u /* Include code for OSTaskCreate() */
|
||||
#define OS_TASK_CREATE_EXT_EN 1u /* Include code for OSTaskCreateExt() */
|
||||
#define OS_TASK_DEL_EN 1u /* Include code for OSTaskDel() */
|
||||
#define OS_TASK_NAME_EN 1u /* Enable task names */
|
||||
#define OS_TASK_PROFILE_EN 1u /* Include variables in OS_TCB for profiling */
|
||||
#define OS_TASK_QUERY_EN 1u /* Include code for OSTaskQuery() */
|
||||
#define OS_TASK_REG_TBL_SIZE 1u /* Size of task variables array (#of INT32U entries) */
|
||||
#define OS_TASK_STAT_EN 1u /* Enable (1) or Disable(0) the statistics task */
|
||||
#define OS_TASK_STAT_STK_CHK_EN 1u /* Check task stacks from statistic task */
|
||||
#define OS_TASK_SUSPEND_EN 1u /* Include code for OSTaskSuspend() and OSTaskResume() */
|
||||
#define OS_TASK_SW_HOOK_EN 1u /* Include code for OSTaskSwHook() */
|
||||
|
||||
|
||||
/* ----------------------- EVENT FLAGS ------------------------ */
|
||||
#define OS_FLAG_EN 1u /* Enable (1) or Disable (0) code generation for EVENT FLAGS */
|
||||
#define OS_FLAG_ACCEPT_EN 1u /* Include code for OSFlagAccept() */
|
||||
#define OS_FLAG_DEL_EN 1u /* Include code for OSFlagDel() */
|
||||
#define OS_FLAG_NAME_EN 1u /* Enable names for event flag group */
|
||||
#define OS_FLAG_QUERY_EN 1u /* Include code for OSFlagQuery() */
|
||||
#define OS_FLAG_WAIT_CLR_EN 1u /* Include code for Wait on Clear EVENT FLAGS */
|
||||
#define OS_FLAGS_NBITS 16u /* Size in #bits of OS_FLAGS data type (8, 16 or 32) */
|
||||
|
||||
|
||||
/* -------------------- MESSAGE MAILBOXES --------------------- */
|
||||
#define OS_MBOX_EN 1u /* Enable (1) or Disable (0) code generation for MAILBOXES */
|
||||
#define OS_MBOX_ACCEPT_EN 1u /* Include code for OSMboxAccept() */
|
||||
#define OS_MBOX_DEL_EN 1u /* Include code for OSMboxDel() */
|
||||
#define OS_MBOX_PEND_ABORT_EN 1u /* Include code for OSMboxPendAbort() */
|
||||
#define OS_MBOX_POST_EN 1u /* Include code for OSMboxPost() */
|
||||
#define OS_MBOX_POST_OPT_EN 1u /* Include code for OSMboxPostOpt() */
|
||||
#define OS_MBOX_QUERY_EN 1u /* Include code for OSMboxQuery() */
|
||||
|
||||
|
||||
/* --------------------- MEMORY MANAGEMENT -------------------- */
|
||||
#define OS_MEM_EN 1u /* Enable (1) or Disable (0) code generation for MEMORY MANAGER */
|
||||
#define OS_MEM_NAME_EN 1u /* Enable memory partition names */
|
||||
#define OS_MEM_QUERY_EN 1u /* Include code for OSMemQuery() */
|
||||
|
||||
|
||||
/* ---------------- MUTUAL EXCLUSION SEMAPHORES --------------- */
|
||||
#define OS_MUTEX_EN 1u /* Enable (1) or Disable (0) code generation for MUTEX */
|
||||
#define OS_MUTEX_ACCEPT_EN 1u /* Include code for OSMutexAccept() */
|
||||
#define OS_MUTEX_DEL_EN 1u /* Include code for OSMutexDel() */
|
||||
#define OS_MUTEX_QUERY_EN 1u /* Include code for OSMutexQuery() */
|
||||
|
||||
|
||||
/* ---------------------- MESSAGE QUEUES ---------------------- */
|
||||
#define OS_Q_EN 1u /* Enable (1) or Disable (0) code generation for QUEUES */
|
||||
#define OS_Q_ACCEPT_EN 1u /* Include code for OSQAccept() */
|
||||
#define OS_Q_DEL_EN 1u /* Include code for OSQDel() */
|
||||
#define OS_Q_FLUSH_EN 1u /* Include code for OSQFlush() */
|
||||
#define OS_Q_PEND_ABORT_EN 1u /* Include code for OSQPendAbort() */
|
||||
#define OS_Q_POST_EN 1u /* Include code for OSQPost() */
|
||||
#define OS_Q_POST_FRONT_EN 1u /* Include code for OSQPostFront() */
|
||||
#define OS_Q_POST_OPT_EN 1u /* Include code for OSQPostOpt() */
|
||||
#define OS_Q_QUERY_EN 1u /* Include code for OSQQuery() */
|
||||
|
||||
|
||||
/* ------------------------ SEMAPHORES ------------------------ */
|
||||
#define OS_SEM_EN 1u /* Enable (1) or Disable (0) code generation for SEMAPHORES */
|
||||
#define OS_SEM_ACCEPT_EN 1u /* Include code for OSSemAccept() */
|
||||
#define OS_SEM_DEL_EN 1u /* Include code for OSSemDel() */
|
||||
#define OS_SEM_PEND_ABORT_EN 1u /* Include code for OSSemPendAbort() */
|
||||
#define OS_SEM_QUERY_EN 1u /* Include code for OSSemQuery() */
|
||||
#define OS_SEM_SET_EN 1u /* Include code for OSSemSet() */
|
||||
|
||||
|
||||
/* --------------------- TIME MANAGEMENT ---------------------- */
|
||||
#define OS_TIME_DLY_HMSM_EN 1u /* Include code for OSTimeDlyHMSM() */
|
||||
#define OS_TIME_DLY_RESUME_EN 1u /* Include code for OSTimeDlyResume() */
|
||||
#define OS_TIME_GET_SET_EN 1u /* Include code for OSTimeGet() and OSTimeSet() */
|
||||
#define OS_TIME_TICK_HOOK_EN 1u /* Include code for OSTimeTickHook() */
|
||||
|
||||
|
||||
/* --------------------- TIMER MANAGEMENT --------------------- */
|
||||
#define OS_TMR_EN 1u /* Enable (1) or Disable (0) code generation for TIMERS */
|
||||
#define OS_TMR_CFG_MAX 16u /* Maximum number of timers */
|
||||
#define OS_TMR_CFG_NAME_EN 1u /* Determine timer names */
|
||||
#define OS_TMR_CFG_WHEEL_SIZE 8u /* Size of timer wheel (#Spokes) */
|
||||
#define OS_TMR_CFG_TICKS_PER_SEC 10u /* Rate at which timer management task runs (Hz) */
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file Project/Template/stm32f10x_conf.h
|
||||
* @author MCD Application Team
|
||||
* @version V3.0.0
|
||||
* @date 04/06/2009
|
||||
* @brief Library configuration file.
|
||||
******************************************************************************
|
||||
* @copy
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
||||
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
||||
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
||||
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* <h2><center>© COPYRIGHT 2009 STMicroelectronics</center></h2>
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32F10x_CONF_H
|
||||
#define __STM32F10x_CONF_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
/* Uncomment the line below to enable peripheral header file inclusion */
|
||||
#include "stm32f10x_adc.h"
|
||||
/* #include "stm32f10x_bkp.h" */
|
||||
#include "stm32f10x_can.h"
|
||||
/* #include "stm32f10x_crc.h" */
|
||||
/* #include "stm32f10x_dac.h" */
|
||||
/* #include "stm32f10x_dbgmcu.h" */
|
||||
//#include "stm32f10x_dma.h"
|
||||
#include "stm32f10x_exti.h"
|
||||
#include "stm32f10x_flash.h"
|
||||
#include "stm32f10x_fsmc.h"
|
||||
#include "stm32f10x_gpio.h"
|
||||
/* #include "stm32f10x_i2c.h" */
|
||||
#include "stm32f10x_iwdg.h"
|
||||
/* #include "stm32f10x_pwr.h" */
|
||||
#include "stm32f10x_rcc.h"
|
||||
/* #include "stm32f10x_rtc.h" */
|
||||
/* #include "stm32f10x_sdio.h" */
|
||||
//#include "stm32f10x_spi.h"
|
||||
#include "stm32f10x_tim.h"
|
||||
#include "stm32f10x_usart.h"
|
||||
#include "stm32f10x_wwdg.h"
|
||||
#include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* Uncomment the line below to expanse the "assert_param" macro in the
|
||||
Standard Peripheral Library drivers code */
|
||||
/* #define USE_FULL_ASSERT 1 */
|
||||
|
||||
/* 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__,(uint32_t) __LINE__))
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
void assert_failed(uint8_t* file, uint32_t line);
|
||||
#else
|
||||
#define assert_param(expr) ((void)0)
|
||||
#endif /* USE_FULL_ASSERT */
|
||||
|
||||
#endif /* __STM32F10x_CONF_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
|
||||
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file Project/Template/stm32f10x_it.h
|
||||
* @author MCD Application Team
|
||||
* @version V3.1.0
|
||||
* @date 06/19/2009
|
||||
* @brief This file contains the headers of the interrupt handlers.
|
||||
******************************************************************************
|
||||
* @copy
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
||||
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
||||
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
||||
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* <h2><center>© COPYRIGHT 2009 STMicroelectronics</center></h2>
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32F10x_IT_H
|
||||
#define __STM32F10x_IT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
|
||||
#include "bsp.h"
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
|
||||
void NMI_Handler(void);
|
||||
void HardFault_Handler(void);
|
||||
void MemManage_Handler(void);
|
||||
void BusFault_Handler(void);
|
||||
void UsageFault_Handler(void);
|
||||
void SVC_Handler(void);
|
||||
void DebugMon_Handler(void);
|
||||
void PendSV_Handler(void);
|
||||
void SysTick_Handler(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __STM32F10x_IT_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
|
||||
@@ -0,0 +1,57 @@
|
||||
#include <ucos_ii.h>
|
||||
#include <cpu_core.h>
|
||||
#include <bsp.h>
|
||||
#include <cm_backtrace.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define HARDWARE_VERSION "V1.0.0"
|
||||
#define SOFTWARE_VERSION "V0.1.0"
|
||||
|
||||
static OS_STK AppTaskStartStk[APP_TASK_START_STK_SIZE];
|
||||
|
||||
static void AppTaskStart(void *p_arg);
|
||||
extern void fault_test_by_unalign(void);
|
||||
extern void fault_test_by_div0(void);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
INT8U err;
|
||||
BSP_IntDisAll();
|
||||
BSP_Init();
|
||||
CPU_Init();
|
||||
OSInit();
|
||||
|
||||
/* CmBacktrace initialize */
|
||||
cm_backtrace_init("CmBacktrace", HARDWARE_VERSION, SOFTWARE_VERSION);
|
||||
|
||||
OSTaskCreateExt((void (*)(void *)) AppTaskStart,
|
||||
(void *) 0,
|
||||
(OS_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1],
|
||||
(INT8U ) APP_TASK_START_PRIO,
|
||||
(INT16U ) APP_TASK_START_PRIO,
|
||||
(OS_STK *)&AppTaskStartStk[0],
|
||||
(INT32U ) APP_TASK_START_STK_SIZE,
|
||||
(void *) 0,
|
||||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||||
|
||||
OSTaskNameSet(APP_TASK_START_PRIO, "app_start", &err);
|
||||
|
||||
printf("System initialize finish. Starting..\r\n");
|
||||
|
||||
OSStart();
|
||||
|
||||
return (1);
|
||||
}
|
||||
|
||||
static void AppTaskStart (void *p_arg)
|
||||
{
|
||||
// fault_test_by_unalign();
|
||||
fault_test_by_div0();
|
||||
|
||||
while (DEF_TRUE) {
|
||||
LED_RUN_ON;
|
||||
OSTimeDlyHMSM(0, 0, 0, 500);
|
||||
LED_RUN_OFF;
|
||||
OSTimeDlyHMSM(0, 0, 0, 500);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* fault_test.c
|
||||
*
|
||||
* Created on: 2016/12/25
|
||||
* Author: Armink
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
void fault_test_by_unalign(void) {
|
||||
volatile int * SCB_CCR = (volatile int *) 0xE000ED14; // SCB->CCR
|
||||
volatile int * p;
|
||||
volatile int value;
|
||||
|
||||
*SCB_CCR |= (1 << 3); /* bit3: UNALIGN_TRP. */
|
||||
|
||||
p = (int *) 0x00;
|
||||
value = *p;
|
||||
printf("addr:0x%02X value:0x%08X\r\n", (int) p, value);
|
||||
|
||||
p = (int *) 0x04;
|
||||
value = *p;
|
||||
printf("addr:0x%02X value:0x%08X\r\n", (int) p, value);
|
||||
|
||||
p = (int *) 0x03;
|
||||
value = *p;
|
||||
printf("addr:0x%02X value:0x%08X\r\n", (int) p, value);
|
||||
}
|
||||
|
||||
void fault_test_by_div0(void) {
|
||||
volatile int * SCB_CCR = (volatile int *) 0xE000ED14; // SCB->CCR
|
||||
int x, y, z;
|
||||
|
||||
*SCB_CCR |= (1 << 4); /* bit4: DIV_0_TRP. */
|
||||
|
||||
x = 10;
|
||||
y = 0;
|
||||
z = x / y;
|
||||
printf("z:%d\n", z);
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file Project/Template/stm32f10x_it.c
|
||||
* @author MCD Application Team
|
||||
* @version V3.1.0
|
||||
* @date 06/19/2009
|
||||
* @brief Main Interrupt Service Routines.
|
||||
* This file provides template for all exceptions handler and
|
||||
* peripherals interrupt service routine.
|
||||
******************************************************************************
|
||||
* @copy
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
||||
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
||||
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
||||
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* <h2><center>© COPYRIGHT 2009 STMicroelectronics</center></h2>
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include <stm32f10x_it.h>
|
||||
#include <bsp.h>
|
||||
#include <ucos_ii.h>
|
||||
|
||||
/** @addtogroup Template_Project
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* Private functions ---------------------------------------------------------*/
|
||||
|
||||
/******************************************************************************/
|
||||
/* Cortex-M3 Processor Exceptions Handlers */
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
* @brief This function handles NMI exception.
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void NMI_Handler(void)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Memory Manage exception.
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void MemManage_Handler(void)
|
||||
{
|
||||
/* Go to infinite loop when Memory Manage exception occurs */
|
||||
while (1)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Bus Fault exception.
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void BusFault_Handler(void)
|
||||
{
|
||||
/* Go to infinite loop when Bus Fault exception occurs */
|
||||
while (1)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Usage Fault exception.
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void UsageFault_Handler(void)
|
||||
{
|
||||
/* Go to infinite loop when Usage Fault exception occurs */
|
||||
while (1)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles SVCall exception.
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void SVC_Handler(void)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Debug Monitor exception.
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void DebugMon_Handler(void)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the timer interrupt service routine.
|
||||
*
|
||||
*/
|
||||
void SysTick_Handler(void)
|
||||
{
|
||||
OS_CPU_SR cpu_sr;
|
||||
|
||||
OS_ENTER_CRITICAL(); /* Tell uC/OS-II that we are starting an ISR */
|
||||
OSIntNesting++;
|
||||
OS_EXIT_CRITICAL();
|
||||
|
||||
OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */
|
||||
|
||||
OSIntExit(); /* Tell uC/OS-II that we are leaving the ISR */
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : WWDG_IRQHandler
|
||||
* Description : This function handles WWDG interrupt request.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void WWDG_IRQHandler(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : TIM4_IRQHandler
|
||||
* Description : This function handles TIM2 global interrupt request.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void TIM4_IRQHandler(void)
|
||||
{
|
||||
|
||||
}
|
||||
/******************************************************************************/
|
||||
/* STM32F10x Peripherals Interrupt Handlers */
|
||||
/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
|
||||
/* available peripheral interrupt handler's name please refer to the startup */
|
||||
/* file (startup_stm32f10x_xx.s). */
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
|
||||
Reference in New Issue
Block a user