mirror of
https://github.com/apache/nuttx.git
synced 2026-06-06 00:14:22 +08:00
SAMV7-XULT: Enable I- and D-caches, correct polaty of LEDs
This commit is contained in:
@@ -662,6 +662,23 @@
|
|||||||
# define NVIC_TCMCR_SZ_8MB (14 << NVIC_TCMCR_SZ_SHIFT)
|
# define NVIC_TCMCR_SZ_8MB (14 << NVIC_TCMCR_SZ_SHIFT)
|
||||||
# define NVIC_TCMCR_SZ_16MB (15 << NVIC_TCMCR_SZ_SHIFT)
|
# define NVIC_TCMCR_SZ_16MB (15 << NVIC_TCMCR_SZ_SHIFT)
|
||||||
|
|
||||||
|
/* AHBP Control Register (AHBPCR, Cortex-M7) */
|
||||||
|
|
||||||
|
#define NVIC_AHBPCR_EN (1 << 0) /* Bit 0: AHBP enable */
|
||||||
|
#define NVIC_AHBPCR_SZ_SHIFT (1) /* Bits 1-3: AHBP size */
|
||||||
|
#define NVIC_AHBPCR_SZ_MASK (7 << NVIC_AHBPCR_SZ_SHIFT)
|
||||||
|
# define NVIC_AHBPCR_SZ_DISABLED (0 << NVIC_AHBPCR_SZ_SHIFT)
|
||||||
|
# define NVIC_AHBPCR_SZ_64MB (1 << NVIC_AHBPCR_SZ_SHIFT)
|
||||||
|
# define NVIC_AHBPCR_SZ_128MB (2 << NVIC_AHBPCR_SZ_SHIFT)
|
||||||
|
# define NVIC_AHBPCR_SZ_256MB (3 << NVIC_AHBPCR_SZ_SHIFT)
|
||||||
|
# define NVIC_AHBPCR_SZ_512MB (4 << NVIC_AHBPCR_SZ_SHIFT)
|
||||||
|
|
||||||
|
/* L1 Cache Control Register (CACR, Cortex-M7) */
|
||||||
|
|
||||||
|
#define NVIC_CACR_SIWT (1 << 0) /* Bit 0: Shared cacheable-is-WT for data cache */
|
||||||
|
#define NVIC_CACR_ECCDIS (1 << 1) /* Bit 1: Enables ECC in the instruction and data cache */
|
||||||
|
#define NVIC_CACR_FORCEWT (1 << 2) /* Bit 2: Enables Force Write-Through in the data cache */
|
||||||
|
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
* Public Types
|
* Public Types
|
||||||
********************************************************************************************/
|
********************************************************************************************/
|
||||||
|
|||||||
@@ -276,8 +276,8 @@ Configuration sub-directories
|
|||||||
|
|
||||||
4. Performance-related Configuration settings:
|
4. Performance-related Configuration settings:
|
||||||
|
|
||||||
# CONFIG_ARMV7M_ICACHE is not set : Can be enabled, not verified
|
CONFIG_ARMV7M_ICACHE=y : Instruction cache is enabled
|
||||||
# CONFIG_ARMV7M_DCACHE is not set : Can be enabled, not verified
|
CONFIG_ARMV7M_DCACHE=y : Data cache is enabled
|
||||||
# CONFIG_ARCH_FPU is not set : Can be enabled, not verified
|
# CONFIG_ARCH_FPU is not set : Can be enabled, not verified
|
||||||
# CONFIG_ARMV7M_ITCM is not set : Support not yet in place
|
# CONFIG_ARMV7M_ITCM is not set : Support not yet in place
|
||||||
# CONFIG_ARMV7M_DTCM is not set : Support not yet in place
|
# CONFIG_ARMV7M_DTCM is not set : Support not yet in place
|
||||||
|
|||||||
@@ -120,8 +120,8 @@ CONFIG_ARCH_HAVE_DPFPU=y
|
|||||||
#
|
#
|
||||||
CONFIG_ARMV7M_HAVE_ICACHE=y
|
CONFIG_ARMV7M_HAVE_ICACHE=y
|
||||||
CONFIG_ARMV7M_HAVE_DCACHE=y
|
CONFIG_ARMV7M_HAVE_DCACHE=y
|
||||||
# CONFIG_ARMV7M_ICACHE is not set
|
CONFIG_ARMV7M_ICACHE=y
|
||||||
# CONFIG_ARMV7M_DCACHE is not set
|
CONFIG_ARMV7M_DCACHE=y
|
||||||
CONFIG_ARMV7M_HAVE_ITCM=y
|
CONFIG_ARMV7M_HAVE_ITCM=y
|
||||||
CONFIG_ARMV7M_HAVE_DTCM=y
|
CONFIG_ARMV7M_HAVE_DTCM=y
|
||||||
# CONFIG_ARMV7M_ITCM is not set
|
# CONFIG_ARMV7M_ITCM is not set
|
||||||
@@ -255,7 +255,7 @@ CONFIG_ARCH_HAVE_RAMVECTORS=y
|
|||||||
#
|
#
|
||||||
# Board Settings
|
# Board Settings
|
||||||
#
|
#
|
||||||
CONFIG_BOARD_LOOPSPERMSEC=42445
|
CONFIG_BOARD_LOOPSPERMSEC=51262
|
||||||
# CONFIG_ARCH_CALIBRATION is not set
|
# CONFIG_ARCH_CALIBRATION is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -509,6 +509,7 @@ CONFIG_MCU_SERIAL=y
|
|||||||
CONFIG_STANDARD_SERIAL=y
|
CONFIG_STANDARD_SERIAL=y
|
||||||
# CONFIG_SERIAL_IFLOWCONTROL is not set
|
# CONFIG_SERIAL_IFLOWCONTROL is not set
|
||||||
# CONFIG_SERIAL_OFLOWCONTROL is not set
|
# CONFIG_SERIAL_OFLOWCONTROL is not set
|
||||||
|
# CONFIG_SERIAL_TIOCSERGSTRUCT is not set
|
||||||
CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
|
CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
|
||||||
# CONFIG_SERIAL_TERMIOS is not set
|
# CONFIG_SERIAL_TERMIOS is not set
|
||||||
CONFIG_UART3_SERIAL_CONSOLE=y
|
CONFIG_UART3_SERIAL_CONSOLE=y
|
||||||
|
|||||||
@@ -139,16 +139,13 @@ void board_led_initialize(void)
|
|||||||
|
|
||||||
void board_led_on(int led)
|
void board_led_on(int led)
|
||||||
{
|
{
|
||||||
bool led0on = false; /* High illuminates */
|
|
||||||
bool led1on = false; /* High illuminates */
|
|
||||||
|
|
||||||
switch (led)
|
switch (led)
|
||||||
{
|
{
|
||||||
case 0: /* LED_STARTED, LED_HEAPALLOCATE, LED_IRQSENABLED */
|
case 0: /* LED_STARTED, LED_HEAPALLOCATE, LED_IRQSENABLED */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: /* LED_STACKCREATED */
|
case 1: /* LED_STACKCREATED */
|
||||||
led0on = true;
|
sam_gpiowrite(GPIO_LED0, false); /* Low illuminates */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -156,12 +153,9 @@ void board_led_on(int led)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case 3: /* LED_PANIC */
|
case 3: /* LED_PANIC */
|
||||||
led1on = true;
|
sam_gpiowrite(GPIO_LED1, false); /* Low illuminates */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
sam_gpiowrite(GPIO_LED0, led0on);
|
|
||||||
sam_gpiowrite(GPIO_LED1, led1on);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -170,10 +164,9 @@ void board_led_on(int led)
|
|||||||
|
|
||||||
void board_led_off(int led)
|
void board_led_off(int led)
|
||||||
{
|
{
|
||||||
if (led != 2)
|
if (led == 3)
|
||||||
{
|
{
|
||||||
sam_gpiowrite(GPIO_LED0, false); /* High illuminates */
|
sam_gpiowrite(GPIO_LED1, true); /* High extinguishes */
|
||||||
sam_gpiowrite(GPIO_LED1, false); /* High illuminates */
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ void sam_setled(int led, bool ledon)
|
|||||||
|
|
||||||
void sam_setleds(uint8_t ledset)
|
void sam_setleds(uint8_t ledset)
|
||||||
{
|
{
|
||||||
/* Hight illuminates */
|
/* Low illuminates */
|
||||||
|
|
||||||
sam_gpiowrite(GPIO_LED0, (ledset & BOARD_LED0_BIT) == 0);
|
sam_gpiowrite(GPIO_LED0, (ledset & BOARD_LED0_BIT) == 0);
|
||||||
sam_gpiowrite(GPIO_LED1, (ledset & BOARD_LED1_BIT) == 0);
|
sam_gpiowrite(GPIO_LED1, (ledset & BOARD_LED1_BIT) == 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user