Example-led works fine with -mcpu=cortex-m3.

This commit is contained in:
NIIBE Yutaka
2019-04-11 17:11:47 +09:00
parent 054950bc9a
commit 5a326eee54
3 changed files with 25 additions and 14 deletions

View File

@@ -23,24 +23,25 @@
/*
* Port A setup.
*
* MODER: 10 11 - 11 01 - 01 11 - 10 10 11 11 - 11 11 - 11 10 - 11 11
* MODER: 10 10 - 10 01 - 01 11 - 10 10 11 11 - 11 11 - 11 10 - 11 11
*
* PA2 - USART2-TX: AF7
* PA8 - USART1-CK: AF7
* PA9 - USART1-TX: AF7 Open-drain pull-up
* PA11 - Push Pull output medium-speed 0 (until USB enabled) (USBDM: AF10)
* PA12 - Push Pull output medium-speed 0 (until USB enabled) (USBDP: AF10)
* PA13 - SWDIO
* PA14 - SWDCLK
* PA15 - USART2-RX: AF3
* ------------------------ Default
* PAx - analog input
*/
#define VAL_GPIO_LED_MODER 0xBD7AFFEF
#define VAL_GPIO_LED_OTYPER 0x00000200
#define VAL_GPIO_LED_OSPEEDR 0xFB7FFFFF
#define VAL_GPIO_LED_PUPDR 0x00040000
#define VAL_GPIO_LED_AFRL 0x00000700
#define VAL_GPIO_LED_AFRH 0x30000077
#define VAL_GPIO_OTHER_MODER 0xA97AFFEF
#define VAL_GPIO_OTHER_OTYPER 0x00000200
#define VAL_GPIO_OTHER_OSPEEDR 0xFB7FFFFF
#define VAL_GPIO_OTHER_PUPDR 0x00040000
#define VAL_GPIO_OTHER_AFRL 0x00000700
#define VAL_GPIO_OTHER_AFRH 0x30000077
/*
* Port B setup.
@@ -49,11 +50,13 @@
*
* PB3 - ON (LED 1:ON 0:OFF)
* ------------------------ Default
* PAx - analog input
* PBx - analog input
*/
#define VAL_GPIO_OTHER_MODER 0xFFFFFF7F
#define VAL_GPIO_OTHER_OTYPER 0x00000000
#define VAL_GPIO_OTHER_OSPEEDR 0x00000000
#define VAL_GPIO_OTHER_PUPDR 0x00000000
#define VAL_GPIO_LED_MODER 0xFFFFFF7F
#define VAL_GPIO_LED_OTYPER 0x00000000
#define VAL_GPIO_LED_OSPEEDR 0x00000000
#define VAL_GPIO_LED_PUPDR 0x00000000
#define VAL_GPIO_LED_AFRL 0x00000000
#define VAL_GPIO_LED_AFRH 0x00000000
#define RCC_PHR_GPIO (RCC_PHR_GPIOA | RCC_PHR_GPIOB)

View File

@@ -26,7 +26,7 @@ OBJCOPY = $(CROSS)objcopy
### MCU = cortex-m3
### MCU = cortex-m0
MCU = cortex-m4
MCU = cortex-m3
CWARN = -Wall -Wextra -Wstrict-prototypes
DEFS = -DUSE_SYS3 -DFREE_STANDING -DMHZ=48
### DEFS = -DFREE_STANDING -DUSE_SYS3 -DBUSY_LOOP -DCHX_FLAGS_MAIN=CHOPSTX_SCHED_RR

View File

@@ -70,6 +70,10 @@ gpio_init (void)
{
/* Enable GPIO clock. */
RCC->AHB2ENR |= RCC_PHR_GPIO;
/* Delay (more than two clocks) is needed. */
while ((RCC->AHB2ENR & RCC_PHR_GPIO) == 0)
;
RCC->AHB2RSTR = RCC_PHR_GPIO;
RCC->AHB2RSTR = 0;
@@ -82,11 +86,15 @@ gpio_init (void)
GPIO_LED->OTYPER = VAL_GPIO_LED_OTYPER;
GPIO_LED->MODER = VAL_GPIO_LED_MODER;
GPIO_LED->PUPDR = VAL_GPIO_LED_PUPDR;
GPIO_LED->AFRL = VAL_GPIO_LED_AFRL;
GPIO_LED->AFRH = VAL_GPIO_LED_AFRH;
#ifdef GPIO_OTHER_BASE
GPIO_OTHER->OSPEEDR = VAL_GPIO_OTHER_OSPEEDR;
GPIO_OTHER->OTYPER = VAL_GPIO_OTHER_OTYPER;
GPIO_OTHER->MODER = VAL_GPIO_OTHER_MODER;
GPIO_OTHER->PUPDR = VAL_GPIO_OTHER_PUPDR;
GPIO_OTHER->AFRL = VAL_GPIO_OTHER_AFRL;
GPIO_OTHER->AFRH = VAL_GPIO_OTHER_AFRH;
#endif
}