ch58x-hal 0.0.2

HAL for the CH583/CH582/CH581 RISC-V BLE microcotrollers from WCH
Documentation
name: CH58X Series
variants:
- name: CH582
  cores:
  - name: main
    type: riscv
    core_access_options: !Riscv {}
  memory_map:
  - !Ram
    name: SRAM
    range:
      start: 0x20000000
      end: 0x20007fff
    cores:
    - main
  - !Nvm
    name: CodeFlash
    range:
      start: 0x0
      end: 0x6ffff
    is_boot_memory: true
    cores:
    - main
  - !Nvm
    name: DataFlash
    range:
      start: 0x70000
      end: 0x77fff
    cores:
    - main
  flash_algorithms:
  - algorithm-test
- name: CH583
  cores:
  - name: main
    type: riscv
    core_access_options: !Riscv {}
  memory_map:
  - !Ram
    name: SRAM
    range:
      start: 0x20000000
      end: 0x20007fff
    cores:
    - main
  - !Nvm
    name: CodeFlash
    range:
      start: 0x0
      end: 0x6ffff
    is_boot_memory: true
    cores:
    - main
  - !Nvm
    name: DataFlash
    range:
      start: 0x70000
      end: 0x77fff
    cores:
    - main
  flash_algorithms:
  - algorithm-test
- name: CH581
  cores:
  - name: main
    type: riscv
    core_access_options: !Riscv {}
  memory_map:
  - !Ram
    name: SRAM
    range:
      start: 0x20000000
      end: 0x20007fff
    cores:
    - main
  - !Nvm
    name: CodeFlash
    range:
      start: 0x0
      end: 0x2ffff
    is_boot_memory: true
    cores:
    - main
  - !Nvm
    name: DataFlash
    range:
      start: 0x70000
      end: 0x77fff
    cores:
    - main
  flash_algorithms:
  - algorithm-test
flash_algorithms:
- name: algorithm-test
  description: A flash algorithm under test
  default: true
  instructions: NwUAIIVFfRaNRiMGtQxjdNYAAUWCgJcAAADngEAIAAC3BQAgA8bFDAVFAcYBRSOGBQyCgLcFACADxsUMqoUFRRnOQREGxgVFhWYBRpcAAADngAAoMzWgADIFskBBAYKAtwYAIAPHxgyuhqqFBUUJz0ERBsYJRZcAAADngGAlMzWgADIFskBBAYKANwUAIANFxQwRwQGgBUWCgEERBsaXAAAA54CgAAAAAaAAAA==
  load_address: 0x20000020
  pc_init: 0x0
  pc_uninit: 0x20
  pc_program_page: 0x60
  pc_erase_sector: 0x34
  pc_erase_all: 0x8a
  data_section_offset: 0x200000cc
  flash_properties:
    address_range:
      start: 0x0
      end: 0x6ffff
    page_size: 0x100
    erased_byte_value: 0xff
    program_page_timeout: 1000
    erase_sector_timeout: 2000
    sectors:
    - size: 0x1000
      address: 0x0
  cores:
  - main