Skip to content

Commit

Permalink
Merge pull request #5 from YCF/master
Browse files Browse the repository at this point in the history
#4 fix ch32v30x board_flash_write()
  • Loading branch information
zhaqian12 authored Nov 9, 2024
2 parents beb80be + 316e21a commit dd9b9d5
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 3 deletions.
12 changes: 9 additions & 3 deletions ports/WCH/ch32v30x/board_flash.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,15 @@ __attribute__((weak)) void board_flash_flush(void) {}

__attribute__((weak)) void board_flash_write(uint32_t addr, void const *data, uint32_t len) {
uint32_t flash_addr = FLASH_BASE_ADDR + addr;
FLASH_Unlock();
flash_write(flash_addr, data, len);
FLASH_Lock();
if (len == 256) {
FLASH_Unlock_Fast();
FLASH_ProgramPage_Fast(flash_addr, data);
FLASH_Lock_Fast();
} else {
FLASH_Unlock();
flash_write(flash_addr, data, len);
FLASH_Lock();
}
}

__attribute__((weak)) void board_flash_erase_app(void) {}
66 changes: 66 additions & 0 deletions ports/WCH/ch32v30x/boards/ch32v305rbt6/board.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/*
* The MIT License (MIT)
*
* Copyright (c) 2023 Zhaqian
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/

#ifndef BOARD_H_
#define BOARD_H_

#include "ch32v30x.h"

// clang-format off
//--------------------------------------------------------------------+
// LED
//--------------------------------------------------------------------+
#define LED_PORT GPIOA
#define LED_PIN GPIO_Pin_3
#define LED_STATE_ON 0

//--------------------------------------------------------------------+
// FLASH
//--------------------------------------------------------------------+
#define BOARD_SECTOR_SIZE 4096U
#define BOARD_SECTOR_COUNT 36
#define BOARD_FLASH_SIZE (BOARD_SECTOR_SIZE * BOARD_SECTOR_COUNT)

//--------------------------------------------------------------------+
// USB UF2
//--------------------------------------------------------------------+
#define USBD_VID 0x00AA
#define USBD_PID 0xAAFF
#define USB_MANUFACTURER "WCH"
#define USB_PRODUCT "CH32V305"

#define UF2_PRODUCT_NAME USB_MANUFACTURER " " USB_PRODUCT
#define UF2_BOARD_ID "CH32V305xB"
#define UF2_VOLUME_LABEL "CherryUF2"
#define UF2_INDEX_URL "https://www.wch.cn/products/CH32V305.html"

// clang-format on
//--------------------------------------------------------------------+
// CLOCK
//--------------------------------------------------------------------+
static inline void clock_init(void) {
// TODO
}

#endif
9 changes: 9 additions & 0 deletions ports/WCH/ch32v30x/boards/ch32v305rbt6/board.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CFLAGS += \
-DCH32V30x_D8C \
-DHSE_VALUE=8000000U \
-DCONFIG_USB_HS

SRC_S += \
$(WCH_CMSIS)/Startup/startup_ch32v30x_D8C.S

USB_XFER_SPEED = HS

0 comments on commit dd9b9d5

Please sign in to comment.