Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/famicom-dumper-writer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-10-31 21:23:37 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-10-31 21:23:37 +0300
commitef70da312ed05adc2e0678a44f9692fe7c76fe84 (patch)
tree5f95633110eebfc29c837ac2b9ddf084e9cd88f9
parentfbb4596d50d2957dd505bf31f138016fadcc4794 (diff)
Bootloader update
-rw-r--r--STM32/FamicomDumper.ioc4
-rw-r--r--STM32_bootloader/Core/Inc/main.h20
-rw-r--r--STM32_bootloader/Core/Src/cpldwriter.c23
-rw-r--r--STM32_bootloader/Core/Src/main.c39
-rw-r--r--STM32_bootloader/FamicomDumperBootloader.ioc60
5 files changed, 86 insertions, 60 deletions
diff --git a/STM32/FamicomDumper.ioc b/STM32/FamicomDumper.ioc
index 8530d73..0c5c910 100644
--- a/STM32/FamicomDumper.ioc
+++ b/STM32/FamicomDumper.ioc
@@ -145,16 +145,13 @@ PB3.Mode=Trace_Asynchronous_SW
PB3.Signal=SYS_JTDO-TRACESWO
PB4.GPIOParameters=GPIO_Label
PB4.GPIO_Label=CIRAM_CE
-PB4.Locked=true
PB4.Signal=GPIO_Input
PB6.GPIOParameters=GPIO_Label
PB6.GPIO_Label=CIRAM_A10
-PB6.Locked=true
PB6.Signal=GPIO_Input
PB7.GPIOParameters=GPIO_PuPd,GPIO_Label
PB7.GPIO_Label=IRQ
PB7.GPIO_PuPd=GPIO_PULLUP
-PB7.Locked=true
PB7.Signal=GPIO_Input
PC0.GPIOParameters=GPIO_Label
PC0.GPIO_Label=TDO
@@ -179,7 +176,6 @@ PD7.Mode=NorPsramChipSelect1_1
PD7.Signal=FSMC_NE1
PE0.GPIOParameters=PinState,GPIO_Label
PE0.GPIO_Label=SHIFTERS_OE
-PE0.Locked=true
PE0.PinState=GPIO_PIN_RESET
PE0.Signal=GPIO_Output
PE10.Signal=FSMC_D7_DA7
diff --git a/STM32_bootloader/Core/Inc/main.h b/STM32_bootloader/Core/Inc/main.h
index dc6bc44..7a518a0 100644
--- a/STM32_bootloader/Core/Inc/main.h
+++ b/STM32_bootloader/Core/Inc/main.h
@@ -69,16 +69,20 @@ void error(void);
#define M2_GPIO_Port GPIOA
#define WS2812_Pin GPIO_PIN_2
#define WS2812_GPIO_Port GPIOA
-#define NOE_Pin GPIO_PIN_4
-#define NOE_GPIO_Port GPIOD
-#define NWE_Pin GPIO_PIN_5
-#define NWE_GPIO_Port GPIOD
-#define NE1_Pin GPIO_PIN_7
-#define NE1_GPIO_Port GPIOD
-#define NE2_Pin GPIO_PIN_9
-#define NE2_GPIO_Port GPIOG
+#define FSMC_NOE_Pin GPIO_PIN_4
+#define FSMC_NOE_GPIO_Port GPIOD
+#define FSMC_NWE_Pin GPIO_PIN_5
+#define FSMC_NWE_GPIO_Port GPIOD
+#define FSMC_NWAIT_Pin GPIO_PIN_6
+#define FSMC_NWAIT_GPIO_Port GPIOD
+#define FSMC_NE1_Pin GPIO_PIN_7
+#define FSMC_NE1_GPIO_Port GPIOD
+#define FSMC_NE2_Pin GPIO_PIN_9
+#define FSMC_NE2_GPIO_Port GPIOG
#define IRQ_Pin GPIO_PIN_7
#define IRQ_GPIO_Port GPIOB
+#define SHIFTERS_OE_Pin GPIO_PIN_0
+#define SHIFTERS_OE_GPIO_Port GPIOE
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
diff --git a/STM32_bootloader/Core/Src/cpldwriter.c b/STM32_bootloader/Core/Src/cpldwriter.c
index a95fb81..3613931 100644
--- a/STM32_bootloader/Core/Src/cpldwriter.c
+++ b/STM32_bootloader/Core/Src/cpldwriter.c
@@ -9,6 +9,21 @@
static int svf_setup(struct libxsvf_host *h)
{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+
+ /* Configure GPIO pin : TDO_Pin */
+ GPIO_InitStruct.Pin = TDO_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TDO_GPIO_Port, &GPIO_InitStruct);
+
+ /* Configure GPIO pins : TCK_Pin TDI_Pin TMS_Pin */
+ GPIO_InitStruct.Pin = TCK_Pin|TDI_Pin|TMS_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
HAL_GPIO_WritePin(TCK_GPIO_Port, TCK_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(TDI_GPIO_Port, TDI_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(TMS_GPIO_Port, TMS_Pin, GPIO_PIN_SET);
@@ -18,6 +33,14 @@ static int svf_setup(struct libxsvf_host *h)
static int svf_shutdown(struct libxsvf_host *h)
{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+
+ /* Configure GPIO pin : TDO_Pin TCK_Pin TDI_Pin TMS_Pin */
+ GPIO_InitStruct.Pin = TDO_Pin|TCK_Pin|TDI_Pin|TMS_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
return 0;
}
diff --git a/STM32_bootloader/Core/Src/main.c b/STM32_bootloader/Core/Src/main.c
index fe345c6..6ccf57b 100644
--- a/STM32_bootloader/Core/Src/main.c
+++ b/STM32_bootloader/Core/Src/main.c
@@ -187,7 +187,7 @@ int main(void)
// Write firmware
write_cpld(&fno);
// Turn off the LED
- led_yellow();
+ led_green();
HAL_Delay(50);
// Stop
}
@@ -200,7 +200,7 @@ int main(void)
// Write firmware
write_firmware(&fno);
// Turn off the LED
- led_off();
+ led_green();
HAL_Delay(50);
// Stop
__disable_irq();
@@ -451,27 +451,21 @@ static void MX_GPIO_Init(void)
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOE_CLK_ENABLE();
/*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOC, TCK_Pin|TDI_Pin|TMS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(GPIOD, FSMC_NOE_Pin|FSMC_NWE_Pin|FSMC_NWAIT_Pin|FSMC_NE1_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOD, NOE_Pin|NWE_Pin|NE1_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(FSMC_NE2_GPIO_Port, FSMC_NE2_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(NE2_GPIO_Port, NE2_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(SHIFTERS_OE_GPIO_Port, SHIFTERS_OE_Pin, GPIO_PIN_SET);
- /*Configure GPIO pin : TDO_Pin */
- GPIO_InitStruct.Pin = TDO_Pin;
+ /*Configure GPIO pins : TDO_Pin TCK_Pin TDI_Pin TMS_Pin */
+ GPIO_InitStruct.Pin = TDO_Pin|TCK_Pin|TDI_Pin|TMS_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(TDO_GPIO_Port, &GPIO_InitStruct);
-
- /*Configure GPIO pins : TCK_Pin TDI_Pin TMS_Pin */
- GPIO_InitStruct.Pin = TCK_Pin|TDI_Pin|TMS_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PA8 */
@@ -480,19 +474,19 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- /*Configure GPIO pins : NOE_Pin NWE_Pin NE1_Pin */
- GPIO_InitStruct.Pin = NOE_Pin|NWE_Pin|NE1_Pin;
+ /*Configure GPIO pins : FSMC_NOE_Pin FSMC_NWE_Pin FSMC_NWAIT_Pin FSMC_NE1_Pin */
+ GPIO_InitStruct.Pin = FSMC_NOE_Pin|FSMC_NWE_Pin|FSMC_NWAIT_Pin|FSMC_NE1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
- /*Configure GPIO pin : NE2_Pin */
- GPIO_InitStruct.Pin = NE2_Pin;
+ /*Configure GPIO pin : FSMC_NE2_Pin */
+ GPIO_InitStruct.Pin = FSMC_NE2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(NE2_GPIO_Port, &GPIO_InitStruct);
+ HAL_GPIO_Init(FSMC_NE2_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : IRQ_Pin */
GPIO_InitStruct.Pin = IRQ_Pin;
@@ -500,6 +494,13 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(IRQ_GPIO_Port, &GPIO_InitStruct);
+ /*Configure GPIO pin : SHIFTERS_OE_Pin */
+ GPIO_InitStruct.Pin = SHIFTERS_OE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(SHIFTERS_OE_GPIO_Port, &GPIO_InitStruct);
+
}
/* USER CODE BEGIN 4 */
diff --git a/STM32_bootloader/FamicomDumperBootloader.ioc b/STM32_bootloader/FamicomDumperBootloader.ioc
index 54dfbf9..8bfbf75 100644
--- a/STM32_bootloader/FamicomDumperBootloader.ioc
+++ b/STM32_bootloader/FamicomDumperBootloader.ioc
@@ -43,16 +43,18 @@ Mcu.Pin11=PA13
Mcu.Pin12=PA14
Mcu.Pin13=PD4
Mcu.Pin14=PD5
-Mcu.Pin15=PD7
-Mcu.Pin16=PG9
-Mcu.Pin17=PB3
-Mcu.Pin18=PB7
-Mcu.Pin19=VP_FATFS_VS_Generic
+Mcu.Pin15=PD6
+Mcu.Pin16=PD7
+Mcu.Pin17=PG9
+Mcu.Pin18=PB3
+Mcu.Pin19=PB7
Mcu.Pin2=PC0
-Mcu.Pin20=VP_SYS_VS_Systick
-Mcu.Pin21=VP_TIM1_VS_ClockSourceINT
-Mcu.Pin22=VP_TIM2_VS_ClockSourceINT
-Mcu.Pin23=VP_USB_DEVICE_VS_USB_DEVICE_MSC_FS
+Mcu.Pin20=PE0
+Mcu.Pin21=VP_FATFS_VS_Generic
+Mcu.Pin22=VP_SYS_VS_Systick
+Mcu.Pin23=VP_TIM1_VS_ClockSourceINT
+Mcu.Pin24=VP_TIM2_VS_ClockSourceINT
+Mcu.Pin25=VP_USB_DEVICE_VS_USB_DEVICE_MSC_FS
Mcu.Pin3=PC1
Mcu.Pin4=PC2
Mcu.Pin5=PC3
@@ -60,7 +62,7 @@ Mcu.Pin6=PA0-WKUP
Mcu.Pin7=PA2
Mcu.Pin8=PA8
Mcu.Pin9=PA11
-Mcu.PinsNb=24
+Mcu.PinsNb=26
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F103ZETx
@@ -104,41 +106,41 @@ PB3.Signal=SYS_JTDO-TRACESWO
PB7.GPIOParameters=GPIO_PuPd,GPIO_Label
PB7.GPIO_Label=IRQ
PB7.GPIO_PuPd=GPIO_PULLUP
-PB7.Locked=true
PB7.Signal=GPIO_Input
PC0.GPIOParameters=GPIO_Label
PC0.GPIO_Label=TDO
PC0.Signal=GPIO_Input
-PC1.GPIOParameters=PinState,GPIO_Label
+PC1.GPIOParameters=GPIO_Label
PC1.GPIO_Label=TCK
-PC1.PinState=GPIO_PIN_SET
-PC1.Signal=GPIO_Output
-PC2.GPIOParameters=PinState,GPIO_Label
+PC1.Signal=GPIO_Input
+PC2.GPIOParameters=GPIO_Label
PC2.GPIO_Label=TDI
-PC2.PinState=GPIO_PIN_SET
-PC2.Signal=GPIO_Output
-PC3.GPIOParameters=PinState,GPIO_Label
+PC2.Signal=GPIO_Input
+PC3.GPIOParameters=GPIO_Label
PC3.GPIO_Label=TMS
-PC3.PinState=GPIO_PIN_SET
-PC3.Signal=GPIO_Output
+PC3.Signal=GPIO_Input
PD4.GPIOParameters=PinState,GPIO_Label
-PD4.GPIO_Label=NOE
-PD4.Locked=true
+PD4.GPIO_Label=FSMC_NOE
PD4.PinState=GPIO_PIN_SET
PD4.Signal=GPIO_Output
PD5.GPIOParameters=PinState,GPIO_Label
-PD5.GPIO_Label=NWE
-PD5.Locked=true
+PD5.GPIO_Label=FSMC_NWE
PD5.PinState=GPIO_PIN_SET
PD5.Signal=GPIO_Output
+PD6.GPIOParameters=PinState,GPIO_Label
+PD6.GPIO_Label=FSMC_NWAIT
+PD6.PinState=GPIO_PIN_SET
+PD6.Signal=GPIO_Output
PD7.GPIOParameters=PinState,GPIO_Label
-PD7.GPIO_Label=NE1
-PD7.Locked=true
+PD7.GPIO_Label=FSMC_NE1
PD7.PinState=GPIO_PIN_SET
PD7.Signal=GPIO_Output
+PE0.GPIOParameters=PinState,GPIO_Label
+PE0.GPIO_Label=SHIFTERS_OE
+PE0.PinState=GPIO_PIN_SET
+PE0.Signal=GPIO_Output
PG9.GPIOParameters=PinState,GPIO_Label
-PG9.GPIO_Label=NE2
-PG9.Locked=true
+PG9.GPIO_Label=FSMC_NE2
PG9.PinState=GPIO_PIN_SET
PG9.Signal=GPIO_Output
PinOutPanel.RotationAngle=0
@@ -169,7 +171,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=STM32CubeIDE
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,4-MX_DMA_Init-DMA-false-HAL-true,5-MX_TIM5_Init-TIM5-false-HAL-true,6-MX_FATFS_Init-FATFS-false-HAL-false,7-MX_TIM2_Init-TIM2-false-HAL-true
+ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,4-MX_DMA_Init-DMA-false-HAL-true,5-MX_TIM5_Init-TIM5-false-HAL-true,6-MX_FATFS_Init-FATFS-false-HAL-false,7-MX_TIM2_Init-TIM2-false-HAL-true,8-MX_TIM1_Init-TIM1-false-HAL-true
RCC.ADCFreqValue=36000000
RCC.AHBFreq_Value=72000000
RCC.APB1CLKDivider=RCC_HCLK_DIV2