Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mcu/stm32: Add STM32G4 MCU files #3116

Merged
merged 3 commits into from
Mar 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .rat-excludes
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,11 @@ stm32g0xx_hal_conf.h
system_stm32g0xx.c
clock_stm32g0xx.c

# NUCLEO-G491RE BSP - BSD License
stm32g4xx_hal_conf.h
system_stm32g4xx.c
clock_stm32g4xx.c

# NUCLEO-WB55 BSP - BSD License
startup_stm32wb55xx_cm4.s
stm32wbxx_hal_conf.h
Expand Down
2 changes: 2 additions & 0 deletions .style_ignored_dirs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ hw/bsp/nucleo-f439zi/include/bsp/stm32f4xx_hal_conf.h
hw/bsp/nucleo-f746zg/include/bsp/stm32f7xx_hal_conf.h
hw/bsp/nucleo-f767zi/include/bsp/stm32f7xx_hal_conf.h
hw/bsp/nucleo-g0b1re/include/bsp/stm32g0xx_hal_conf.h
hw/bsp/nucleo-g491re/include/bsp/stm32g4xx_hal_conf.h
hw/bsp/nucleo-l073rz/include/bsp/stm32l0xx_hal_conf.h
hw/bsp/nucleo-l476rg/include/bsp/stm32l4xx_hal_conf.h
hw/bsp/olimex-p103/include/bsp/stm32f1xx_hal_conf.h
Expand All @@ -44,6 +45,7 @@ hw/bsp/stm32f7discovery/include/bsp/stm32f7xx_hal_conf.h
hw/bsp/stm32l152discovery/include/bsp/stm32l1xx_hal_conf.h
hw/bsp/nucleo-u575zi-q/include/bsp/stm32u5xx_hal_conf.h
hw/mcu/stm/stm32g0xx/src/system_stm32g0xx.c
hw/mcu/stm/stm32g4xx/src/system_stm32g4xx.c
hw/mcu/stm/stm32u5xx/src/system_stm32u5xx.c

hw/mcu/stm/stm32_common/src/stm32_driver_mod_i2c_v1.c
Expand Down
65 changes: 65 additions & 0 deletions hw/bsp/nucleo-g491re/bsp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

bsp.name: "NUCLEO-G491RE"
bsp.url: https://www.st.com/en/evaluation-tools/nucleo-g491re.html
bsp.maker: "STMicroelectronics"
bsp.arch: cortex_m4
bsp.compiler: compiler/arm-none-eabi-m4
bsp.linkerscript: autogenerated
bsp.downloadscript: "hw/scripts/download.sh"
bsp.debugscript: "hw/bsp/nucleo-g491re/debug.sh"

bsp.flash_map:
areas:
# System areas.
FLASH_AREA_BOOTLOADER:
device: 0
offset: 0x08000000
size: 40kB
FLASH_AREA_IMAGE_0:
device: 0
offset: 0x08010000
size: 192kB
FLASH_AREA_IMAGE_1:
device: 0
offset: 0x08040000
size: 192kB
FLASH_AREA_IMAGE_SCRATCH:
device: 0
offset: 0x08070000
size: 4kB

# User areas.
FLASH_AREA_REBOOT_LOG:
user_id: 0
device: 0
offset: 0x08071000
size: 16kB
FLASH_AREA_NFFS:
user_id: 1
device: 0
offset: 0x08078000
size: 32kB

FLASH_AREA_SPI:
user_id: 2
device: 1
offset: 0x0
size: 192kB
34 changes: 34 additions & 0 deletions hw/bsp/nucleo-g491re/debug.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

# Called with following variables set:
# - CORE_PATH is absolute path to @apache-mynewt-core
# - BSP_PATH is absolute path to hw/bsp/bsp_name
# - BIN_BASENAME is the path to prefix to target binary,
# .elf appended to name is the ELF file
# - FEATURES holds the target features string
# - EXTRA_JTAG_CMD holds extra parameters to pass to jtag software
# - RESET set if target should be reset when attaching
# - NO_GDB set if we should not start gdb to debug
#
. $CORE_PATH/hw/scripts/stlink.sh

FILE_NAME=$BIN_BASENAME.elf

stlink_debug
89 changes: 89 additions & 0 deletions hw/bsp/nucleo-g491re/include/bsp/bsp.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#ifndef H_BSP_H
#define H_BSP_H

#include <inttypes.h>
#include <mcu/mcu.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Define special stackos sections */
#define sec_data_core __attribute__((section(".data.core")))
#define sec_bss_core __attribute__((section(".bss.core")))
#define sec_bss_nz_core __attribute__((section(".bss.core.nz")))

/* More convenient section placement macros. */
#define bssnz_t sec_bss_nz_core

extern uint8_t _ram_start[];

#define RAM_SIZE (SRAM1_SIZE_MAX + SRAM2_SIZE + CCMSRAM_SIZE)

/* LED pins */
#define LED_1 MCU_GPIO_PORTA(5)

#define LED_GREEN LED_1

#define LED_BLINK_PIN LED_1

/* Button pin */
#define BUTTON_1 MCU_GPIO_PORTC(13)

/* Arduino pins */
#define ARDUINO_PIN_D0 MCU_GPIO_PORTC(5)
#define ARDUINO_PIN_D1 MCU_GPIO_PORTC(4)
#define ARDUINO_PIN_D2 MCU_GPIO_PORTA(10)
#define ARDUINO_PIN_D3 MCU_GPIO_PORTB(3)
#define ARDUINO_PIN_D4 MCU_GPIO_PORTB(5)
#define ARDUINO_PIN_D5 MCU_GPIO_PORTB(4)
#define ARDUINO_PIN_D6 MCU_GPIO_PORTB(10)
#define ARDUINO_PIN_D7 MCU_GPIO_PORTA(8)
#define ARDUINO_PIN_D8 MCU_GPIO_PORTA(9)
#define ARDUINO_PIN_D9 MCU_GPIO_PORTC(7)
#define ARDUINO_PIN_D10 MCU_GPIO_PORTB(6)
#define ARDUINO_PIN_D11 MCU_GPIO_PORTA(7)
#define ARDUINO_PIN_D12 MCU_GPIO_PORTA(6)
#define ARDUINO_PIN_D13 MCU_GPIO_PORTA(5)
#define ARDUINO_PIN_D14 MCU_GPIO_PORTB(9)
#define ARDUINO_PIN_D15 MCU_GPIO_PORTB(8)
#define ARDUINO_PIN_A0 MCU_GPIO_PORTA(0)
#define ARDUINO_PIN_A1 MCU_GPIO_PORTA(1)
#define ARDUINO_PIN_A2 MCU_GPIO_PORTA(4)
#define ARDUINO_PIN_A3 MCU_GPIO_PORTB(0)
#define ARDUINO_PIN_A4 MCU_GPIO_PORTC(1)
#define ARDUINO_PIN_A5 MCU_GPIO_PORTC(0)

#define ARDUINO_PIN_RX ARDUINO_PIN_D0
#define ARDUINO_PIN_TX ARDUINO_PIN_D1

#define ARDUINO_PIN_SCL MCU_GPIO_PORTB(8)
#define ARDUINO_PIN_SDA MCU_GPIO_PORTB(9)

#define ARDUINO_PIN_SCK ARDUINO_PIN_D13
#define ARDUINO_PIN_MOSI ARDUINO_PIN_D11
#define ARDUINO_PIN_MISO ARDUINO_PIN_D12

#ifdef __cplusplus
}
#endif

#endif /* H_BSP_H */
Loading
Loading