-
Notifications
You must be signed in to change notification settings - Fork 1k
Add STM32F446VE controller board #522
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -758,6 +758,54 @@ GenF4.menu.upload_method.bmpMethod=BMP (Black Magic Probe) | |
GenF4.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp | ||
GenF4.menu.upload_method.bmpMethod.upload.tool=bmp_upload | ||
|
||
############################### | ||
Vake403d.name=VAkE 403d | ||
|
||
Vake403d.build.vid=0x1EAF | ||
Vake403d.build.pid=0x0004 | ||
Vake403d.vid.0=0x1EAF | ||
Vake403d.pid.0=0x0004 | ||
|
||
Vake403d.build.core=arduino | ||
Vake403d.build.board=Vake403 | ||
Vake403d.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} | ||
|
||
# Vake F446VE | ||
# Support: Serial1 (USART1 on PA10, PA9) | ||
# Default SPI: SPI | ||
Vake403d.menu.pnum.VAKE_F446VE=Vake F446VE | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is It really the board name? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should I change "Vake F446VE" to "VAkE" ? VAkE is infact the name of the PCB, VAke403d the name of the test printer for the PCB and since it's based on the F446...it started it's live a "Vake F446VE" |
||
Vake403d.menu.pnum.VAKE_F446VE.upload.maximum_size=524288 | ||
Vake403d.menu.pnum.VAKE_F446VE.upload.maximum_data_size=131072 | ||
Vake403d.menu.pnum.VAKE_F446VE.build.mcu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard | ||
Vake403d.menu.pnum.VAKE_F446VE.build.board=VAKE403 | ||
Vake403d.menu.pnum.VAKE_F446VE.build.series=STM32F4xx | ||
Vake403d.menu.pnum.VAKE_F446VE.build.product_line=STM32F446xx | ||
Vake403d.menu.pnum.VAKE_F446VE.build.variant=VAKE_F446VE | ||
Vake403d.menu.pnum.VAKE_F446VE.build.f_cpu=180000000L | ||
fpistm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Vake403d.menu.pnum.VAKE_F446VE.build.cmsis_lib_gcc=arm_cortexM4l_math | ||
|
||
# Upload menu | ||
Vake403d.menu.upload_method.STLink=STLink | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since #514 STM32CubeProgrammer replace those upload method. |
||
Vake403d.menu.upload_method.STLink.upload.protocol=STLink | ||
Vake403d.menu.upload_method.STLink.upload.tool=stlink_upload | ||
|
||
Vake403d.menu.upload_method.serialMethod=Serial UART1 [TX/PA9, RX/PA10, BOOT0=1, BOOT1=0] | ||
Vake403d.menu.upload_method.serialMethod.upload.protocol=maple_serial | ||
Vake403d.menu.upload_method.serialMethod.upload.tool=serial_upload | ||
Vake403d.menu.upload_method.serialMethod.build.extra_flags_serial_auto=-DMENU_SERIAL_AUTO=SerialUART1 | ||
|
||
Vake403d.menu.usb.SerialUSB=Serial [Virtual COM port, PA11/PA12 pins] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems you worked before on STM32GENERIC core 😉 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've removed the definitions. Note : next version will have the capability to use serial to upload new binaries without the need for an ST link programmer. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is already the case thanks the STM32CubeProgrammer use STM32 built-in bootloader. |
||
Vake403d.menu.usb.SerialUSB.build.extra_flags_usb=-DMENU_USB_SERIAL | ||
Vake403d.menu.usb.SerialMSC=Mass storage [testing, see documentation] | ||
Vake403d.menu.usb.SerialMSC.build.extra_flags_usb=-DMENU_USB_MASS_STORAGE | ||
Vake403d.menu.usb.Disabled=Disabled, no USB | ||
|
||
Vake403d.menu.serial.Automatic=Automatically selected based on upload method | ||
Vake403d.menu.serial.SerialUSB=SerialUSB | ||
Vake403d.menu.serial.SerialUSB.build.extra_flags_serial=-DMENU_SERIAL=SerialUSB | ||
Vake403d.menu.serial.SerialUART1=SerialUART1 | ||
Vake403d.menu.serial.SerialUART1.build.extra_flags_serial=-DMENU_SERIAL=SerialUART1 | ||
|
||
############################### | ||
# Sparky Flight Controllers | ||
|
||
|
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
/* SYS_WKUP */ | ||
#ifdef PWR_WAKEUP_PIN1 | ||
SYS_WKUP1 = PA_0, /* SYS_WKUP0 */ | ||
#endif | ||
#ifdef PWR_WAKEUP_PIN2 | ||
SYS_WKUP2 = PC_13, /* SYS_WKUP1 */ | ||
#endif | ||
#ifdef PWR_WAKEUP_PIN3 | ||
SYS_WKUP3 = NC, | ||
#endif | ||
#ifdef PWR_WAKEUP_PIN4 | ||
SYS_WKUP4 = NC, | ||
#endif | ||
#ifdef PWR_WAKEUP_PIN5 | ||
SYS_WKUP5 = NC, | ||
#endif | ||
#ifdef PWR_WAKEUP_PIN6 | ||
SYS_WKUP6 = NC, | ||
#endif | ||
#ifdef PWR_WAKEUP_PIN7 | ||
SYS_WKUP7 = NC, | ||
#endif | ||
#ifdef PWR_WAKEUP_PIN8 | ||
SYS_WKUP8 = NC, | ||
#endif | ||
/* USB */ | ||
#ifdef USBCON | ||
// USB_OTG_FS_SOF = PA_8, | ||
// USB_OTG_FS_VBUS = PA_9, | ||
// USB_OTG_FS_ID = PA_10, | ||
USB_OTG_FS_DM = PA_11, | ||
USB_OTG_FS_DP = PA_12, | ||
// USB_OTG_HS_ULPI_D0 = PA_3, | ||
// USB_OTG_HS_SOF = PA_4, | ||
// USB_OTG_HS_ULPI_CK = PA_5, | ||
// USB_OTG_HS_ULPI_D1 = PB_0, | ||
// USB_OTG_HS_ULPI_D2 = PB_1, | ||
// USB_OTG_HS_ULPI_D4 = PB_2, | ||
// USB_OTG_HS_ULPI_D7 = PB_5, | ||
// USB_OTG_HS_ULPI_D3 = PB_10, | ||
// USB_OTG_HS_ID = PB_12, | ||
// USB_OTG_HS_ULPI_D5 = PB_12, | ||
// USB_OTG_HS_ULPI_D6 = PB_13, | ||
// USB_OTG_HS_VBUS = PB_13, | ||
// USB_OTG_HS_DM = PB_14, | ||
// USB_OTG_HS_DP = PB_15, | ||
// USB_OTG_HS_ULPI_STP = PC_0, | ||
// USB_OTG_HS_ULPI_DIR = PC_2, | ||
// USB_OTG_HS_ULPI_NXT = PC_3, | ||
#endif |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
/* | ||
***************************************************************************** | ||
** | ||
|
||
** File : LinkerScript.ld | ||
** | ||
** Abstract : Linker script for STM32F446VETx Device with | ||
** 512KByte FLASH, 128KByte RAM | ||
** | ||
** Set heap size, stack size and stack location according | ||
** to application requirements. | ||
** | ||
** Set memory bank area and size if external memory is used. | ||
** | ||
** Target : STMicroelectronics STM32 | ||
** | ||
** | ||
** Distribution: The file is distributed as is, without any warranty | ||
** of any kind. | ||
** | ||
** (c)Copyright Ac6. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This licensing is not correct. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. updated |
||
** You may use this file as-is or modify it according to the needs of your | ||
** project. Distribution of this file (unmodified or modified) is not | ||
** permitted. Ac6 permit registered System Workbench for MCU users the | ||
** rights to distribute the assembled, compiled & linked contents of this | ||
** file as part of an application binary file, provided that it is built | ||
** using the System Workbench for MCU toolchain. | ||
** | ||
***************************************************************************** | ||
*/ | ||
|
||
/* Entry Point */ | ||
ENTRY(Reset_Handler) | ||
|
||
/* Highest address of the user mode stack */ | ||
_estack = 0x20020000; /* end of RAM */ | ||
/* Generate a link error if heap and stack don't fit into RAM */ | ||
_Min_Heap_Size = 0x200; /* required amount of heap */ | ||
_Min_Stack_Size = 0x400; /* required amount of stack */ | ||
|
||
/* Specify the memory areas */ | ||
MEMORY | ||
{ | ||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K | ||
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K | ||
} | ||
|
||
/* Define output sections */ | ||
SECTIONS | ||
{ | ||
/* The startup code goes first into FLASH */ | ||
.isr_vector : | ||
{ | ||
. = ALIGN(4); | ||
KEEP(*(.isr_vector)) /* Startup code */ | ||
. = ALIGN(4); | ||
} >FLASH | ||
|
||
/* The program code and other data goes into FLASH */ | ||
.text : | ||
{ | ||
. = ALIGN(4); | ||
*(.text) /* .text sections (code) */ | ||
*(.text*) /* .text* sections (code) */ | ||
*(.glue_7) /* glue arm to thumb code */ | ||
*(.glue_7t) /* glue thumb to arm code */ | ||
*(.eh_frame) | ||
|
||
KEEP (*(.init)) | ||
KEEP (*(.fini)) | ||
|
||
. = ALIGN(4); | ||
_etext = .; /* define a global symbols at end of code */ | ||
} >FLASH | ||
|
||
/* Constant data goes into FLASH */ | ||
.rodata : | ||
{ | ||
. = ALIGN(4); | ||
*(.rodata) /* .rodata sections (constants, strings, etc.) */ | ||
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */ | ||
. = ALIGN(4); | ||
} >FLASH | ||
|
||
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH | ||
.ARM : { | ||
__exidx_start = .; | ||
*(.ARM.exidx*) | ||
__exidx_end = .; | ||
} >FLASH | ||
|
||
.preinit_array : | ||
{ | ||
PROVIDE_HIDDEN (__preinit_array_start = .); | ||
KEEP (*(.preinit_array*)) | ||
PROVIDE_HIDDEN (__preinit_array_end = .); | ||
} >FLASH | ||
.init_array : | ||
{ | ||
PROVIDE_HIDDEN (__init_array_start = .); | ||
KEEP (*(SORT(.init_array.*))) | ||
KEEP (*(.init_array*)) | ||
PROVIDE_HIDDEN (__init_array_end = .); | ||
} >FLASH | ||
.fini_array : | ||
{ | ||
PROVIDE_HIDDEN (__fini_array_start = .); | ||
KEEP (*(SORT(.fini_array.*))) | ||
KEEP (*(.fini_array*)) | ||
PROVIDE_HIDDEN (__fini_array_end = .); | ||
} >FLASH | ||
|
||
/* used by the startup to initialize data */ | ||
_sidata = LOADADDR(.data); | ||
|
||
/* Initialized data sections goes into RAM, load LMA copy after code */ | ||
.data : | ||
{ | ||
. = ALIGN(4); | ||
_sdata = .; /* create a global symbol at data start */ | ||
*(.data) /* .data sections */ | ||
*(.data*) /* .data* sections */ | ||
|
||
. = ALIGN(4); | ||
_edata = .; /* define a global symbol at data end */ | ||
} >RAM AT> FLASH | ||
|
||
|
||
/* Uninitialized data section */ | ||
. = ALIGN(4); | ||
.bss : | ||
{ | ||
/* This is used by the startup in order to initialize the .bss secion */ | ||
_sbss = .; /* define a global symbol at bss start */ | ||
__bss_start__ = _sbss; | ||
*(.bss) | ||
*(.bss*) | ||
*(COMMON) | ||
|
||
. = ALIGN(4); | ||
_ebss = .; /* define a global symbol at bss end */ | ||
__bss_end__ = _ebss; | ||
} >RAM | ||
|
||
/* User_heap_stack section, used to check that there is enough RAM left */ | ||
._user_heap_stack : | ||
{ | ||
. = ALIGN(8); | ||
PROVIDE ( end = . ); | ||
PROVIDE ( _end = . ); | ||
. = . + _Min_Heap_Size; | ||
. = . + _Min_Stack_Size; | ||
. = ALIGN(8); | ||
} >RAM | ||
|
||
|
||
|
||
/* Remove information from the standard libraries */ | ||
/DISCARD/ : | ||
{ | ||
libc.a ( * ) | ||
libm.a ( * ) | ||
libgcc.a ( * ) | ||
} | ||
|
||
.ARM.attributes 0 : { *(.ARM.attributes) } | ||
} | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is Vake403d the manufacturer name or generic branding name ?
or is the board name ?
I guess it should be best to add it to 3dprinter entry
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just saw in your OP the board name is
VAkE v1.0
I've update my branch with this name. Let me know if it's ok.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The boads name is VAkE but will first be tested in a 3D printer called Vake403d.
The update of the branch is fine, thx.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, I guess the best is to use the PCB name (board name).
Vake403d is one use case of this board? right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is how I've update it:
https://github.com/fpistm/Arduino_Core_STM32/blob/50713653535c1c8dbcd38fd9ca42253fc0186f5f/boards.txt#L935-L944