46 lines
1.5 KiB
Forth
46 lines
1.5 KiB
Forth
\ Copyright 2023 Bradley D. Nelson
|
|
\
|
|
\ Licensed 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.
|
|
|
|
vocabulary spi_flash spi_flash definitions
|
|
transfer spi_flash-builtins
|
|
DEFINED? spi_flash_init [IF]
|
|
0 constant SPI_PARTITION_TYPE_APP
|
|
1 constant SPI_PARTITION_TYPE_DATA
|
|
$ff constant SPI_PARTITION_SUBTYPE_ANY
|
|
|
|
also structures
|
|
struct esp_partition_t
|
|
( Work around changing struct layout )
|
|
esp_partition_t_size 40 >= [IF]
|
|
ptr field p>gap
|
|
[THEN]
|
|
ptr field p>type
|
|
ptr field p>subtype
|
|
ptr field p>address
|
|
ptr field p>size
|
|
ptr field p>label
|
|
|
|
: p. ( part -- )
|
|
base @ >r >r decimal
|
|
." TYPE: " r@ p>type @ . ." SUBTYPE: " r@ p>subtype @ .
|
|
." ADDR: " r@ hex p>address @ . ." SIZE: " r@ p>size @ .
|
|
." LABEL: " r> p>label @ z>s type cr r> base ! ;
|
|
: list-partition-type ( type -- )
|
|
SPI_PARTITION_SUBTYPE_ANY 0 esp_partition_find
|
|
begin dup esp_partition_get p. esp_partition_next dup 0= until drop ;
|
|
: list-partitions SPI_PARTITION_TYPE_APP list-partition-type
|
|
SPI_PARTITION_TYPE_DATA list-partition-type ;
|
|
[THEN]
|
|
only forth definitions
|