mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
1ae5484320
NOTES: print_greeting if is executed before the start of freeRTOS scheduler --> hardfault - print_greeting->vsprintf->systick -> bunch of ISR --> hardfault. printf using serial after the start of scheduler is ok though
150 lines
5.3 KiB
C
150 lines
5.3 KiB
C
/*
|
|
* @brief LPC43xx dual-core example configuration file
|
|
*
|
|
* @note
|
|
* Copyright(C) NXP Semiconductors, 2012
|
|
* All rights reserved.
|
|
*
|
|
* @par
|
|
* Software that is described herein is for illustrative purposes only
|
|
* which provides customers with programming information regarding the
|
|
* LPC products. This software is supplied "AS IS" without any warranties of
|
|
* any kind, and NXP Semiconductors and its licensor disclaim any and
|
|
* all warranties, express or implied, including all implied warranties of
|
|
* merchantability, fitness for a particular purpose and non-infringement of
|
|
* intellectual property rights. NXP Semiconductors assumes no responsibility
|
|
* or liability for the use of the software, conveys no license or rights under any
|
|
* patent, copyright, mask work right, or any other intellectual property rights in
|
|
* or to any products. NXP Semiconductors reserves the right to make changes
|
|
* in the software without notification. NXP Semiconductors also makes no
|
|
* representation or warranty that such application will be suitable for the
|
|
* specified use without further testing or modification.
|
|
*
|
|
* @par
|
|
* Permission to use, copy, modify, and distribute this software and its
|
|
* documentation is hereby granted, under NXP Semiconductors' and its
|
|
* licensor's relevant copyrights in the software, without fee, provided that it
|
|
* is used in conjunction with NXP Semiconductors microcontrollers. This
|
|
* copyright, permission, and disclaimer notice must appear in all copies of
|
|
* this code.
|
|
*/
|
|
|
|
#ifndef __LPC43XX_DUALCORE_CONFIG_H_
|
|
#define __LPC43XX_DUALCORE_CONFIG_H_
|
|
|
|
#include "board.h"
|
|
|
|
/*
|
|
* Users can enable any of the following macros so that the examples will be
|
|
* built with that functionality.
|
|
*/
|
|
#define EXAMPLE_BLINKY
|
|
#undef EXAMPLE_USB_DEVICE
|
|
#undef EXAMPLE_USB_HOST
|
|
#undef EXAMPLE_LWIP
|
|
#undef EXAMPLE_EMWIN
|
|
|
|
/*
|
|
* Users can define any one of the following macros to use the appropriate OS.
|
|
* For standalone executables both the macros should be disabled.
|
|
*/
|
|
#define OS_FREE_RTOS
|
|
#undef OS_UCOS_III
|
|
|
|
/*
|
|
* The Stack sizes are currently used by Code Red LPCXpresso tool chain
|
|
* only. In future, this will be used by Keil & IAR tool chains also
|
|
*/
|
|
#define STACK_SIZE 0x200
|
|
#define HEAP_SIZE 0x4000
|
|
|
|
/*
|
|
* The following defines are used by the M4 image to locate the M0 image, and
|
|
* one of the below macro must be defined based on your linker definition file.
|
|
* If the linker file is made to generate image in SPIFI area then define
|
|
* TARGET_SPIFI macro (so that M4 image will locate the corresponding M0 in the
|
|
* SPIFI region). If none of them r defined the following defaults will be used
|
|
* For LPC4330 NGX XPLORER BOARD: TARGET_SPIFI
|
|
* For LPC4357 KEIL MCB BOARD: TARGET_IFLASH
|
|
* For LPC4350 HITEX EVALUATION BOARD: TARGET_SPIFI
|
|
*/
|
|
#undef TARGET_SPIFI /* SPIFI Flash */
|
|
#undef TARGET_IFLASH /* Internal Flash */
|
|
#undef TARGET_XFLASH /* External NOR Flash */
|
|
|
|
/* Priority of various tasks in dual-core examples */
|
|
/* LWIP thread priority should always be greater than the
|
|
* MAC priority ie., greater than TASK_PRIO_ETHERNET
|
|
*/
|
|
#ifdef OS_FREE_RTOS
|
|
/* higher the number higher the priority */
|
|
#define TASK_PRIO_LCD (tskIDLE_PRIORITY + 0UL)
|
|
#define TASK_PRIO_TOUCHSCREEN (tskIDLE_PRIORITY + 1UL)
|
|
#define TASK_PRIO_BLINKY_EVENT (tskIDLE_PRIORITY + 1UL)
|
|
#define TASK_PRIO_ETHERNET (tskIDLE_PRIORITY + 2UL)
|
|
#define TASK_PRIO_IPC_DISPATCH (tskIDLE_PRIORITY + 3UL)
|
|
#define TASK_PRIO_USBDEVICE (tskIDLE_PRIORITY + 4UL)
|
|
#define TASK_PRIO_LWIP_THREAD (tskIDLE_PRIORITY + 5UL)
|
|
|
|
#elif defined(OS_UCOS_III)
|
|
/* lower the number higher the priority */
|
|
#define TASK_PRIO_BLINKY_EVENT 14
|
|
#define TASK_PRIO_LCD 14
|
|
#define TASK_PRIO_TOUCHSCREEN 13
|
|
#define TASK_PRIO_ETHERNET 13
|
|
#define TASK_PRIO_IPC_DISPATCH 12
|
|
#define TASK_PRIO_USBDEVICE 11
|
|
#define TASK_PRIO_LWIP_THREAD 10
|
|
#endif
|
|
|
|
/* Priority of various IRQs used in dual-core examples */
|
|
/* lower the number higher the priority */
|
|
#define IRQ_PRIO_IPC 7
|
|
#define IRQ_PRIO_ETHERNET 6
|
|
#define IRQ_PRIO_USBDEV 5
|
|
|
|
/* Minimum stack size for UCOS-III Tasks */
|
|
#define UCOS_MIN_STACK_SZ 128
|
|
|
|
/*
|
|
* Offset of M0 image from the starting of M4 image
|
|
* Usually the size allocated for M0 image in scatter
|
|
* file/ Linker Definition file / Memory configuration
|
|
* in the IDE.
|
|
* ####Don't change this value unless you are sure about what you are doing ####
|
|
*/
|
|
#define M0_IMAGE_OFFSET 0x40000
|
|
|
|
/*
|
|
* Absolute addresses used by both cores.
|
|
* ####Don't change these values unless you are sure about what you are doing ####
|
|
*/
|
|
#define SHARED_MEM_M0 0x20000000
|
|
#define SHARED_MEM_M4 0x20000020
|
|
|
|
/* Size & location of RAM DISK used by FAT Filesystem */
|
|
#define RAMDISK_LOCATION 0x20002000
|
|
#define RAMDISK_SIZE 0x2000
|
|
|
|
#ifdef CORE_M4
|
|
/* Delay and LED to be blinked by M4 Core */
|
|
#define BLINKY_DEFAULT_DELAY 1000
|
|
#define BLINK_LED 1
|
|
#endif /* CORE_M4 */
|
|
|
|
#ifdef CORE_M0
|
|
/* Delay and LED to be blinked by M4 Core */
|
|
#define BLINK_LED 0
|
|
#define BLINKY_DEFAULT_DELAY 500
|
|
#endif /* CORE_M0 */
|
|
|
|
/* Base address of various flashes */
|
|
#define SPIFI_BASE_ADDR 0x14000000
|
|
#define XFLASH_BASE_ADDR 0x1C000000
|
|
#define IFLASH_BASE_ADDR 0x1A000000
|
|
|
|
/* Include Common header here */
|
|
#include "dualcore_common.h"
|
|
|
|
#endif /* ifndef __LPC43XX_DUALCORE_CONFIG_H_ */
|